Browse Source

Merge branch 'jin_yin_bao_biao' into 11/24SAAS

liushengqiang 2 years ago
parent
commit
d90e86e660

+ 542 - 391
src/views/categroyManager/productSystem/memberFeeSet.vue

@@ -64,21 +64,8 @@
           align="left"
           prop="rankName"
           label="云教练名称"
+          width="90px"
         ></el-table-column>
-        <!-- <el-table-column align="center" prop="type" label="1天收费现价(元)">
-        <template slot-scope="scope">
-          <div>
-            {{ scope.row.memberFeeSetting.currentDayFee | hasMoneyFormat }}
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column align="center" prop="type" label="1天收费原价(元)">
-        <template slot-scope="scope">
-          <div>
-            {{ scope.row.memberFeeSetting.originalDayFee | hasMoneyFormat }}
-          </div>
-        </template>
-      </el-table-column> -->
         <el-table-column align="left" prop="type" label="月收费">
           <template slot-scope="scope">
             <div>
@@ -89,16 +76,14 @@
                     | hasMoneyFormat
                 }}
               </p>
-              <!-- <p>
-              零售:
-              {{ scope.row.memberFeeSetting.currentMonthFee | hasMoneyFormat }}
-            </p> -->
               <p>
                 原价:
                 {{
                   scope.row.memberFeeSetting.originalMonthFee | hasMoneyFormat
                 }}
               </p>
+              <div>经营报表</div>
+              <div>确认收入: {{ scope.row.memberFeeSetting.incomeMonthFee | hasMoneyFormat }}</div>
             </div>
           </template>
         </el-table-column>
@@ -126,8 +111,8 @@
                 }}
               </p>
 
-              <!-- </div>
-            {{ scope.row.memberFeeSetting.currentHalfYearFee | hasMoneyFormat }} -->
+              <div>经营报表</div>
+              <div>确认收入: {{ scope.row.memberFeeSetting.incomeQuarterlyFee | hasMoneyFormat }}</div>
             </div>
           </template>
         </el-table-column>
@@ -154,6 +139,8 @@
                     | hasMoneyFormat
                 }}
               </p>
+              <div>经营报表</div>
+              <div>确认收入: {{ scope.row.memberFeeSetting.incomeHalfYearFee | hasMoneyFormat }}</div>
             </div>
           </template>
         </el-table-column>
@@ -177,21 +164,22 @@
                   scope.row.memberFeeSetting.originalYearFee | hasMoneyFormat
                 }}
               </p>
+              <div>经营报表</div>
+              <div>确认收入: {{ scope.row.memberFeeSetting.incomeYearFee | hasMoneyFormat }}</div>
             </div>
           </template>
         </el-table-column>
         <el-table-column
-          align="center"
-          width="100px"
+          width="105px"
           prop="updateTime"
           label="修改时间"
         ></el-table-column>
         <el-table-column
-          align="center"
           prop="operatorName"
           label="修改人"
+          width="80px"
         ></el-table-column>
-        <el-table-column align="center" label="操作">
+        <el-table-column align="center" label="操作" width="100px">
           <template slot-scope="scope">
             <div>
               <!-- memberRankSetting/add -->
@@ -221,396 +209,421 @@
     </div>
     <emptyPage @submit="addFee" title='云教练收费标准' btnTitle='新建云教练收费标准' :context='context' v-if="!(tableList.length>0 || rules.page>1)&&contextFlag" />
     <el-dialog
+      class="dialog"
       :title="title"
+      top="12vh"
       :close-on-click-modal="false"
       :visible.sync="branchStatus"
       v-if="branchStatus"
       default-expand-all
       @close="onFormClose('ruleForm')"
-      width="730px"
+      width="820px"
     >
-      <el-form :model="form" :inline="true" ref="ruleForm">
-        <el-form-item
-          label="所属分部"
-          prop="organId"
-          :rules="[{ required: true, message: '请选择分部' }]"
-          :label-width="formLabelWidth"
-        >
-          <el-select
-            :disabled="addDisabled"
-            class="multiple"
-            filterable
-            style="width: 545px !important"
-            v-model.trim="form.organId"
-            clearable
-            placeholder="请选择分部"
+      <el-form class="elForm" :model="form" label-position="top" ref="ruleForm">
+        <div class="wrap">
+          <el-form-item
+            label="所属分部"
+            prop="organId"
+            :rules="[{ required: true, message: '请选择分部' }]"
+            :label-width="formLabelWidth"
           >
-            <el-option
-              v-for="(item, index) in selects.branchs"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          label="云教练名称"
-          prop="memberRankSettingId"
-          :rules="[{ required: true, message: '请选择云教练' }]"
-          :label-width="formLabelWidth"
-        >
-            <!-- :disabled="addDisabled" -->
-          <el-select
-            disabled
-            class="multiple"
-            filterable
-            style="width: 545px !important"
-            v-model.trim="form.memberRankSettingId"
-            clearable
-            placeholder="请选择云教练"
+            <el-select
+              :disabled="addDisabled"
+              class="multiple"
+              filterable
+              v-model.trim="form.organId"
+              clearable
+              placeholder="请选择分部"
+            >
+              <el-option
+                v-for="(item, index) in selects.branchs"
+                :key="index"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="云教练名称"
+            prop="memberRankSettingId"
+            :rules="[{ required: true, message: '请选择云教练' }]"
+            :label-width="formLabelWidth"
           >
-            <el-option
-              v-for="(item, index) in remberList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <!-- <el-form-item
-          prop="groupPurchaseDayFee"
-          label="日收费团购价"
-          :rules="[
-            { required: true, message: '请输入日收费团购价' },
-            {
-              pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
-            },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.groupPurchaseDayFee"
-            :disabled="addDisabled"
-            class="feeInput"
+            <el-select
+              disabled
+              class="multiple"
+              filterable
+              v-model.trim="form.memberRankSettingId"
+              clearable
+              placeholder="请选择云教练"
+            >
+              <el-option
+                v-for="(item, index) in remberList"
+                :key="index"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+
+        <div class="lineTitle">月度收费</div>
+
+        <div class="wrap">
+          <el-form-item
+            prop="groupPurchaseMonthFee"
+            label="团购价"
+            :rules="[
+              { required: true, message: '请输入月收费团购价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateMonth, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
+            :placeholder="monthRule"
           >
-            <template slot="append">元/日</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="currentDayFee"
-          label="日收费零售价"
-          :rules="[
-            {
-              required: true,
-              message: '请输入日收费零售价',
-              trigger: 'blur, change',
-            },
-            {
-              pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
-            },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.currentDayFee"
-            :disabled="addDisabled"
-            class="feeInput"
+            <el-input
+              v-model="form.groupPurchaseMonthFee"
+              :disabled="addDisabled"
+              :placeholder="monthRule"
+            >
+              <template slot="append">元/月</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="currentMonthFee"
+            label="零售价"
+            :rules="[
+              { required: true, message: '请输入月收费零售价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateMonth, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/日</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="originalDayFee"
-          label="日收费原价"
-          :rules="[
-            { required: true, message: '请输入日收费原价' },
-            {
-              pattern:
-                /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
-              message: '请输入正确的金额',
-            },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.originalDayFee"
-            :disabled="addDisabled"
-            class="feeInput"
+            <el-input
+              v-model="form.currentMonthFee"
+              :disabled="addDisabled"
+                    :placeholder="monthRule"
+            >
+              <template slot="append">元/月</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="originalMonthFee"
+            label="原价"
+            :rules="[
+              { required: true, message: '请输入月收费原价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateMonth, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/日</template>
-          </el-input>
-        </el-form-item> -->
+            <el-input
+              v-model="form.originalMonthFee"
+              :disabled="addDisabled"
+              :placeholder="monthRule"
+            >
+              <template slot="append">元/月</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="incomeMonthFee"
+            label="经营报表确认收入"
+            :rules="[
+              { required: true, message: '请输入月度经营报表确认收入' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateMonthIncome, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="form.incomeMonthFee"
+              :disabled="addDisabled"
+              :placeholder="monthRuleIncome"
+            >
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </div>
 
-        <el-form-item
-          prop="groupPurchaseMonthFee"
-          label="月收费团购价"
-          :rules="[
-            { required: true, message: '请输入月收费团购价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateMonth, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-            :placeholder="monthRule"
-        >
-          <el-input
-            v-model="form.groupPurchaseMonthFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="monthRule"
+        <div class="lineTitle">季度收费</div>
+
+        <div class="wrap">
+          <el-form-item
+            prop="groupPurchaseQuarterlyFee"
+            label="团购价"
+            :rules="[
+              { required: true, message: '请输入季度收费团购价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateQuarterly, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/月</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="currentMonthFee"
-          label="月收费零售价"
-          :rules="[
-            { required: true, message: '请输入月收费零售价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateMonth, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.currentMonthFee"
-            :disabled="addDisabled"
-            class="feeInput"
-                  :placeholder="monthRule"
+            <el-input
+              v-model="form.groupPurchaseQuarterlyFee"
+              :disabled="addDisabled"
+              :placeholder="quarterlyRule"
+            >
+              <template slot="append">元/季度</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="currentQuarterlyFee"
+            label="零售价"
+            :rules="[
+              { required: true, message: '请输入季度收费零售价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateQuarterly, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
+
           >
-            <template slot="append">元/月</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="originalMonthFee"
-          label="月收费原价"
-          :rules="[
-            { required: true, message: '请输入月收费原价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateMonth, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.originalMonthFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="monthRule"
+            <el-input
+              v-model="form.currentQuarterlyFee"
+              :disabled="addDisabled"
+              :placeholder="quarterlyRule"
+            >
+              <template slot="append">元/季度</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="originalQuarterlyFee"
+            label="原价"
+            :rules="[
+              { required: true, message: '请输入季度收费原价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateQuarterly, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/月</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="groupPurchaseQuarterlyFee"
-          label="季度收费团购价"
-          :rules="[
-            { required: true, message: '请输入季度收费团购价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateQuarterly, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.groupPurchaseQuarterlyFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="quarterlyRule"
+            <el-input
+              v-model="form.originalQuarterlyFee"
+              :disabled="addDisabled"
+              :placeholder="quarterlyRule"
+            >
+              <template slot="append">元/季度</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="incomeQuarterlyFee"
+            label="经营报表确认收入"
+            :rules="[
+              { required: true, message: '请输入季度经营报表确认收入' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateQuarterlyIncome, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/季度</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="currentQuarterlyFee"
-          label="季度收费零售价"
-          :rules="[
-            { required: true, message: '请输入季度收费零售价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateQuarterly, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
+            <el-input
+              v-model="form.incomeQuarterlyFee"
+              :disabled="addDisabled"
+              :placeholder="quarterlyRuleIncome"
+            >
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </div>
 
-        >
-          <el-input
-            v-model="form.currentQuarterlyFee"
-            :disabled="addDisabled"
-            class="feeInput"
-             :placeholder="quarterlyRule"
-          >
-            <template slot="append">元/季度</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="originalQuarterlyFee"
-          label="季度收费原价"
-          :rules="[
-            { required: true, message: '请输入季度收费原价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateQuarterly, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.originalQuarterlyFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="quarterlyRule"
+        <div class="lineTitle">半年收费</div>
+
+        <div class="wrap">
+          <el-form-item
+            prop="groupPurchaseHalfYearFee"
+            label="半年收费团购价"
+            :rules="[
+              { required: true, message: '请输入半年收费团购价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateHalfYear, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/季度</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="groupPurchaseHalfYearFee"
-          label="半年收费团购价"
-          :rules="[
-            { required: true, message: '请输入半年收费团购价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateHalfYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.groupPurchaseHalfYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="halfYearRule"
+            <el-input
+              v-model="form.groupPurchaseHalfYearFee"
+              :disabled="addDisabled"
+              :placeholder="halfYearRule"
+            >
+              <template slot="append">元/半年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="currentHalfYearFee"
+            label="半年收费零售价"
+            :rules="[
+              { required: true, message: '请输入半年收费零售价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+                { validator: validateHalfYear, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/半年</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="currentHalfYearFee"
-          label="半年收费零售价"
-          :rules="[
-            { required: true, message: '请输入半年收费零售价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
+            <el-input
+              v-model="form.currentHalfYearFee"
+              :disabled="addDisabled"
+              :placeholder="halfYearRule"
+            >
+              <template slot="append">元/半年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="originalHalfYearFee"
+            label="半年收费原价"
+            :rules="[
+              { required: true, message: '请输入半年收费原价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
               { validator: validateHalfYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.currentHalfYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-             :placeholder="halfYearRule"
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/半年</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="originalHalfYearFee"
-          label="半年收费原价"
-          :rules="[
-            { required: true, message: '请输入半年收费原价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateHalfYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.originalHalfYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="halfYearRule"
+            <el-input
+              v-model="form.originalHalfYearFee"
+              :disabled="addDisabled"
+              :placeholder="halfYearRule"
+            >
+              <template slot="append">元/半年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="incomeHalfYearFee"
+            label="经营报表确认收入"
+            :rules="[
+              { required: true, message: '请输入半年经营报表确认收入' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateHalfYearIncome, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/半年</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="groupPurchaseYearFee"
-          label="年收费团购价"
-          :rules="[
-            { required: true, message: '请输入年收费团购价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.groupPurchaseYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="yearRule"
+            <el-input
+              v-model="form.incomeHalfYearFee"
+              :disabled="addDisabled"
+              :placeholder="halfYearRuleIncome"
+            >
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </div>
+
+        <div class="lineTitle">年度收费</div>
+        
+        <div class="wrap">
+          <el-form-item
+            prop="groupPurchaseYearFee"
+            label="年收费团购价"
+            :rules="[
+              { required: true, message: '请输入年收费团购价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateYear, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/年</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="currentYearFee"
-          label="年收费零售价"
-          :rules="[
-            { required: true, message: '请输入年收费零售价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-             { validator: validateYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.currentYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-                        :placeholder="yearRule"
+            <el-input
+              v-model="form.groupPurchaseYearFee"
+              :disabled="addDisabled"
+              :placeholder="yearRule"
+            >
+              <template slot="append">元/年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="currentYearFee"
+            label="年收费零售价"
+            :rules="[
+              { required: true, message: '请输入年收费零售价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateYear, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/年</template>
-          </el-input>
-        </el-form-item>
-        <el-form-item
-          prop="originalYearFee"
-          label="年收费原价"
-          :rules="[
-            { required: true, message: '请输入年收费原价' },
-            {
-              pattern: /^[1-9][0-9]*$/,
-              message: '请输入大于0的正整数',
-            },
-            { validator: validateYear, trigger: 'blur' },
-          ]"
-          :label-width="formLabelWidth"
-        >
-          <el-input
-            v-model="form.originalYearFee"
-            :disabled="addDisabled"
-            class="feeInput"
-            :placeholder="yearRule"
+            <el-input
+              v-model="form.currentYearFee"
+              :disabled="addDisabled"
+              :placeholder="yearRule"
+            >
+              <template slot="append">元/年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="originalYearFee"
+            label="年收费原价"
+            :rules="[
+              { required: true, message: '请输入年收费原价' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateYear, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
           >
-            <template slot="append">元/年</template>
-          </el-input>
-        </el-form-item>
+            <el-input
+              v-model="form.originalYearFee"
+              :disabled="addDisabled"
+              :placeholder="yearRule"
+            >
+              <template slot="append">元/年</template>
+            </el-input>
+          </el-form-item>
+          <el-form-item
+            prop="incomeYearFee"
+            label="经营报表确认收入"
+            :rules="[
+              { required: true, message: '请输入年度经营报表确认收入' },
+              {
+                pattern: /^[1-9][0-9]*$/,
+                message: '请输入大于0的正整数',
+              },
+              { validator: validateYearIncome, trigger: 'blur' },
+            ]"
+            :label-width="formLabelWidth"
+          >
+            <el-input
+              v-model="form.incomeYearFee"
+              :disabled="addDisabled"
+              :placeholder="yearRuleIncome"
+            >
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </div>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button v-if="!addDisabled" @click="branchStatus = false"
@@ -671,6 +684,10 @@ export default {
         groupPurchaseYearFee: "",
         organId: "",
         memberRankSettingId: "",
+        incomeMonthFee: '', // 月经营报表
+        incomeQuarterlyFee: "", // 季度经营报表
+        incomeHalfYearFee: "", // 半年经营报表
+        incomeYearFee: "", // 年经营报表
       },
       branchStatus: false,
       remberList: [],
@@ -757,6 +774,10 @@ export default {
         originalHalfYearFee: "",
         originalMonthFee: "",
         originalYearFee: "",
+        incomeMonthFee: '', // 月经营报表
+        incomeQuarterlyFee: "", // 季度经营报表
+        incomeHalfYearFee: "", // 半年经营报表
+        incomeYearFee: "", // 年经营报表
         organId: "",
         memberRankSettingId: "",
       }),
@@ -830,6 +851,15 @@ export default {
         }
       });
     },
+    validateMonthIncome(rule, value, callback){
+      const one = Number(value);
+      const min = Number(this.rulesForm.minMonthFee);
+      const max = this.form.groupPurchaseMonthFee ? Number(this.form.groupPurchaseMonthFee) : Number(this.rulesForm.maxMonthFee)
+      if (one >= min && one <= max) {
+        return callback();
+      }
+      return callback(new Error(`月度经营报表应在${min}-${max}之间`));
+    },
     validateMonth(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minMonthFee);
@@ -839,6 +869,15 @@ export default {
       }
       return callback(new Error(`月度云教练定价应在${min}-${max}之间`));
     },
+    validateQuarterlyIncome(rule, value, callback) {
+      const one = Number(value);
+      const min = Number(this.rulesForm.minQuarterlyFee);
+      const max = this.form.groupPurchaseQuarterlyFee ? Number(this.form.groupPurchaseQuarterlyFee) : Number(this.rulesForm.maxQuarterlyFee);
+      if (one >= min && one <= max) {
+        return callback();
+      }
+      return callback(new Error(`季度经营报表应在${min}-${max}之间`));
+    },
     validateQuarterly(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minQuarterlyFee);
@@ -848,6 +887,15 @@ export default {
       }
       return callback(new Error(`季度云教练定价应在${min}-${max}之间`));
     },
+    validateHalfYearIncome(rule, value, callback) {
+      const one = Number(value);
+      const min = Number(this.rulesForm.minHalfYearFee);
+      const max = this.form.groupPurchaseHalfYearFee ? Number(this.form.groupPurchaseHalfYearFee) : Number(this.rulesForm.maxHalfYearFee);
+      if (one >= min && one <= max) {
+        return callback();
+      }
+      return callback(new Error(`半年经营报表应在${min}-${max}之间`));
+    },
     validateHalfYear(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minHalfYearFee);
@@ -857,6 +905,15 @@ export default {
       }
       return callback(new Error(`半年云教练定价应在${min}-${max}之间`));
     },
+    validateYearIncome(rule, value, callback) {
+      const one = Number(value);
+      const min = Number(this.rulesForm.minYearFee);
+      const max = this.form.groupPurchaseYearFee ? Number(this.form.groupPurchaseYearFee) : Number(this.rulesForm.maxYearFee);
+      if (one >= min && one <= max) {
+        return callback();
+      }
+      return callback(new Error(`年度经营报表应在${min}-${max}之间`));
+    },
     validateYear(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minYearFee);
@@ -875,15 +932,27 @@ export default {
     },
   },
   computed: {
+    monthRuleIncome() {
+      return `${this.rulesForm.minMonthFee}-${this.form.groupPurchaseMonthFee ? this.form.groupPurchaseMonthFee : this.rulesForm.maxMonthFee}`;
+    },
     monthRule() {
       return `${this.rulesForm.minMonthFee}-${this.rulesForm.maxMonthFee}`;
     },
+    quarterlyRuleIncome() {
+      return `${this.rulesForm.minQuarterlyFee}-${this.form.groupPurchaseQuarterlyFee ? this.form.groupPurchaseQuarterlyFee : this.rulesForm.maxQuarterlyFee}`;
+    },
     quarterlyRule() {
       return `${this.rulesForm.minQuarterlyFee}-${this.rulesForm.maxQuarterlyFee}`;
     },
+    halfYearRuleIncome() {
+      return `${this.rulesForm.minHalfYearFee}-${this.form.groupPurchaseHalfYearFee ? this.form.groupPurchaseHalfYearFee : this.rulesForm.maxHalfYearFee}`;
+    },
     halfYearRule() {
       return `${this.rulesForm.minHalfYearFee}-${this.rulesForm.maxHalfYearFee}`;
     },
+    yearRuleIncome() {
+      return `${this.rulesForm.minYearFee}-${this.form.groupPurchaseYearFee ? this.form.groupPurchaseYearFee : this.rulesForm.maxYearFee}`;
+    },
     yearRule() {
       return `${this.rulesForm.minYearFee}-${this.rulesForm.maxYearFee}`;
     },
@@ -891,12 +960,94 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-::v-deep .el-input-group__append {
-  width: 88px;
-}
 .feeInput {
   ::v-deep .el-input__inner {
     width: 120px !important;
   }
 }
+.dialog{
+  ::v-deep {
+    .el-dialog{
+      border-radius: 4px;
+      overflow: hidden;
+    }
+    .el-dialog__header{
+      display: flex;
+      flex-shrink: 0;
+      justify-content: space-between;
+      align-items: center;
+      box-sizing: border-box;
+      width: 100%;
+      height: 48px;
+      padding: 0 20px;
+      .el-dialog__title{
+        font-weight: 500;
+        font-size: 16px;
+      }
+      .el-dialog__headerbtn{
+        position: relative;
+        top: 0;
+        right: 0;
+        &::before{
+          position: absolute;
+          display: block;
+          box-sizing: border-box;
+          background-color: transparent;
+          border-radius: 50%;
+          transition: background-color .1s cubic-bezier(0,0,1,1);
+          content: "";
+          top: 50%;
+          left: 50%;
+          width: 20px;
+          height: 20px;
+          transform: translate(-50%,-50%);
+        }
+      }
+      .el-dialog__headerbtn:hover{
+        &::before{
+          background-color: rgba(0,0,0, .5);
+        }
+      }
+      .el-dialog__close{
+        position: relative;
+      }
+    }
+    .el-dialog__body{
+      padding: 10px 20px;
+    }
+    .el-input-group__append{
+      padding: 0 10px;
+    }
+  }
+}
+.elForm{
+  ::v-deep {
+    .el-form-item__label{
+      max-width: 100%;
+      color: #4e5969;
+      font-size: 14px;
+      white-space: normal;
+      padding: 0;
+      font-weight: 400;
+      line-height: 32px;
+    }
+  }
+}
+.lineTitle{
+  background-color: rgba(247,247,247,1);
+  padding: 10px;
+  border-radius: 4px;
+  color: #333;
+}
+.wrap{
+  display: flex;
+  align-items: center;
+  ::v-deep .el-form-item:not(:last-child){
+    margin-right: 20px;
+    
+  }
+  .el-form-item{
+      width: 180px;
+    }
+}
 </style>

+ 85 - 18
src/views/categroyManager/specialSetup/discountManage.vue

@@ -68,6 +68,10 @@
                            label="折扣(%)">
           </el-table-column>
           <el-table-column align='center'
+                           prop="fee"
+                           label="经营报表确认收入(%)">
+          </el-table-column>
+          <el-table-column align='center'
                            label="操作">
             <template slot-scope="scope">
               <el-button @click="openTypes('update', scope.row)"
@@ -94,6 +98,7 @@
                width="500px">
       <el-form :model="form"
                :rules="rules"
+               label-width="220px"
                ref="ruleForm">
         <el-form-item label="收费类型"
                       prop="chargeTypeId"
@@ -130,7 +135,7 @@
             </el-option-group>
           </el-select>
         </el-form-item>
-        <el-form-item label="折扣(%)"
+        <el-form-item label="乐器折扣(%)"
                       prop="goodsDiscountRate"
                       :label-width="formLabelWidth">
           <el-input v-model.trim="form.goodsDiscountRate"
@@ -142,6 +147,18 @@
                     min="0"
                     max="100"></el-input>
         </el-form-item>
+        <el-form-item label="经营报表确认收入(%)"
+                      prop="fee"
+                      :label-width="formLabelWidth">
+          <el-input v-model.trim="form.fee"
+                    autocomplete="off"
+                    type="number"
+                    placeholder="请输入折扣 0%-100%"
+                    controls-position="right"
+                    class="number-input"
+                    min="0"
+                    max="100"></el-input>
+        </el-form-item>
       </el-form>
       <span slot="footer"
             class="dialog-footer">
@@ -150,8 +167,9 @@
                    @click="onTypesSubmit('ruleForm')">确 定</el-button>
       </span>
     </el-dialog>
-    <el-dialog :visible.sync="createVisible"
+    <el-dialog class="dialog" :visible.sync="createVisible"
                title="添加商品折扣"
+               top="10vh"
                width="500px">
       <createDiscount @close="createVisible = false"
                       @submited="getList"
@@ -182,11 +200,12 @@ export default {
       },
       createVisible: false,
       typeStatus: false, // 添加教学点
-      formLabelWidth: '100px',
+      formLabelWidth: '120px',
       form: {
         name: null, //
         subjectId: null,
         goodsDiscountRate: null,
+        fee: null
       },
       searchForm: {
         subjectId: null,
@@ -197,7 +216,11 @@ export default {
         subjectId: [{ required: true, message: '请选择声部组合', trigger: 'change' }],
         goodsDiscountRate: [
           { required: true, message: '请输入折扣', trigger: 'blur' },
-          { pattern: /^\d+(\.\d{1,8})?$/, message: '请输入正确的折扣' }
+          { pattern: /^(\d{1,2}(\.[1-9]{1,8})?)$|^100$/, message: '请输入正确的折扣' }
+        ],
+        fee: [
+          { required: true, message: '请输入折扣值', trigger: 'blur' },
+          { pattern: /^(\d{1,2}(\.[1-9]{1,8})?)$|^100$/, message: '请输入正确的折扣' }
         ],
       },
       pageInfo: {
@@ -278,7 +301,7 @@ export default {
             typesListById[item.id] = item.name
             this.typesList.push({
               label: item.name,
-              value: item.id
+              value: item.id,
             })
           })
           this.typesListById = typesListById
@@ -293,20 +316,7 @@ export default {
       }).then(res => {
         let result = res.data
         this.tableList = result.rows
-        // if (res.code == 200) {
-        //   result.data.rows.forEach(row => {
-        //     let subjectname = [],
-        //       subjectIds = []
-        //     row.subjects.forEach(item => {
-        //       subjectname.push(item.name)
-        //       subjectIds.push(item.id)
-        //     })
-        //     row.subjectName = subjectname
-        //     row.subjectIds = subjectIds
-        //   })
-        //   this.tableList = result.rows
         this.pageInfo.total = result.total
-        // }
       })
     },
     openTypes (type, row) {
@@ -319,6 +329,7 @@ export default {
           chargeTypeId: row.chargeTypeId,
           subjectId: row.subjectId,
           goodsDiscountRate: row.goodsDiscountRate,
+          fee: row.fee
         }
       }
     },
@@ -327,6 +338,7 @@ export default {
         name: null, // 训练模块名称
         subjectId: null,
         goodsDiscountRate: null,
+        fee: null
       }
       this.$refs[formName].resetFields()
     },
@@ -379,4 +391,59 @@ export default {
 
   width: 100%;
 }
+.dialog{
+  ::v-deep {
+    .el-dialog{
+      border-radius: 4px;
+      overflow: hidden;
+    }
+    .el-dialog__header{
+      display: flex;
+      flex-shrink: 0;
+      justify-content: space-between;
+      align-items: center;
+      box-sizing: border-box;
+      width: 100%;
+      height: 48px;
+      padding: 0 20px;
+      .el-dialog__title{
+        font-weight: 500;
+        font-size: 16px;
+      }
+      .el-dialog__headerbtn{
+        position: relative;
+        top: 0;
+        right: 0;
+        &::before{
+          position: absolute;
+          display: block;
+          box-sizing: border-box;
+          background-color: transparent;
+          border-radius: 50%;
+          transition: background-color .1s cubic-bezier(0,0,1,1);
+          content: "";
+          top: 50%;
+          left: 50%;
+          width: 20px;
+          height: 20px;
+          transform: translate(-50%,-50%);
+        }
+      }
+      .el-dialog__headerbtn:hover{
+        &::before{
+          background-color: rgba(0,0,0, .5);
+        }
+      }
+      .el-dialog__close{
+        position: relative;
+      }
+    }
+    .el-dialog__body{
+      padding: 10px 20px;
+    }
+    .el-input-group__append{
+      padding: 0 10px;
+    }
+  }
+  }
 </style>

+ 104 - 13
src/views/categroyManager/specialSetup/modals/create-discount.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-form :model="form"
+    <el-form class="elForm"  label-position="top"  :model="form"
              ref="form">
       <el-form-item label="声部选择"
                     prop="subjectId"
@@ -22,7 +22,51 @@
           </el-option-group>
         </el-select>
       </el-form-item>
-      <el-form-item v-for="item in typesList"
+
+      <div v-for="(item, index) in form.types" :key="index">
+        <div class="lineTitle">{{ item.label }} 乐团</div>
+        <div class="wrap">
+          <el-form-item label="乐器折扣"
+                        :prop="`types[${index}].goodsDiscountRate`"
+                        :label-width="formLabelWidth"
+                        :rules="[
+                          { required: true, message: '请输入折扣值', trigger: 'blur' },
+                          { pattern: /^(\d{1,2}(\.[1-9]{1,8})?)$|^100$/, message: '请输入正确的折扣' }
+                          // { pattern: /^\d+(\.\d{1,8})?$|^100$/, message: '请输入正确的折扣' }
+                        ]">
+            <el-input v-model.trim="form.types[index].goodsDiscountRate"
+                      autocomplete="off"
+                      type="number"
+                      placeholder="请输入折扣值"
+                      controls-position="right"
+                      class="number-input"
+                      min="0"
+                      max="100">
+                      <template slot="append">%</template>
+                    </el-input>
+          </el-form-item>
+          <el-form-item label="经营报表确认收入"
+                        :prop="`types[${index}].fee`"
+                        :label-width="formLabelWidth"
+                        :rules="[
+                          { required: true, message: '请输入折扣比例', trigger: 'blur' },
+                          { pattern: /^(\d{1,2}(\.[1-9]{1,8})?)$|^100$/, message: '请输入正确的折扣' }
+                          // { pattern: /^\d+(\.\d{1,8})?$/, message: '请输入正确的折扣' }
+                        ]">
+            <el-input v-model.trim="form.types[index].fee"
+                      autocomplete="off"
+                      type="number"
+                      placeholder="请输入折扣比例"
+                      controls-position="right"
+                      class="number-input"
+                      :min="0"
+                      :max="100">
+                      <template slot="append">%</template>
+                    </el-input>
+          </el-form-item>
+        </div>
+      </div>
+      <!-- <el-form-item v-for="item in typesList"
                     :key="item.value"
                     :label="item.label + '折扣(%)'"
                     :prop="`types.${item.value}`"
@@ -39,7 +83,7 @@
                   class="number-input"
                   min="0"
                   max="100"></el-input>
-      </el-form-item>
+      </el-form-item> -->
     </el-form>
     <span slot="footer"
           class="dialog-footer">
@@ -59,7 +103,7 @@ export default {
       formLabelWidth: '130px',
       form: {
         subjectId: '',
-        types: {},
+        types: [],
       }
     }
   },
@@ -68,26 +112,42 @@ export default {
       this.$refs.form.validate(async valid => {
         if (valid) {
           const data = []
-          for (const key in this.form.types) {
-            if (this.form.types.hasOwnProperty(key)) {
-              const item = this.form.types[key];
-              data.push({
-                chargeTypeId: key,
-                subjectId: this.form.subjectId,
-                goodsDiscountRate: item
-              })
-            }
+          for (const item of this.form.types) {
+            data.push({
+              ...item,
+              subjectId: this.form.subjectId,
+            })
           }
           try {
             await insertChargeTypeSubjectMapper(data)
+            this.handleInit()
             this.$message.success('创建成功')
             this.$listeners.submited()
             this.$listeners.close()
           } catch (error) { }
         }
       })
+    },
+
+    handleInit() {
+      this.form.types = []
+      let list = []
+      for(let i = 0; i < this.typesList.length; i++){
+        list.push({
+          label: this.typesList[i].label,
+          chargeTypeId: this.typesList[i].value,
+          goodsDiscountRate: '',
+          fee: 100
+        })
+      }
+      list = list.sort((a, b) => a.label - b.label)
+      this.form.types = list
+      console.log(list)
     }
   },
+  mounted(){
+    this.handleInit()
+  }
 };
 </script>
 <style lang="less" scoped>
@@ -102,4 +162,35 @@ export default {
 
   width: 100%;
 }
+
+.elForm{
+  ::v-deep {
+    .el-form-item__label{
+      max-width: 100%;
+      color: #4e5969;
+      font-size: 14px;
+      white-space: normal;
+      padding: 0;
+      font-weight: 400;
+      line-height: 32px;
+    }
+  }
+}
+.lineTitle{
+  background-color: rgba(247,247,247,1);
+  padding: 10px;
+  border-radius: 4px;
+  color: #333;
+}
+.wrap{
+  display: flex;
+  align-items: center;
+  ::v-deep .el-form-item:not(:last-child){
+    margin-right: 20px;
+    
+  }
+  .el-form-item{
+      width: 180px;
+    }
+}
 </style>

+ 52 - 100
src/views/resetTeaming/components/payInfoDetail.vue

@@ -28,11 +28,7 @@
                     placeholder="请选择计价标准"
                   >
                     <el-option label="按学生" value="STUDENT"> </el-option>
-                    <el-option
-                      label="按老师"
-                      value="TEACHER"
-                      :disabled="!teamCourse"
-                    >
+                    <el-option label="按老师" value="TEACHER" :disabled="!teamCourse">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -75,10 +71,7 @@
                 </div>
                 <div
                   class="checkBtn"
-                  :class="[
-                    member ? 'active' : '',
-                    memberDisabled ? 'disabled' : '',
-                  ]"
+                  :class="[member ? 'active' : '', memberDisabled ? 'disabled' : '']"
                   @click.prevent="
                     () => {
                       if (memberDisabled) return;
@@ -103,15 +96,10 @@
                 </div>
                 <div
                   v-if="
-                    isShowLeBao &&
-                    tenantId == 1 &&
-                    $route.query.team_status != 'PROGRESS'
+                    isShowLeBao && tenantId == 1 && $route.query.team_status != 'PROGRESS'
                   "
                   class="checkBtn"
-                  :class="[
-                    leBao ? 'active' : '',
-                    leBaoDisabled ? 'disabled' : '',
-                  ]"
+                  :class="[leBao ? 'active' : '', leBaoDisabled ? 'disabled' : '']"
                   @click.prevent="
                     () => {
                       if (leBaoDisabled) return;
@@ -169,9 +157,7 @@
               <payTeamCourse
                 :form="form"
                 :charges="charges"
-                :courseUnitPriceSettingsByType="
-                  organizationCourseUnitPriceSettingsByType
-                "
+                :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
                 v-if="teamCourse"
                 @create="addExtraClass"
                 @remove="removeExtraClass"
@@ -199,9 +185,7 @@
               />
               <paySchoolInfo
                 :form="form"
-                :courseUnitPriceSettingsByType="
-                  organizationCourseUnitPriceSettingsByType
-                "
+                :courseUnitPriceSettingsByType="organizationCourseUnitPriceSettingsByType"
                 :teamCourse="teamCourse"
                 :member="member"
                 :teamActive="teamActive"
@@ -211,10 +195,7 @@
                 @checkType="checkType"
               />
               <backMoney
-                v-if="
-                  $route.query.payUserType == 'SCHOOL' &&
-                  form.currentTotalAmount > 0
-                "
+                v-if="$route.query.payUserType == 'SCHOOL' && form.currentTotalAmount > 0"
                 :form="form"
               />
             </div>
@@ -540,22 +521,19 @@ export default {
     async init() {
       this.organId = this.musicGroup?.organId;
       this.courseViewType = this.baseInfo?.musicGroup?.courseViewType;
-      if (
-        this.courseViewType != 2 &&
-        this.$route.query.team_status == "DRAFT"
-      ) {
+      if (this.courseViewType != 2 && this.$route.query.team_status == "DRAFT") {
         // 课程团的创建缴费
         this.teamCourse = true;
         // 现在课程团不在
         // this.teamCourseDisabled = true;
         this.form.paymentType = "MUSIC_APPLY";
-      } else if (
-        this.courseViewType == 2 &&
-        this.$route.query.team_status == "DRAFT"
-      ) {
+      } else if (this.courseViewType == 2 && this.$route.query.team_status == "DRAFT") {
         // 会员团的创建缴费
         this.member = true;
         this.memberDisabled = true;
+        // 乐团创建缴费时,若乐团【收费模式】为【会员收费】,则缴费项目中【课程】【会员】两项都默认选中且必选,不可去掉
+        this.teamCourse = true;
+        this.teamCourseDisabled = true;
       } else if (this.$route.query.team_status == "PROGRESS") {
         this.leBao = false;
         this.leBaoDisabled = true;
@@ -603,11 +581,7 @@ export default {
               ]);
             }
 
-            this.$set(
-              this.form,
-              "contractUrl",
-              res.data?.calender?.contractUrl
-            );
+            this.$set(this.form, "contractUrl", res.data?.calender?.contractUrl);
             this.$set(this.form, "memo", res.data?.calender?.memo);
 
             this.$set(
@@ -618,19 +592,14 @@ export default {
             this.$set(
               this.form,
               "isShowMusicInsuranceForPay",
-              res.data?.calender?.paymentItemShowState
-                ?.isShowMusicInsuranceForPay
+              res.data?.calender?.paymentItemShowState?.isShowMusicInsuranceForPay
             );
             this.$set(
               this.form,
               "isShowVipCourseForPay",
               res.data?.calender?.paymentItemShowState?.isShowVipCourseForPay
             );
-            this.$set(
-              this.form,
-              "isShowSalePrice",
-              res.data?.calender?.isShowSalePrice
-            );
+            this.$set(this.form, "isShowSalePrice", res.data?.calender?.isShowSalePrice);
             this.$set(
               this.form,
               "isShowMusicCourseForPay",
@@ -647,21 +616,17 @@ export default {
             }
             if (res.data?.course?.length > 0) {
               this.$set(
-                  this.form,
-                  "calenderFeeType",
-                  res.data?.calender?.calenderFeeType
-                );
+                this.form,
+                "calenderFeeType",
+                res.data?.calender?.calenderFeeType
+              );
               this.$nextTick(() => {
                 this.teamCourse = true;
 
                 this.$set(this.form, "eclass", res.data?.course);
                 console.log([...res.data?.course], "res.data?.course");
                 this.initDetail = true;
-                this.$set(
-                  this.form,
-                  "payUserType",
-                  res.data?.calender?.payUserType
-                );
+                this.$set(this.form, "payUserType", res.data?.calender?.payUserType);
 
                 this.$set(
                   this.form,
@@ -746,9 +711,7 @@ export default {
         const paramName = "cloud_price_range";
         res.data.forEach((item) => {
           if (item.paramName == paramName) {
-            const itemValue = item.paranValue
-              ? JSON.parse(item.paranValue)
-              : null;
+            const itemValue = item.paranValue ? JSON.parse(item.paranValue) : null;
             if (itemValue) {
               this.rulesForm = itemValue;
             }
@@ -883,9 +846,7 @@ export default {
           if (item.isStudentOptional) {
             first += item.courseCurrentPrice;
           } else {
-            const floorMoney = Math.floor(
-              item.courseCurrentPrice / this.cycles.length
-            );
+            const floorMoney = Math.floor(item.courseCurrentPrice / this.cycles.length);
             const remainder = item.courseCurrentPrice % this.cycles.length;
             first += floorMoney + remainder;
             other += floorMoney;
@@ -928,22 +889,20 @@ export default {
     async onPreview() {
       // 开始预览
       const musicGroupId = this.$route.query.id;
-      await findMusicGroupSubjectInfo({ musicGroupId: musicGroupId }).then(
-        (res) => {
-          if (res.code == 200) {
-            this.dialogSubjectList = res.data.musicGroupSubjectPlans;
-            // 默认预览第一个
-            if (this.dialogSubjectList.length <= 0) {
-              this.$message.error("请先设置声部信息");
-              return;
-            }
-            this.activeName = this.dialogSubjectList[0].subjectId.toString();
-            this.dialogSubjectVisible = true;
-          } else {
-            this.$message.warning("没有可预览的声部");
+      await findMusicGroupSubjectInfo({ musicGroupId: musicGroupId }).then((res) => {
+        if (res.code == 200) {
+          this.dialogSubjectList = res.data.musicGroupSubjectPlans;
+          // 默认预览第一个
+          if (this.dialogSubjectList.length <= 0) {
+            this.$message.error("请先设置声部信息");
+            return;
           }
+          this.activeName = this.dialogSubjectList[0].subjectId.toString();
+          this.dialogSubjectVisible = true;
+        } else {
+          this.$message.warning("没有可预览的声部");
         }
-      );
+      });
     },
     checkType() {
       this.$refs.form.validate();
@@ -953,11 +912,15 @@ export default {
         if (isok) {
           // 学校缴费没有预览
           if (this.$route.query.payUserType == "SCHOOL") {
-            this.$confirm(this.$route.query.calenderId?"是否修改缴费":"是否创建缴费?", "提示", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning",
-            })
+            this.$confirm(
+              this.$route.query.calenderId ? "是否修改缴费" : "是否创建缴费?",
+              "提示",
+              {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+              }
+            )
               .then(() => {
                 this.onSubmit();
               })
@@ -1076,8 +1039,7 @@ export default {
           }
         });
       }
-      let memberObj =
-        form.memberList?.length > 0 ? { ...form.memberList[0] } : null;
+      let memberObj = form.memberList?.length > 0 ? { ...form.memberList[0] } : null;
       // 获取会员名称
       if (memberObj) {
         this.memberRankList.forEach((item) => {
@@ -1133,9 +1095,7 @@ export default {
           calenderActivityList:
             this.form.activeList?.length > 0 ? this.form.activeList : null,
           musicRepair:
-            this.form.leBaoList?.length > 0
-              ? { ...this.form.leBaoList[0] }
-              : null,
+            this.form.leBaoList?.length > 0 ? { ...this.form.leBaoList[0] } : null,
           calenderMember:
             this.form.memberList?.length > 0 &&
             this.form.memberList[0]?.memberRankSettingId
@@ -1168,9 +1128,7 @@ export default {
           calenderActivityList:
             this.form.activeList?.length > 0 ? this.form.activeList : null,
           musicRepair:
-            this.form.leBaoList?.length > 0
-              ? { ...this.form.leBaoList[0] }
-              : null,
+            this.form.leBaoList?.length > 0 ? { ...this.form.leBaoList[0] } : null,
           calenderMember:
             this.form.memberList?.length > 0 &&
             this.form.memberList[0]?.memberRankSettingId
@@ -1187,8 +1145,7 @@ export default {
           }),
           calenderFeeType: this.form.calenderFeeType,
           calenderFeeJson: JSON.stringify(calenderFeeJson),
-          musicGroupCalenderRefundPeriods:
-            this.form.musicGroupCalenderRefundPeriods,
+          musicGroupCalenderRefundPeriods: this.form.musicGroupCalenderRefundPeriods,
           currentTotalAmount: this.form.currentTotalAmount,
           contractUrl: this.form.contractUrl,
         };
@@ -1209,8 +1166,7 @@ export default {
       this.form.calenderFeeJson.allTotal = val;
       if (this.form.calenderFeeJson.discountTotal) {
         this.form.currentTotalAmount =
-          this.form.calenderFeeJson.allTotal -
-          this.form.calenderFeeJson.discountTotal;
+          this.form.calenderFeeJson.allTotal - this.form.calenderFeeJson.discountTotal;
       } else {
         this.form.currentTotalAmount = this.form.calenderFeeJson.allTotal;
       }
@@ -1287,9 +1243,9 @@ export default {
       // console.log(val,'form.currentTotalAmount');
       // this.$forceUpdate()
     },
-    "form.calenderFeeType"(val,oldValue) {
-      console.log(val,oldValue,this.initDetail)
-      if (val == "TEACHER"&&!this.initDetail ) {
+    "form.calenderFeeType"(val, oldValue) {
+      console.log(val, oldValue, this.initDetail);
+      if (val == "TEACHER" && !this.initDetail) {
         let arr = [];
         this.form.eclass.forEach((item) => {
           arr.push({
@@ -1329,11 +1285,7 @@ export default {
       this.cycle = {};
 
       if (val != "1") {
-        this.$set(
-          this.form,
-          "musicGroupOrganizationCourseSettingId",
-          undefined
-        );
+        this.$set(this.form, "musicGroupOrganizationCourseSettingId", undefined);
       }
 
       // this.$set(this.cycle, "paymentAmount", undefined);

+ 22 - 72
src/views/teamDetail/teamList.vue

@@ -19,7 +19,6 @@
           >申请乐团</el-button
         >
       </div>
-
       <save-form
         :inline="true"
         @submit="search"
@@ -171,10 +170,7 @@
           <el-button type="primary" native-type="reset">重置</el-button>
         </el-form-item>
         <el-form-item>
-          <el-button
-            type="primary"
-            v-permission="'export/musicGroup'"
-            @click="onExport"
+          <el-button type="primary" v-permission="'export/musicGroup'" @click="onExport"
             >导出</el-button
           >
         </el-form-item>
@@ -195,24 +191,14 @@
             align="center"
             label="所属分部"
           ></el-table-column>
-          <el-table-column
-            prop="id"
-            width="100"
-            align="center"
-            label="乐团编号"
-          >
+          <el-table-column prop="id" width="100" align="center" label="乐团编号">
             <template slot-scope="scope">
               <copy-text>
                 {{ scope.row.id }}
               </copy-text>
             </template>
           </el-table-column>
-          <el-table-column
-            prop="name"
-            width="200px"
-            align="center"
-            label="乐团名称"
-          >
+          <el-table-column prop="name" width="200px" align="center" label="乐团名称">
             <template slot-scope="scope">
               <p>
                 {{ scope.row.name }}
@@ -241,35 +227,21 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="chargeTypeName"
-            label="收费类型"
-          >
+          <el-table-column align="center" prop="chargeTypeName" label="收费类型">
           </el-table-column>
-          <el-table-column
-            prop="educationalTeacherName"
-            align="center"
-            label="乐团主管"
-          >
+          <el-table-column prop="educationalTeacherName" align="center" label="乐团主管">
           </el-table-column>
 
-          <el-table-column
-            prop="groupMemberNum"
-            align="center"
-            label="成团人数"
-          >
+          <el-table-column prop="groupMemberNum" align="center" label="成团人数">
           </el-table-column>
           <el-table-column prop="payNum" align="center" label="在读人数">
           </el-table-column>
-          <el-table-column prop="course"
-                           align='center'
-                           label="是否开课">
-                           <template slot-scope="scope">
-                            <div>
-                              {{scope.row.firstCourseStartTime?'是':'否'}}
-                            </div>
-                           </template>
+          <el-table-column prop="course" align="center" label="是否开课">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.firstCourseStartTime ? "是" : "否" }}
+              </div>
+            </template>
           </el-table-column>
           <el-table-column
             prop="createTime"
@@ -304,30 +276,21 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            width="220px"
-            fixed="right"
-            label="操作"
-          >
+          <el-table-column align="center" width="220px" fixed="right" label="操作">
             <template slot-scope="scope">
               <div>
                 <!-- 审核中 编辑 -->
                 <el-button
                   type="text"
                   v-if="
-                    scope.row.status == 'AUDIT' &&
-                    permission('musicGroup/auditSuccess')
+                    scope.row.status == 'AUDIT' && permission('musicGroup/auditSuccess')
                   "
                   @click="lookTeamDetail(scope.row)"
                   >审核</el-button
                 >
                 <el-button
                   type="text"
-                  v-if="
-                    scope.row.status == 'DRAFT' &&
-                    permission('musicGroup/update')
-                  "
+                  v-if="scope.row.status == 'DRAFT' && permission('musicGroup/update')"
                   @click="lookTeamDetail(scope.row)"
                   >编辑</el-button
                 >
@@ -335,8 +298,7 @@
                 <el-button
                   type="text"
                   v-if="
-                    scope.row.status == 'AUDIT_FAILED' &&
-                    permission('musicGroup/update')
+                    scope.row.status == 'AUDIT_FAILED' && permission('musicGroup/update')
                   "
                   @click="lookTeamDetail(scope.row)"
                   >编辑</el-button
@@ -411,10 +373,7 @@
                 >
 
                 <el-button
-                  v-if="
-                    scope.row.status == 'PREPARE' &&
-                    permission('musicGroup/action')
-                  "
+                  v-if="scope.row.status == 'PREPARE' && permission('musicGroup/action')"
                   @click="startTeam(scope.row)"
                   type="text"
                   >确认成团</el-button
@@ -424,8 +383,7 @@
                            @click="stopTeam(scope.row)">取消乐团</el-button> -->
                 <el-button
                   v-if="
-                    (scope.row.status == 'PAUSE' ||
-                      scope.row.status == 'CLOSE') &&
+                    (scope.row.status == 'PAUSE' || scope.row.status == 'CLOSE') &&
                     permission('musicGroup/resumeMusicGroup')
                   "
                   @click="onTeamOpeation('start', scope.row)"
@@ -523,7 +481,7 @@ export default {
         billTimer: [],
         createTimer: [],
         cooperationOrganId: null,
-        isStartedCourse:null
+        isStartedCourse: null,
       },
       organList: [],
       typeList: [], // 收费类型
@@ -616,12 +574,8 @@ export default {
         courseViewType: this.topForm.courseViewType || null,
         cooperationOrganId: this.topForm.cooperationOrganId || null,
         searchType: this.$route.query.searchType,
-        isStartedCourse:this.topForm.isStartedCourse,
-        ...getTimes(
-          createTimer,
-          ["createStartDate", "createEndDate"],
-          "YYYY-MM-DD"
-        ),
+        isStartedCourse: this.topForm.isStartedCourse,
+        ...getTimes(createTimer, ["createStartDate", "createEndDate"], "YYYY-MM-DD"),
         ...getTimes(billTimer, ["billStartDate", "billEndDate"], "YYYY-MM-DD"),
       }).then((res) => {
         if (res.code == 200) {
@@ -1181,11 +1135,7 @@ export default {
       let obj = {
         ...reset,
         organId: this.topForm.orgin.join(",") || null,
-        ...getTimes(
-          createTimer,
-          ["createStartDate", "createEndDate"],
-          "YYYY-MM-DD"
-        ),
+        ...getTimes(createTimer, ["createStartDate", "createEndDate"], "YYYY-MM-DD"),
         searchType: this.$route.query.searchType,
         ...getTimes(billTimer, ["billStartDate", "billEndDate"], "YYYY-MM-DD"),
       };