Selaa lähdekoodia

11/02 缴费设置完成

Xiao_Mo 4 vuotta sitten
vanhempi
commit
25844ee331

+ 1 - 0
debug.log

@@ -0,0 +1 @@
+[1102/141000.893:ERROR:directory_reader_win.cc(43)] FindFirstFile: 系统找不到指定的路径。 (0x3)

+ 31 - 2
src/api/specialSetting.js

@@ -263,9 +263,38 @@ export function musicGroupOrganizationCourseSettingsQueryPage (data) {
 
 // 课程费用查询
 export function getOrganizationCourseUnitPriceSettings (data) {
-  return request({
+  return request2({
     url: api + `/organizationCourseUnitPriceSettings/queryPage`,
     method: 'get',
-    params: data
+    params: data,
+    data: {},
+    requestType: 'form',
+  })
+}
+
+// 新增课程费用
+export function addOrganizationCourseUnitPrice (data) {
+  return request2({
+    url: api + `/organizationCourseUnitPriceSettings/insert`,
+    method: 'post',
+    data
+  })
+}
+
+// 修改课程费用
+export function resetOrganizationCourseUnitPrice (data) {
+  return request2({
+    url: api + `/organizationCourseUnitPriceSettings/update`,
+    method: 'post',
+    data
+  })
+}
+
+// 删除课程费用
+export function deleteOrganizationCourseUnitPrice (data) {
+  return request2({
+    url: api + `/organizationCourseUnitPriceSettings/del`,
+    method: 'post',
+    data
   })
 }

+ 5 - 0
src/constant/index.js

@@ -70,3 +70,8 @@ export const paymentType = {
   0: '续费',
   1: '报名',
 }
+
+export const payOrderType = {
+  STUDENT:'学生',
+  SCHOOL:'学校' 
+}

+ 13 - 1
src/utils/searchArray.js

@@ -1,5 +1,5 @@
 // 搜索用的下拉数据列表
-
+import { payOrderType } from '../constant'
 // 课程类型
 export const courseType = [
   { label: "单技课", value: "SINGLE" },
@@ -208,6 +208,18 @@ export const classTimeList = [
   { label: "40", value: "CLASSROOM" },
 ]
 
+export const payOrderTypeList = getValueForKey(payOrderType)
+  
+
+
+function getValueForKey(obj){
+  let arr = []
+  for(let k in obj){
+    arr.push({label:obj[k],value:k})
+  }
+  console.log(arr)
+  return arr
+}
 
 // export {
 //   courseType,

+ 7 - 1
src/utils/vueFilter.js

@@ -1,7 +1,7 @@
 import Vue from 'vue'
 import dayjs from 'dayjs'
 import numeral from 'numeral'
-import { feeProject, feeType, saleType } from '../constant'
+import { feeProject, feeType, saleType,payOrderType } from '../constant'
 
 // 合并数组
 Vue.filter('joinArray', (value, type) => {
@@ -652,3 +652,9 @@ Vue.filter('receiveFormat', value => {
   }
   return template[value]
 })
+
+// 缴费方式
+payOrderType
+Vue.filter('payOrderType', value => {
+  return payOrderType[value]
+})

+ 2 - 1
src/views/categroyManager/globalConfig.vue

@@ -110,7 +110,8 @@ export default {
         chargesList: permission('/globalConfig/chargesList'),
         jobTemplateSetting: permission('/globalConfig/jobTemplateSetting'),
         errorManager: permission('/globalConfig/errorManager'),
-        holidaySetting: permission('/globalConfig/holidaySetting')
+        holidaySetting: permission('/globalConfig/holidaySetting'),
+        musicCourseFee:permission('/globalConfig/musicCourseFee')
       }
     }
   },

+ 339 - 135
src/views/categroyManager/specialSetup/musicCourseFee.vue

@@ -1,221 +1,425 @@
 <template>
-  <div class='m-container'>
+  <div class="m-container">
     <!-- <h2>折扣设置</h2> -->
     <div class="m-core">
-      <el-form :inline="true"
-               :model="searchForm">
+      <el-form :inline="true" :model="searchForm">
         <el-form-item>
-          <el-select placeholder="请选择分部"
-                     v-model="searchForm.organId"
-                     clearable>
-            <el-option v-for="(item,index) in organList"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="请选择分部"
+            v-model="searchForm.organId"
+            clearable
+          >
+            <el-option
+              v-for="(item, index) in organList"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="课程类型"
-                     v-model="searchForm.courseScheduleType"
-                     clearable
-                     filterable>
-            <el-option v-for="(item,index) in musicCourseType"
-                       :label="item.label"
-                       :value="item.value"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="课程类型"
+            v-model="searchForm.courseScheduleType"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="(item, index) in musicCourseType"
+              :label="item.label"
+              :value="item.value"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item>
-          <el-button type="danger"
-                     @click="search">搜索</el-button>
-          <el-button @click="onReSet"
-                     type="primary">重置</el-button>
+          <el-button type="danger" @click="search">搜索</el-button>
+          <el-button @click="onReSet" type="primary">重置</el-button>
         </el-form-item>
       </el-form>
-      <div class='newBand'
-           v-permission="'chargeType/upSet'"
-           @click="newVisiable = true">添加</div>
+      <div
+        class="newBand"
+        v-permission="'chargeType/upSet'"
+        @click="newVisiable = true"
+      >
+        添加
+      </div>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           prop="chargeTypeId"
-                           label="分部">
-            <template slot-scope="scope">{{ typesListById[scope.row.chargeTypeId] }}</template>
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column align="center" prop="organName" label="分部名称">
+            <template slot-scope="scope">{{ scope.row.organ.name }}</template>
+          </el-table-column>
+          <el-table-column align="center" prop="courseType" label="课程类型">
+            <template slot-scope="scope">{{
+              scope.row.courseType | coursesType
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="chargeTypeId"
-                           label="课程类型">
-            <template slot-scope="scope">{{ typesListById[scope.row.chargeTypeId] }}</template>
+          <el-table-column align="center" prop="chargeName" label="缴费形态">
+            <template slot-scope="scope">{{
+              scope.row.chargeType.name
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="subjectId"
-                           label="缴费形态">
-            <template slot-scope="scope">{{ subjectListById[scope.row.subjectId] }}</template>
+          <el-table-column
+            align="center"
+            prop="goodsDiscountRate"
+            label="缴费金额"
+          >
+            <template slot-scope="scope">{{
+              scope.row.unitPrice | moneyFormat
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="goodsDiscountRate"
-                           label="缴费金额">
+          <el-table-column align="center" prop="courseType" label="修改时间">
+            <template slot-scope="scope">{{
+              scope.row.updateTime | formatTimer
+            }}</template>
           </el-table-column>
-          <el-table-column align='center'
-                           label="操作">
+          <el-table-column align="center" label="操作">
             <template slot-scope="scope">
-              <el-button @click="openTypes('update', scope.row)"
-                         v-permission="'chargeType/upSet'"
-                         type="text">修改</el-button>
-              <el-button @click="onTypesDel(scope.row)"
-                         v-permission="'chargeType/del'"
-                         type="text">删除</el-button>
+              <el-button
+                @click="openTypes(scope.row)"
+                v-permission="'chargeType/upSet'"
+                type="text"
+                >修改</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
-        <pagination :total="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+        <pagination
+          :total="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="新建"
-               :visible.sync="newVisiable"
-               width="500px">
-      <el-form :model="createForm"
-               class="createForm"
-               ref="ruleForm">
-        <el-form-item label="所属分部"
-                      prop="chargeTypeId"
-                      :label-width="formLabelWidth">
-          <el-select placeholder="请选择分部"
-                     v-model="createForm.organId"
-                     clearable>
-            <el-option v-for="(item,index) in organList"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+    <el-dialog
+      title="新建"
+      destroy-on-close
+      :visible.sync="newVisiable"
+      width="500px"
+    >
+      <el-form :model="createForm" class="createForm" ref="ruleForm">
+        <el-form-item
+          label="所属分部"
+          :rules="[{ required: true, message: '所属分部', trigger: 'blur' }]"
+          prop="organId"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            placeholder="请选择分部"
+            v-model="createForm.organId"
+            clearable
+          >
+            <el-option
+              v-for="(item, index) in organList"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="收费类型"
-                      prop="chargeTypeId"
-                      :label-width="formLabelWidth">
-          <el-select v-model.trim="createForm.chargeTypeId"
-                     filterable
-                     placeholder="请选择收费类型"
-                     clearable>
-            <el-option v-for="item in musicCourseType"
-                       :key="item.value"
-                       :label="item.label"
-                       :value="item.value">
+        <el-form-item
+          label="课程类型"
+          :rules="[
+            { required: true, message: '请选择课程类型', trigger: 'blur' },
+          ]"
+          prop="courseType"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            v-model.trim="createForm.courseType"
+            filterable
+            placeholder="请选择课程类型"
+            clearable
+          >
+            <el-option
+              v-for="item in musicCourseType"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <div v-for="(item,index) in dataList"
-             :key="index">
-          <el-form-item :label="`${item.name}每分钟费用`"
-                        :label-width="formLabelWidth">
-            <el-input v-model="createForm[item.name]">
+        <div v-for="(item, index) in dataList" :key="index">
+          <el-form-item
+            :label="`${item.name}每分钟费用`"
+            :label-width="formLabelWidth"
+            :rules="[
+              {
+                required: true,
+                message: '请输入每分钟课程费用',
+                trigger: 'blur',
+              },
+            ]"
+            :prop="`unitPriceJson.${item.id}`"
+          >
+            <el-input type="number" v-model="createForm.unitPriceJson[item.id]">
               <template slot="append">元</template>
             </el-input>
           </el-form-item>
         </div>
-
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="newVisiable = false">取 消</el-button>
-        <el-button type="primary">确 定</el-button>
+        <el-button type="primary" @click="submitInfo">确 定</el-button>
       </span>
     </el-dialog>
 
+    <el-dialog
+      title="修改"
+      :visible.sync="resetVisible"
+      width="500px"
+      destroy-on-close
+    >
+      <el-form :model="resetForm" class="resetForm" ref="resetForm">
+        <el-form-item
+          label="所属分部"
+          :rules="[{ required: true, message: '所属分部', trigger: 'blur' }]"
+          prop="organId"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            placeholder="请选择分部"
+            v-model="resetForm.organId"
+            clearable
+            disabled
+          >
+            <el-option
+              v-for="(item, index) in organList"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          label="课程类型"
+          :rules="[
+            { required: true, message: '请选择课程类型', trigger: 'blur' },
+          ]"
+          prop="courseType"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            v-model.trim="resetForm.courseType"
+            filterable
+            placeholder="请选择课程类型"
+            clearable
+            disabled
+          >
+            <el-option
+              v-for="item in musicCourseType"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          v-if="actvieRow"
+          :label="`${actvieRow.chargeType.name}每分钟费用`"
+          :label-width="formLabelWidth"
+          :rules="[
+            {
+              required: true,
+              message: '请输入每分钟课程费用',
+              trigger: 'blur',
+            },
+          ]"
+          prop="unitPrice"
+        >
+          <el-input type="number" v-model="resetForm.unitPrice">
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer">
+        <el-button @click="resetVisible = false">取 消</el-button>
+        <el-button type="primary" @click="resetSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
+import pagination from "@/components/Pagination/index";
 import { getEmployeeOrgan } from "@/api/buildTeam";
-import { chargeTypeList, getOrganizationCourseUnitPriceSettings } from '@/api/specialSetting'
-import createDiscount from './modals/create-discount'
-import { musicCourseType } from '@/utils/searchArray'
+import {
+  chargeTypeList,
+  getOrganizationCourseUnitPriceSettings,
+  addOrganizationCourseUnitPrice,
+  resetOrganizationCourseUnitPrice,
+  deleteOrganizationCourseUnitPrice,
+} from "@/api/specialSetting";
+import createDiscount from "./modals/create-discount";
+import { musicCourseType } from "@/utils/searchArray";
 export default {
-  name: 'typesManager',
+  name: "typesManager",
   components: { pagination, createDiscount },
-  data () {
+  data() {
     return {
       musicCourseType,
       newVisiable: false,
+      resetVisible: false,
       tableList: [],
       dataList: [],
       organList: [],
       searchForm: {
         organId: null,
-        courseScheduleType: null
+        courseScheduleType: null,
       },
       createForm: {
         organId: null,
-        courseScheduleType: null,
+        courseType: null,
+        unitPriceJson: {},
+      },
+      resetForm: {
+        unitPrice: null,
+        courseType: null,
+        id: null,
+        organId: null,
       },
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-      formLabelWidth: '120px'
-    }
+      formLabelWidth: "120px",
+      actvieRow: null,
+    };
   },
-  mounted () {
+  mounted() {
     chargeTypeList({
       rows: 99999,
-      page: 1
-    }).then(res => {
+      page: 1,
+    }).then((res) => {
       if (res.code == 200) {
-        this.dataList = res.data.rows
-        this.dataList.forEach(item => {
-          this.$set(this.createForm, item.name, null)
-        })
-        console.log('111')
-        console.log(this.createForm)
+        this.dataList = res.data.rows;
+        this.dataList.forEach((item) => {
+          this.$set(this.createForm.unitPriceJson, item.id, null);
+        });
+        console.log(this.createForm);
       }
-    })
-    getEmployeeOrgan().then(res => {
+    });
+    getEmployeeOrgan().then((res) => {
       if (res.code == 200) {
         this.organList = res.data;
       }
     });
-    this.getList()
+    this.getList();
   },
   methods: {
-    search () { },
-    onReSet () { },
+    search() {
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      this.searchForm = {
+        organId: null,
+        courseScheduleType: null,
+      };
+      this.search();
+    },
 
-    async onTypesDel (row) {
+    async onTypesDel(row) {
       try {
-        await this.$confirm('是否删除此条数据?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        })
-        delChargeTypeSubjectMapper({ id: row.id }).then(res => {
-          this.messageTips('删除', res)
-        })
-      } catch (error) { }
+        await this.$confirm("是否删除此条数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        });
+        delChargeTypeSubjectMapper({ id: row.id }).then((res) => {
+          this.messageTips("删除", res);
+        });
+      } catch (error) {}
     },
 
-    getList () {
+    getList() {
       getOrganizationCourseUnitPriceSettings({
         rows: this.pageInfo.limit,
-        page: this.pageInfo.page
-      }).then(res => {
-        let result = res.data
-        this.tableList = result.rows
-        this.pageInfo.total = result.total
+        page: this.pageInfo.page,
+        organId: this.searchForm.organId,
+        courseScheduleType: this.searchForm.courseScheduleType,
+      }).then((res) => {
+        let result = res.data;
+        this.tableList = result.rows;
+        this.pageInfo.total = result.total;
         // }
-      })
+      });
+    },
+    submitInfo() {
+      this.$refs.ruleForm.validate(async (valid) => {
+        const data = [];
+        for (const key in this.createForm.unitPriceJson) {
+          if (this.createForm.unitPriceJson.hasOwnProperty(key)) {
+            const item = this.createForm.unitPriceJson[key];
+            data.push({
+              chargeTypeId: key,
+              courseType: this.createForm.courseType,
+              organId: this.createForm.organId,
+              unitPrice: item,
+            });
+          }
+        }
+        if (valid) {
+          try {
+            await addOrganizationCourseUnitPrice(data);
+            this.$message.success("创建成功");
+            this.getList();
+            this.newVisiable = false;
+            this.createForm = {
+              organId: null,
+              courseType: null,
+              unitPriceJson: {},
+            };
+            this.dataList.forEach((item) => {
+              this.$set(this.createForm.unitPriceJson, item.id, null);
+            });
+          } catch (error) {}
+        }
+      });
+    },
+    openTypes(row) {
+      this.actvieRow = row;
+      this.resetForm = {
+        chargeTypeId: row.chargeTypeId,
+        unitPrice: row.unitPrice,
+        courseType: row.courseType,
+        id: row.id,
+        organId: row.organId,
+      };
+      this.resetVisible = true;
+    },
+    resetSubmit() {
+      // resetOrganizationCourseUnitPrice
+      this.$refs.resetForm.validate(async (valid) => {
+        if (valid) {
+          try {
+            await resetOrganizationCourseUnitPrice(this.resetForm);
+            this.$message.success("修改成功");
+            this.getList();
+            this.resetVisible = false;
+            this.resetForm = {
+              unitPrice: null,
+              courseType: null,
+              id: null,
+              organId: null,
+            };
+          } catch (error) {}
+        }
+      });
     },
-
   },
-}
+};
 </script>
 <style lang="scss" scoped>
 .el-button--primary {

+ 26 - 3
src/views/resetTeaming/components/resetPayList.vue

@@ -1,6 +1,28 @@
 <!--  -->
 <template>
   <div class="m-core">
+        <el-form :inline="true" :model="searchForm">
+      <el-form-item>
+        <el-select
+          placeholder="订单类型"
+          v-model="searchForm.payUserType"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="(item, index) in payOrderTypeList"
+            :label="item.label"
+            :value="item.value"
+            :key="index"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="danger" @click="search">搜索</el-button>
+        <el-button @click="onReSet" type="primary">重置</el-button>
+      </el-form-item>
+    </el-form>
     <div class="topWrap">
       <!-- <div class="newBand"
            @click="newPay"
@@ -15,6 +37,7 @@
            v-permission="'/studentPayBase'"
            @click="setStudentPay">学员缴费设置</div>
       <div class="newBand"
+      v-if="!isNewGropu"
            @click="onCreateQRCode">续费二维码</div>
     </div>
     <div class="tableWrap">
@@ -276,7 +299,7 @@ import setStudentFee from './studentPayBase'
 import userPayForm from '../modals/user-pay-form'
 import schoolPayForm from '../modals/school-pay-form'
 export default {
-  props: ['baseInfo'],
+  props: ['baseInfo','isNewGropu'],
   components: {
     pagination,
     setStudentFee,
@@ -289,7 +312,7 @@ export default {
       userVisible: false,
       schoolVisible: false,
       searchForm: {
-        search: null
+        payUserType: null
       },
       tableList: [{}],
       rules: {
@@ -358,7 +381,7 @@ export default {
       this.userVisible = true
     },
     getList () {
-      musicGroupPaymentCalenderQueryPage({ page: this.rules.page, rows: this.rules.limit, musicGroupId: this.$route.query.id }).then(res => {
+      musicGroupPaymentCalenderQueryPage({ page: this.rules.page, rows: this.rules.limit, musicGroupId: this.$route.query.id,payUserType:this.searchForm.payUserType }).then(res => {
         if (res.code == 200) {
           this.rules.total = res.data.total
           this.tableList = res.data.rows;

+ 2 - 2
src/views/teamBuild/components/soundSetComponents/chioseMusic.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <div v-for="(music,index) in item.chioseMusic">
+    <div v-for="(music,index) in item.chioseMusic" :key="index">
 
-      </el-row class="chioseMusic">
+      <el-row class="chioseMusic">
       <el-col>
         <div class="flexRow">
           <p class="title">可选乐器{{index+1}}:</p>

+ 237 - 198
src/views/teamBuild/components/soundSetComponents/soundSetCore.vue

@@ -1,68 +1,77 @@
 <template>
   <div>
     <div class="soundBtnWrap">
-      <el-button type="primary"
-                 @click="allin"
-                 v-if="teamStatus != 'resetTeam'">全选</el-button>
-      <el-button type="danger"
-                 @click="deleteRow"
-                 v-if="teamStatus != 'resetTeam'">删除</el-button>
-      <el-button type="primary"
-                 @click="soundVisible = true">添加</el-button>
+      <el-button type="primary" @click="allin" v-if="teamStatus != 'resetTeam'"
+        >全选</el-button
+      >
+      <el-button
+        type="danger"
+        @click="deleteRow"
+        v-if="teamStatus != 'resetTeam'"
+        >删除</el-button
+      >
+      <el-button type="primary" @click="soundVisible = true">添加</el-button>
     </div>
     <div class="coreWrap">
-      <el-checkbox-group v-model="checkList"
-                         @change='lookCheck'>
-        <el-collapse v-model="chioseActiveSound"
-                     accordion
-                     @change="changeActiveSound">
-          <el-collapse-item v-for="(item,index) in activeSoundList"
-                            :name="item.id"
-                            :key="index">
+      <el-checkbox-group v-model="checkList" @change="lookCheck">
+        <el-collapse
+          v-model="chioseActiveSound"
+          accordion
+          @change="changeActiveSound"
+        >
+          <el-collapse-item
+            v-for="(item, index) in activeSoundList"
+            :name="item.id"
+            :key="index"
+          >
             <template slot="title">
               <div class="coreItemTitle">
-                <el-checkbox :label="item.id">{{item.sound}}</el-checkbox>
+                <el-checkbox :label="item.id">{{ item.sound }}</el-checkbox>
               </div>
             </template>
             <div class="coreItem">
               <div class="coreItemRow">
                 <p class="title">计划招生人数:</p>
-                <el-input style="width:180px"
-                          v-model="item.expectedStudentNum"></el-input>
+                <el-input
+                  style="width: 180px"
+                  v-model="item.expectedStudentNum"
+                ></el-input>
               </div>
             </div>
-            <chioseMusic :item="item"
-                         @lookMusic="lookMusic" />
+            <chioseMusic :item="item" @lookMusic="lookMusic" />
             <div class="coreItemRow">
               <p class="title">教辅:</p>
-              <el-select style="width:558px!important;"
-                         v-model="item.markChioseList"
-                         clearable
-                         filterable
-                         multiple>
-                <el-option v-for="(item,index) in item.markList"
-                           :key="index"
-                           :label="item.name"
-                           :value="item.id"></el-option>
+              <el-select
+                style="width: 558px !important"
+                v-model="item.markChioseList"
+                clearable
+                filterable
+                multiple
+              >
+                <el-option
+                  v-for="(item, index) in item.markList"
+                  :key="index"
+                  :label="item.name"
+                  :value="item.id"
+                ></el-option>
               </el-select>
             </div>
           </el-collapse-item>
-
         </el-collapse>
       </el-checkbox-group>
     </div>
-    <el-dialog title="声部选择"
-               :visible.sync="soundVisible"
-               destroy-on-close>
-      <chioseSoundList :soundList="soundList"
-                       :activeSound='activeSound'
-                       @chioseSound="chioseSound" />
+    <el-dialog title="声部选择" :visible.sync="soundVisible" destroy-on-close>
+      <chioseSoundList
+        :soundList="soundList"
+        :activeSound="activeSound"
+        @chioseSound="chioseSound"
+      />
     </el-dialog>
   </div>
 </template>
 <script>
 import store from "@/store";
-import { formatData } from '@/utils/utils'
+import { formatData } from "@/utils/utils";
 import {
   getSubject,
   getDefaultSubject,
@@ -73,15 +82,15 @@ import {
   updateSubjectInfo,
   auditSuccess,
   auditFailed,
-  getSubjectGoods
+  getSubjectGoods,
 } from "@/api/buildTeam";
-import dayjs from 'dayjs'
-import chioseSoundList from './chioseSoundList'
-import chioseMusic from './chioseMusic'
-import { findIndex } from 'lodash'
+import dayjs from "dayjs";
+import chioseSoundList from "./chioseSoundList";
+import chioseMusic from "./chioseMusic";
+import { findIndex } from "lodash";
 export default {
   components: { chioseSoundList, chioseMusic },
-  data () {
+  data() {
     return {
       soundList: [], // 接口返回的一级二级声部
       soundVisible: false, // 设置声部弹窗
@@ -91,17 +100,20 @@ export default {
       chioseActiveSound: null,
       soundList: [], // 接口返回的一级二级声部
       childSoundList: [],
-      teamStatus: '',// 乐团状态
+      teamStatus: "", // 乐团状态
       checkList: [],
-    }
-  }, mounted () {
-    this.init()
+    };
+  },
+  mounted() {
+    this.init();
+    console.log("mounted");
   },
-  activated () {
-    this.init()
+  activated() {
+    this.init();
+    console.log("activated");
   },
   methods: {
-    init () {
+    init() {
       // 获取第一页的数据
       this.topfor = this.$store.getters.topinfo;
       let type = this.topfor.type;
@@ -112,35 +124,35 @@ export default {
       if (this.$route.query.rules) {
         this.Frules = this.$route.query.rules;
       }
-      getSoundTree({ tenantId: 1 }).then(res => {
+      getSoundTree({ tenantId: 1 }).then((res) => {
         if (res.code == 200) {
-          this.soundList = res.data.rows
+          this.soundList = res.data.rows;
           if (this.teamStatus == "newTeam") {
             getDefaultSubject({
               chargeTypeId: type,
               organId: this.topfor.section,
-              number: 1
-            }).then(res => {
+              number: 1,
+            }).then((res) => {
               if (res.code == 200) {
-                let activeSound = []
-                this.activeSoundList = res.data.map(item => {
-                  activeSound.push(item.id)
+                let activeSound = [];
+                this.activeSoundList = res.data.map((item) => {
+                  activeSound.push(item.id);
                   return this.initSound(item);
                 });
                 this.activeSound = activeSound;
-                this.chioseActiveSound = activeSound[0]
-                this.changeActiveSound(activeSound[0])
+                this.chioseActiveSound = activeSound[0];
+                this.changeActiveSound(activeSound[0]);
               }
             });
           } else {
-            this.$nextTick(res => {
-              this.teamid = this.$route.query.id;
-              findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(
-                res => {
-                  if (res.code == 200) {
-                    let activeSound = []
-                    this.activeSoundList = res.data?.musicGroupSubjectPlans.map(item => {
-                      activeSound.push(item.subjectId)
+            this.teamid = this.$route.query.id;
+            findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(
+              (res) => {
+                if (res.code == 200) {
+                  let activeSound = [];
+                  this.activeSoundList = res.data?.musicGroupSubjectPlans.map(
+                    (item) => {
+                      activeSound.push(item.subjectId);
                       return {
                         id: parseInt(item.subjectId),
                         sound: item.subName,
@@ -149,164 +161,166 @@ export default {
                         markChioseList: [],
                         goodsList: [],
                         markList: [],
-                      }
-                    })
-                    this.activeSound = activeSound;
-                    this.chioseActiveSound = activeSound[0]
-                    this.changeActiveSound(activeSound[0])
-                    // 格式化商品和教辅
+                      };
+                    }
+                  );
+                  this.activeSound = activeSound;
+                  this.chioseActiveSound = activeSound[0];
+                  this.changeActiveSound(activeSound[0]);
+                  // 格式化商品和教辅
 
-                    res.data.musicGroupSubjectGoodsGroups.forEach(shop => {
-                      let index = findIndex(this.activeSoundList, (o) => {
-                        return o.id == shop.subjectId
-                      })
-
-                      if (index != -1) {
-                        if (shop.type == 'ACCESSORIES') {
-                          shop.goodsIdList.split(',').forEach(item => {
-                            this.activeSoundList[index].markChioseList.push(parseInt(item))
-                          })
-                        } else if (shop.type == 'INSTRUMENT') {
-                          // 商品
-                          let typeJson = Object.keys(JSON.parse(shop.kitGroupPurchaseTypeJson))
-                          this.activeSoundList[index].chioseMusic.push({
-                            musical: parseInt(shop.goodsIdList),
-                            type: typeJson,
-                            groupPrice: shop.price,
-                            borrowPrice: shop.depositFee
-                          })
-                        }
+                  res.data.musicGroupSubjectGoodsGroups.forEach((shop) => {
+                    let index = findIndex(this.activeSoundList, (o) => {
+                      return o.id == shop.subjectId;
+                    });
 
+                    if (index != -1) {
+                      if (shop.type == "ACCESSORIES") {
+                        shop.goodsIdList.split(",").forEach((item) => {
+                          this.activeSoundList[index].markChioseList.push(
+                            parseInt(item)
+                          );
+                        });
+                      } else if (shop.type == "INSTRUMENT") {
+                        // 商品
+                        let typeJson = Object.keys(
+                          JSON.parse(shop.kitGroupPurchaseTypeJson)
+                        );
+                        this.activeSoundList[index].chioseMusic.push({
+                          musical: parseInt(shop.goodsIdList),
+                          type: typeJson,
+                          groupPrice: shop.price,
+                          borrowPrice: shop.depositFee,
+                        });
                       }
-
-
-                    })
-
-
-                  }
-                })
-            })
+                    }
+                  });
+                  console.log(this.activeSoundList);
+                }
+              }
+            );
           }
         }
       });
-      getSubject({ tenantId: 1 }).then(res => {
+      getSubject({ tenantId: 1 }).then((res) => {
         if (res.code == 200) {
-          this.childSoundList = res.data
+          this.childSoundList = res.data;
         }
-      })
+      });
     },
-    lookCheck (val) {
-      this.checkList = [...new Set(val)]
+    lookCheck(val) {
+      this.checkList = [...new Set(val)];
     },
-    chioseSound (activeSound) {
+    chioseSound(activeSound) {
       // 同步数据
       this.activeSound = [...new Set(activeSound)];
-      let newSoundList = []
+      let newSoundList = [];
 
       for (let i in this.childSoundList) {
         if (this.activeSound.includes(this.childSoundList[i].id)) {
-          newSoundList.push(this.initSound(this.childSoundList[i]))
+          newSoundList.push(this.initSound(this.childSoundList[i]));
         }
       }
-      let idList = this.activeSoundList.map(item => {
-        return item.id
-      })
+      let idList = this.activeSoundList.map((item) => {
+        return item.id;
+      });
       for (let x in newSoundList) {
-        const indexof = idList.indexOf(newSoundList[x]?.id)
+        const indexof = idList.indexOf(newSoundList[x]?.id);
         if (indexof > -1) {
-          newSoundList[x] = this.activeSoundList[indexof]
+          newSoundList[x] = this.activeSoundList[indexof];
         }
       }
-      this.activeSoundList = newSoundList
-      this.soundVisible = false
+      this.activeSoundList = newSoundList;
+      this.soundVisible = false;
     },
-    initSound (item) {
+    initSound(item) {
       let obj = {
         id: item.id,
         sound: item.name,
         expectedStudentNum: item.expectedStudentNum,
-        chioseMusic: [{ musical: '', type: ["GROUP"], groupPrice: 0, borrowPrice: 1500 }],
+        chioseMusic: [
+          { musical: "", type: ["GROUP"], groupPrice: 0, borrowPrice: 1500 },
+        ],
         markChioseList: [],
         goodsList: [],
         markList: [],
-
-      }
-      return obj
+      };
+      return obj;
     },
-    changeActiveSound (val) {
-      this.activeSoundList.forEach(item => {
+    changeActiveSound(val) {
+      this.activeSoundList.forEach((item) => {
         if (item.id == val) {
           if (item.goodsList.length < 1 || item.markList.length < 1) {
-            getSubjectGoods({ subjectId: item.id, chargeTypeId: this.topfor.type }).then(res => {
+            getSubjectGoods({
+              subjectId: item.id,
+              chargeTypeId: this.topfor.type,
+            }).then((res) => {
               if (res.code == 200) {
-                let goodList = []
-                let markList = []
-                res.data.forEach(item => {
-                  if (item.type == 'INSTRUMENT') {
-                    goodList.push(item)
-                  } else if (item.type == 'ACCESSORIES') {
-                    markList.push(item)
+                let goodList = [];
+                let markList = [];
+                res.data.forEach((item) => {
+                  if (item.type == "INSTRUMENT") {
+                    goodList.push(item);
+                  } else if (item.type == "ACCESSORIES") {
+                    markList.push(item);
                   }
-                })
+                });
                 item.goodsList = goodList;
                 item.markList = markList;
               }
             });
           }
-
         }
-      })
-    },
-    lookMusic () {
-
+      });
     },
+    lookMusic() {},
 
-    submitInfo () {
+    submitInfo() {
       // 计划招生人数
       // 可选乐器
       // 教辅
-      this.activeSoundList.forEach(item => {
+      this.activeSoundList.forEach((item) => {
         if (!item.expectedStudentNum) {
-          this.$message.error(`请填写${item.sound}的预计招生人数`)
-          return
+          this.$message.error(`请填写${item.sound}的预计招生人数`);
+          return;
         }
-        if (!item.chioseMusic[0].musical) {
-          this.$message.error(`请至少一个选择${item.sound}的可选乐器`)
-          return
+        if (!item.chioseMusic[0]?.musical) {
+          this.$message.error(`请至少一个选择${item.sound}的可选乐器`);
+          return;
         }
-      })
+      });
       // 新建团
-      let obj = {}
+      let obj = {};
       if (this.teamStatus == "newTeam") {
-        this.initCreateTeam(obj)
+        this.initCreateTeam(obj);
       }
       //  初始化声部
       obj.musicGroupSubjectGoodsGroups = [];
       obj.musicGroupSubjectPlans = [];
-      this.activeSoundList.forEach(active => {
+      this.activeSoundList.forEach((active) => {
         // 格式化声部数据
         let item = {
           expectedStudentNum: active.expectedStudentNum,
           subName: active.sound,
-          subjectId: active.id
+          subjectId: active.id,
         };
         obj.musicGroupSubjectPlans.push(item);
         // 格式化商品数据 chioseMusic: [{ musical: '', type: ["GROUP"], groupPrice: 0, borrowPrice: 1500 }],
-        active.chioseMusic.forEach(music => {
+        active.chioseMusic.forEach((music) => {
           let goodsItem = null;
-          let depositFee = music.borrowPrice
-          let price = music.groupPrice
+          let depositFee = music.borrowPrice;
+          let price = music.groupPrice;
           let index = findIndex(active.goodsList, (o) => {
-            return o.id == music.musical
-          })
+            return o.id == music.musical;
+          });
           if (index != -1) {
-            goodsItem = active.goodsList[index]
+            goodsItem = active.goodsList[index];
           }
-          let kitGroupPurchaseTypeJson = {}
-          music.type.forEach(type => {
-            kitGroupPurchaseTypeJson[type] = 0
-          })
-          kitGroupPurchaseTypeJson = JSON.stringify(kitGroupPurchaseTypeJson)
+          let kitGroupPurchaseTypeJson = {};
+          music.type.forEach((type) => {
+            kitGroupPurchaseTypeJson[type] = 0;
+          });
+          kitGroupPurchaseTypeJson = JSON.stringify(kitGroupPurchaseTypeJson);
           if (goodsItem) {
             let some = {
               subjectId: active.id,
@@ -315,22 +329,22 @@ export default {
               name: goodsItem.name,
               kitGroupPurchaseTypeJson,
               depositFee,
-              price
+              price,
             };
             obj.musicGroupSubjectGoodsGroups.push(some);
           }
-        })
+        });
         // 格式化辅件
         //  markChioseList: [],
         // goodsList: [],
         // markList: [],
-        active.markChioseList.forEach(ass => {
+        active.markChioseList.forEach((ass) => {
           let index = findIndex(active.markList, (o) => {
-            return o.id == ass
-          })
+            return o.id == ass;
+          });
           let goodsItem = null;
           if (index != -1) {
-            goodsItem = active.markList[index]
+            goodsItem = active.markList[index];
           }
           if (goodsItem) {
             let some = {
@@ -342,58 +356,56 @@ export default {
             };
             obj.musicGroupSubjectGoodsGroups.push(some);
           }
-
-        })
-        if (this.teamStatus == 'newTeam') {
-          createTeam(obj).then(res => {
+        });
+        if (this.teamStatus == "newTeam") {
+          createTeam(obj).then((res) => {
             if (res.code == 200) {
               // 成功 跳转到乐团报名详情
+              this.$emit("chiosetab", 2);
             }
           });
         } else {
-          obj.musicGroupId = this.teamid
-          obj.musicGroupStatus = "DRAFT"
-          updateSubjectInfo(obj).then(res => {
+          obj.musicGroupId = this.teamid;
+          obj.musicGroupStatus = "DRAFT";
+          updateSubjectInfo(obj).then((res) => {
             if (res.code == 200) {
               this.$message.success("提交成功");
+              this.$emit("chiosetab", 2);
             }
           });
         }
-      })
+      });
     },
-    deleteRow () {
+    deleteRow() {
       if (this.checkList.length < 1) {
-        this.$message.error('请至少勾选一个')
-        return
+        this.$message.error("请至少勾选一个");
+        return;
       }
       for (let i = 0; i < this.activeSoundList.length; i++) {
-        let index = this.checkList.indexOf(this.activeSoundList[i].id)
+        let index = this.checkList.indexOf(this.activeSoundList[i].id);
         if (index != -1) {
-          this.activeSoundList.splice(i, 1)
-          this.activeSound.splice(i, 1)
-          i--
+          this.activeSoundList.splice(i, 1);
+          this.activeSound.splice(i, 1);
+          i--;
         }
       }
-      this.checkList = []
-
-
+      this.checkList = [];
     },
-    allin () {
-      this.checkList = []
+    allin() {
+      this.checkList = [];
       this.activeSoundList.forEach((item, index) => {
-        this.checkList.push(item.id)
-      })
-
+        this.checkList.push(item.id);
+      });
     },
 
-    initCreateTeam (obj) {
+    initCreateTeam(obj) {
       let enrollClasses;
       this.topfor.startClass
         ? (enrollClasses = this.topfor.startClass.join(","))
         : (enrollClasses = null);
       obj.musicGroup = {
         settlementType: this.topfor.salary,
-        applyExpireDate: dayjs(this.topfor.time).format('YYYY-MM-DD HH:mm:ss'),
+        applyExpireDate: dayjs(this.topfor.time).format("YYYY-MM-DD HH:mm:ss"),
         chargeTypeId: this.topfor.type,
         cooperationOrganId: this.topfor.school,
         teamTeacherId: this.topfor.boss,
@@ -402,8 +414,12 @@ export default {
         name: this.topfor.name,
         organId: this.topfor.section,
         paymentPattern: this.topfor.paymentPattern,
-        paymentValidStartDate: this.topfor.paymentValidStartDate ? dayjs(this.topfor.paymentValidStartDate).format('YYYY-MM-DD') : this.topfor.paymentValidStartDate,
-        paymentValidEndDate: this.topfor.paymentValidEndDate ? dayjs(this.topfor.paymentValidEndDate).format('YYYY-MM-DD') : this.topfor.paymentValidEndDate,
+        paymentValidStartDate: this.topfor.paymentValidStartDate
+          ? dayjs(this.topfor.paymentValidStartDate).format("YYYY-MM-DD")
+          : this.topfor.paymentValidStartDate,
+        paymentValidEndDate: this.topfor.paymentValidEndDate
+          ? dayjs(this.topfor.paymentValidEndDate).format("YYYY-MM-DD")
+          : this.topfor.paymentValidEndDate,
         // paymentMonths:obj.months  有待确认
         schoolId: this.topfor.address,
         expectStartGroupDate: this.topfor.startTime,
@@ -411,12 +427,35 @@ export default {
         status,
         ownershipType: this.topfor.ownershipType,
         repairUserId: this.topfor.repairUserId,
-        feeType: this.topfor.feeType
+        feeType: this.topfor.feeType,
       };
-      return obj
-    }
+      return obj;
+    },
   },
-}
+  watch: {
+    activeSoundList: {
+      immediate: true,
+      deep: true,
+      handler(n) {
+       let chioseSoundNum = 0;
+       let PlannedCount =0;
+        let activeSoundList = this.activeSoundList;
+      if (n) {
+        let Count = 0;
+        if (n.length > 0) {
+          for (let item in n) {
+            Count += parseInt(n[item]?.expectedStudentNum) || 0;
+          }
+        }
+
+       chioseSoundNum = Count
+       PlannedCount = n.length
+       this.$emit('getNumber',chioseSoundNum,PlannedCount)
+      }
+      }
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .soundBtnWrap {

+ 4 - 1
src/views/teamBuild/components/teamBaseInfo.vue

@@ -761,7 +761,10 @@ export default {
         this.teamid = this.$route.query.id;
         getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
           if (res.code == 200) {
-            this.$listeners.getBaseInfo(res.data)
+            if(this.$listeners.getBaseInfo){
+               this.$listeners.getBaseInfo(res.data)
+            }
+           
             // 头部
             this.topFrom.name = res.data.musicGroup.name;
             this.$emit("getName", this.topFrom.name);

+ 29 - 0
src/views/teamBuild/components/teamPayInfo.vue

@@ -0,0 +1,29 @@
+<template>
+  <div class="pay-container">
+   <resetPayList :isNewGropu='true'/>
+  </div>
+</template>
+<script> 
+import { payOrderTypeList}  from "@/utils/searchArray";
+import resetPayList from '@/views/resetTeaming/components/resetPayList'
+export default {
+    components:{resetPayList},
+  data() {
+    return {
+        searchForm:{
+            courseScheduleType:null
+        },
+        payOrderTypeList
+    }
+  },
+  created (){
+
+  },
+  methods:{
+      search(){},
+      onReSet(){}
+  }
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 40 - 41
src/views/teamBuild/components/teamSoundSet.vue

@@ -1,24 +1,29 @@
 <template>
   <div class="sound-container">
     <div class="topMsg">
-      <p>当前选择声部数(个):{{chioseSoundNum}}</p>
-      <p style="margin-left:30px;">计划招生人数(个):{{PlannedCount}}</p>
+      <p>当前选择声部数(个):{{ chioseSoundNum }}</p>
+      <p style="margin-left: 30px">计划招生人数(个):{{ PlannedCount }}</p>
     </div>
-    <soundSetCore ref='soundSetCore' />
+    <soundSetCore ref="soundSetCore" @chiosetab="chiosetab" @getNumber='getNumber'/>
     <div class="btnWrap">
-      <div class="PrevBtn"
-           @click="goback">上一步</div>
+      <div class="PrevBtn" @click="goback">上一步</div>
       <!--  v-if="teamStatus != 'teamAudit'" -->
-      <div class="submitBtn"
-           v-permission="{child: 'musicGroup/createGroup', parent: '/teamBuild/soundMoney'}"
-           @click="submitInfo()">下一步</div>
+      <div
+        class="submitBtn"
+        v-permission="{
+          child: 'musicGroup/createGroup',
+          parent: '/teamBuild/soundMoney',
+        }"
+        @click="submitInfo()"
+      >
+        下一步
+      </div>
     </div>
-
   </div>
 </template>
 <script>
 import store from "@/store";
-import { formatData } from '@/utils/utils'
+import { formatData } from "@/utils/utils";
 import {
   getSubject,
   getDefaultSubject,
@@ -29,53 +34,47 @@ import {
   updateSubjectInfo,
   auditSuccess,
   auditFailed,
-  getSubjectGoods
+  getSubjectGoods,
 } from "@/api/buildTeam";
-import dayjs from 'dayjs'
-
+import dayjs from "dayjs";
 
-
-import soundSetCore from './soundSetComponents/soundSetCore'
+import soundSetCore from "./soundSetComponents/soundSetCore";
 
 export default {
   components: { soundSetCore },
-  data () {
+  data() {
     return {
       topfor: null, // 第一页的数据
       Fsearch: null,
       Frules: null,
-      activeSoundList: []
-    }
-  },
-  mounted () {
-
+      activeSoundList: [],
+      chioseSoundNum:0,
+      PlannedCount:0
+    };
   },
-  activated () { },
+  mounted() {},
+  activated() {},
   methods: {
-    goback () {
+    goback() {
       this.$emit("chiosetab", 0);
     },
-    submitInfo () {
-      this.$refs.soundSetCore.submitInfo()
-    }
+    submitInfo() {
+      this.$refs.soundSetCore.submitInfo();
+    },
+    chiosetab(val) {
+      this.$emit("chiosetab", val);
+    },
+      getNumber(chioseSoundNum,PlannedCount){
+    this.chioseSoundNum = chioseSoundNum
+    this.PlannedCount = PlannedCount
+  },
   },
 
-  computed: {
-    PlannedCount () {
-      let Count = 0;
-      if (this.activeSoundList.length > 0) {
-        for (let item in this.activeSoundList) {
-          Count += parseInt(this.activeSoundList[item]?.expectedStudentNum) || 0;
-        }
-      }
-
-      return Count;
-    }, chioseSoundNum () {
 
-      return this.activeSoundList.length;
-    },
-  }
-}
+  computed: {
+   
+  },
+};
 </script>
 <style lang="scss" scoped>
 .topMsg {

+ 92 - 72
src/views/teamBuild/index.vue

@@ -1,128 +1,138 @@
 <template>
-  <div class='m-container'>
+  <div class="m-container">
     <div class="line"></div>
     <h2>
-      <el-page-header @back="goBack"
-                      :content="pageName">
-      </el-page-header>
+      <el-page-header @back="goBack" :content="pageName"> </el-page-header>
     </h2>
     <div class="m-core">
       <div class="stepbox">
-        <span class='stepspan  stepspan1'
-              @click="activeIndex=0">
-          <div class="step1 sptep"
-               :class="activeIndex >= 0?'activestep':''">
+        <span class="stepspan stepspan1" @click="activeIndex = 0">
+          <div
+            class="step1 sptep"
+            :class="activeIndex >= 0 ? 'activestep' : ''"
+          >
             基本信息
           </div>
-          <img :src="activeIndex >= 0?stepImgs.nol:stepImgs.active"
-               alt=""
-               class="arrow">
+          <img
+            :src="activeIndex  >=  0 ? stepImgs.nol : stepImgs.active"
+            alt=""
+            class="arrow"
+          />
         </span>
-        <span class='stepspan  stepspan2'
-              v-if="activeIndex==1"
-              @click="activeIndex=1">
+        <span
+          class="stepspan stepspan2"
+          v-if="activeIndex  >= 1"
+          @click="activeIndex = 1"
+        >
           <!--    -->
-          <div class="step2 sptep"
-               :class="activeIndex == 1?'activestep':''">
+          <div
+            class="step2 sptep"
+            :class="activeIndex  >= 1 ? 'activestep' : ''"
+          >
             声部费用
           </div>
-          <img :src="activeIndex == 1?stepImgs.nol:stepImgs.active"
-               alt=""
-               class="
-               arrow">
+          <img
+            :src="activeIndex >=  1 ? stepImgs.nol : stepImgs.active"
+            alt=""
+            class="arrow"
+          />
         </span>
-        <span class='stepspan  stepspan2'
-              v-if="activeIndex==2"
-              @click="activeIndex==2">
-          <div class="step2 sptep"
-               :class="activeIndex == 2?'activestep':''">
-            声部费用
+        <span
+          class="stepspan stepspan3"
+          v-if="activeIndex  >=  2"
+          @click="activeIndex = 2"
+        >
+          <div
+            class="step2 sptep"
+            :class="activeIndex  >=  2 ? 'activestep' : ''"
+          >
+            创建缴费
           </div>
-          <img :src="activeIndex == 2?stepImgs.nol:stepImgs.active"
-               alt=""
-               class="
-               arrow">
+          <img
+            :src="activeIndex <= 2 ? stepImgs.nol : stepImgs.active"
+            alt=""
+            class="arrow"
+          />
         </span>
-
       </div>
 
       <!-- 下面显示的内容 -->
       <div class="stepcontent">
-        <div v-show='activeIndex==0'>
-          <teamBaseInfo @chiosetab='chiosetab'
-                        :getTeamList='getTeamList' />
+        <div v-show="activeIndex == 0">
+          <teamBaseInfo @chiosetab="chiosetab" :getTeamList="getTeamList" />
         </div>
-        <div v-if='activeIndex==1'>
-          <teamSoundMoney @chiosetab='chiosetab'
-                          :getTeamList='getTeamList' />
+        <div v-if="activeIndex == 1">
+          <teamSoundMoney @chiosetab="chiosetab" :getTeamList="getTeamList" />
         </div>
-        <div v-if='activeIndex==2'>
-          <teamResetSound @chiosetab='chiosetab'
-                          :getTeamList='getTeamList' />
+        <div v-if="activeIndex == 2">
+          <teamPayInfo @chiosetab="chiosetab" :getTeamList="getTeamList" />
         </div>
       </div>
     </div>
   </div>
 </template>
 <script>
-import teamBaseInfo from '@/views/teamBuild/components/teamBaseInfo'
-import teamSoundMoney from '@/views/teamBuild/components/teamSoundSet'
-import teamResetSound from '@/views/teamBuild/components/teamResetSound'
+import teamBaseInfo from "@/views/teamBuild/components/teamBaseInfo";
+import teamSoundMoney from "@/views/teamBuild/components/teamSoundSet";
+import teamPayInfo from "@/views/teamBuild/components/teamPayInfo";
 export default {
-  components: { teamBaseInfo, teamSoundMoney, teamResetSound },
-  name: 'teamBuild',
-  data () {
+  components: { teamBaseInfo, teamSoundMoney, teamPayInfo },
+  name: "teamBuild",
+  data() {
     return {
       activeIndex: 0,
       stepImgs: {
-        nol: require('@/assets/images/base/step-arrow-active.png'),
-        active: require('@/assets/images/base/step-arrow.png')
+        nol: require("@/assets/images/base/step-arrow-active.png"),
+        active: require("@/assets/images/base/step-arrow.png"),
       },
-      pageName: '建团申请',
+      pageName: "建团申请",
       getTeamList: [],
-      teamStatus: '',
+      teamStatus: "",
       Fsearch: null,
-      Frules: null
-    }
+      Frules: null,
+    };
   },
-  created () {
-    // 判断 是新建乐团还是修改乐团 
-    this.activeIndex = 0
-    this.init()
+  created() {
+    // 判断 是新建乐团还是修改乐团
+    this.activeIndex = 0;
+    this.init();
   },
-  activated () {
-
-    this.init()
+  activated() {
+    this.init();
   },
   methods: {
-    init () {
+    init() {
       this.teamStatus = this.$route.query.type;
       if (this.$route.query.teamList) {
-        this.getTeamList = this.$route.query.teamList
+        this.getTeamList = this.$route.query.teamList;
       }
       // 判断是否带缓存参数
       if (this.$route.query.search) {
         this.Fsearch = this.$route.query.search;
       }
       if (this.$route.query.rules) {
-        this.Frules = this.$route.query.rules
+        this.Frules = this.$route.query.rules;
       }
 
-      if (this.teamStatus == 'newTeam') {
+      if (this.teamStatus == "newTeam") {
         // 新建团
-        this.pageName = '建团申请'
+        this.pageName = "建团申请";
       } else {
-        this.pageName = '乐团修改'
+        this.pageName = "乐团修改";
       }
     },
-    chiosetab (val) {
+    chiosetab(val) {
+      console.log(val);
       this.activeIndex = val;
     },
-    goBack () {
-      this.$router.push({ path: '/business/teamDetail', query: { search: this.Fsearch, rules: this.Frules } })
-    }
+    goBack() {
+      this.$router.push({
+        path: "/business/teamDetail",
+        query: { search: this.Fsearch, rules: this.Frules },
+      });
+    },
   },
-}
+};
 </script>
 <style lang="scss" scoped>
 .stepbox {
@@ -154,13 +164,23 @@ export default {
       width: 17px;
       position: relative;
       top: 1px;
+      z-index: 40;
     }
   }
   .stepspan.stepspan2 {
     position: relative;
-    z-index: 10;
+    z-index: 20;
     left: -17px;
-    padding-right: 33px;
+    .sptep {
+      padding-left: 30px !important;
+      border-radius: 0 !important;
+    }
+  }
+  .stepspan.stepspan3 {
+    position: relative;
+    z-index: 10;
+    left: -34px;
+    background-color: #fff;
     .sptep {
       padding-left: 30px !important;
       border-radius: 0 !important;