Browse Source

提交一下

1
mo 3 years ago
parent
commit
08563e20f6

+ 8 - 1
src/api/specialSetting.js

@@ -284,7 +284,7 @@ export function getOrganizationCourseUnitPriceSettings (data) {
 // 新增课程费用
 export function addOrganizationCourseUnitPrice (data) {
   return request2({
-    url: api + `/organizationCourseUnitPriceSettings/insert`,
+    url: api + `/organizationCourseUnitPriceSettings/save`,
     method: 'post',
     data
   })
@@ -372,3 +372,10 @@ export function organizationCloudTeacherFeeUpdate(data) {
     data:data,
   })
 }
+
+export function querySingle(data,data1) {
+  return request2({
+    url: api + `/organizationCourseUnitPriceSettings/querySingle/${data}/${data1}`,
+    method: 'get',
+  })
+}

+ 2 - 2
src/constant/guide.js

@@ -14,7 +14,7 @@ export const guideList = {
   teamPayType: {
     name: '乐团类型',
     desc: '乐团类型用于区分乐团运营模式,不同类型的乐团可设置不同的课程定价',
-    path: '/baseRulesClassSetting?tabrouter=3',
+    path: '/baseRulesClassSetting?tabrouter=6',
     permission: '/globalConfig/chargesList'
   },
   cooperationOrgan: {
@@ -38,7 +38,7 @@ export const guideList = {
   teamCourseType: {
     name: '乐团收费标准',
     desc: '支持创建标准的乐团训练课程组合,创建后乐团中可直接选择该课程标准对学员进行销售',
-    path: '/baseRulesClassSetting?tabrouter=6',
+    path: '/baseRulesClassSetting?tabrouter=3',
     permission: '/globalConfig/chargesList'
   },
   memberList: {

+ 1 - 1
src/views/categroyManager/modals/payInfo.vue

@@ -346,7 +346,7 @@
               @visible-change="$forceUpdate()"
               clearable
               @change="chageSalary"
-              :disabled="isDisabled || unOnlinePay"
+              :disabled="isDisabled"
             >
               <el-option
                 v-for="item in selects.vipGroupCategory"

+ 271 - 169
src/views/categroyManager/specialSetup/musicCourseFee.vue

@@ -2,230 +2,271 @@
   <div class="m-container">
     <!-- <h2>折扣设置</h2> -->
     <div>
-      <save-form :inline="true"
-               @submit="search"
-               @reset="onReSet"
-               ref="searchForm"
-               :saveKey="'musicCourseFee'"
-
-               :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="search"
+        @reset="onReSet"
+        ref="searchForm"
+        :saveKey="'musicCourseFee'"
+        :model="searchForm"
+      >
         <el-form-item prop="organId">
-          <el-select placeholder="请选择分部"
-                     v-model="searchForm.organId"
-                     filterable
-                     clearable>
-            <el-option v-for="(item, index) in selects.branchs"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+          <el-select
+            placeholder="请选择分部"
+            v-model="searchForm.organId"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="courseScheduleType">
-          <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" native-type="submit">搜索</el-button>
-          <el-button native-type="reset"
-                     type="primary">重置</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
         </el-form-item>
       </save-form>
-      <el-button  style="margin-bottom: 20px;" type="primary" v-permission="'organizationCourseUnitPriceSettings/insert'" @click="newVisiable = true" icon="el-icon-plus">添加</el-button>
+      <el-button
+        style="margin-bottom: 20px"
+        type="primary"
+        v-permission="'organizationCourseUnitPriceSettings/save'"
+        @click="newVisiable = true"
+        icon="el-icon-plus"
+        >添加</el-button
+      >
 
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data="tableList"
-                  :header-cell-style="{ background: '#EDEEF0', color: '#444' }" >
-          <el-table-column align="center"
-                           prop="organName"
-                           label="分部名称">
+        <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="课程类型">
+          <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="chargeName"
-                           label="乐团类型">
+          <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="goodsDiscountRate"
-                           label="每分钟费用">
-            <template slot-scope="scope">{{
-              scope.row.unitPrice
-            }}</template>
+          <el-table-column
+            align="center"
+            prop="goodsDiscountRate"
+            label="每分钟费用"
+          >
+            <template slot-scope="scope">{{ scope.row.unitPrice }}</template>
           </el-table-column>
-          <el-table-column align="center"
-                           prop="courseType"
-                           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(scope.row)"
-                         v-permission="'organizationCourseUnitPriceSettings/update'"
-                         type="text">修改</el-button>
+              <el-button
+                @click="openTypes(scope.row)"
+                v-permission="'organizationCourseUnitPriceSettings/update'"
+                type="text"
+                >修改</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
         <pagination
-         :saveKey="'musicCourseFee'"
-         sync
-        :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+          :saveKey="'musicCourseFee'"
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog title="新建"
-               destroy-on-close
-               :visible.sync="newVisiable"
-               width="600px">
-      <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"
-                     filterable
-                     clearable>
-            <el-option v-for="(item, index) in selects.branchs"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+    <el-dialog
+      title="新建"
+      destroy-on-close
+      :visible.sync="newVisiable"
+      width="600px"
+    >
+      <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"
+            @change="changeOrgan"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="课程类型"
-                      :rules="[
+        <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">
+          prop="courseType"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            v-model.trim="createForm.courseType"
+            filterable
+            placeholder="请选择课程类型"
+            @change="changeCourseScheduleType"
+            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"
-                        :rules="[
+        <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"
-                      min="0"
-                      step="0.00000001"
-                      v-model="createForm.unitPriceJson[item.id]">
+            :prop="`unitPriceJson.${item.id}.price`"
+          >
+            <el-input
+              type="number"
+              min="0"
+              step="0.00000001"
+              v-model="createForm.unitPriceJson[item.id].price"
+            >
               <template slot="append">每分钟费用(元)</template>
             </el-input>
           </el-form-item>
         </div>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button  @click="newVisiable = false">取 消</el-button>
-        <el-button  type="primary"
-                   @click="submitInfo">确 定</el-button>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="newVisiable = false">取 消</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 selects.branchs"
-                       :label="item.name"
-                       :value="item.id"
-                       :key="index"></el-option>
+    <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 selects.branchs"
+              :label="item.name"
+              :value="item.id"
+              :key="index"
+            ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="课程类型"
-                      :rules="[
+        <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">
+          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="[
+        <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"
-                    min="0"
-                    step="0.00000001"
-                    v-model="resetForm.unitPrice">
+          prop="unitPrice"
+        >
+          <el-input
+            type="number"
+            min="0"
+            step="0.00000001"
+            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>
+        <el-button @click="resetVisible = false">取 消</el-button>
+        <el-button type="primary" @click="resetSubmit">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -239,13 +280,14 @@ import {
   addOrganizationCourseUnitPrice,
   resetOrganizationCourseUnitPrice,
   deleteOrganizationCourseUnitPrice,
+  querySingle,
 } from "@/api/specialSetting";
 import createDiscount from "./modals/create-discount";
 import { musicCourseType } from "@/utils/searchArray";
 export default {
   name: "typesManager",
   components: { pagination, createDiscount },
-  data () {
+  data() {
     return {
       musicCourseType,
       newVisiable: false,
@@ -279,7 +321,7 @@ export default {
       actvieRow: null,
     };
   },
-  mounted () {
+  mounted() {
     chargeTypeList({
       rows: 99999,
       page: 1,
@@ -287,29 +329,29 @@ export default {
       if (res.code == 200) {
         this.dataList = res.data.rows;
         this.dataList.forEach((item) => {
-          this.$set(this.createForm.unitPriceJson, item.id, null);
+          this.$set(this.createForm.unitPriceJson, item.id, {price:null,id:null});
         });
-        if(this.dataList.length <=0){
-          this.$bus.$emit("showguide", ['teamPayType']);
-          return
+        if (this.dataList.length <= 0) {
+          this.$bus.$emit("showguide", ["teamPayType"]);
+          return;
         }
       }
     });
     // 获取分部
-    this.$store.dispatch('setBranchs')
+    this.$store.dispatch("setBranchs");
     this.getList();
   },
   methods: {
-    search () {
+    search() {
       this.pageInfo.page = 1;
       this.getList();
     },
-    onReSet () {
-      this.$refs.searchForm.resetFields()
+    onReSet() {
+      this.$refs.searchForm.resetFields();
       this.search();
     },
 
-    async onTypesDel (row) {
+    async onTypesDel(row) {
       try {
         await this.$confirm("是否删除此条数据?", "提示", {
           confirmButtonText: "确定",
@@ -319,10 +361,10 @@ export default {
         delChargeTypeSubjectMapper({ id: row.id }).then((res) => {
           this.messageTips("删除", res);
         });
-      } catch (error) { }
+      } catch (error) {}
     },
 
-    getList () {
+    getList() {
       getOrganizationCourseUnitPriceSettings({
         rows: this.pageInfo.limit,
         page: this.pageInfo.page,
@@ -335,17 +377,20 @@ export default {
         // }
       });
     },
-    submitInfo () {
+    submitInfo() {
+      console.log(this.createForm);
       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];
+            const item = this.createForm.unitPriceJson[key].price;
+            const id = this.createForm.unitPriceJson[key].id
             data.push({
               chargeTypeId: key,
               courseType: this.createForm.courseType,
               organId: this.createForm.organId,
               unitPrice: item,
+              id
             });
           }
         }
@@ -361,13 +406,13 @@ export default {
               unitPriceJson: {},
             };
             this.dataList.forEach((item) => {
-              this.$set(this.createForm.unitPriceJson, item.id, null);
+              this.$set(this.createForm.unitPriceJson, item.id, {price:null,id:null});
             });
-          } catch (error) { }
+          } catch (error) {}
         }
       });
     },
-    openTypes (row) {
+    openTypes(row) {
       this.actvieRow = row;
       this.resetForm = {
         chargeTypeId: row.chargeTypeId,
@@ -378,7 +423,7 @@ export default {
       };
       this.resetVisible = true;
     },
-    resetSubmit () {
+    resetSubmit() {
       // resetOrganizationCourseUnitPrice
       this.$refs.resetForm.validate(async (valid) => {
         if (valid) {
@@ -393,10 +438,67 @@ export default {
               id: null,
               organId: null,
             };
-          } catch (error) { }
+          } catch (error) {}
         }
       });
     },
+    changeCourseScheduleType(val) {
+      if (val) {
+        this.$refs.ruleForm.validateField("organId", async (flag) => {
+          if (!flag) {
+            try {
+              const res = await querySingle(this.createForm.organId, val);
+             console.log(this.createForm.unitPriceJson)
+
+              // data.
+              res.forEach((item) => {
+                if (
+                  this.createForm.unitPriceJson.hasOwnProperty(
+                    item.chargeTypeId
+                  )
+                ) {
+                  this.$set(
+                    this.createForm.unitPriceJson,
+                    item.chargeTypeId,
+                    {price:item.unitPrice,id:item.id}
+                  );
+                }
+              });
+            } catch (e) {
+              console.log(e);
+            }
+          }
+        });
+      }
+    },
+    changeOrgan(val) {
+      if (val) {
+        this.$refs.ruleForm.validateField("courseType", async (flag) => {
+          if (!flag) {
+            try {
+              const res = querySingle(val, this.createForm.courseType);
+              res.data.forEach((item) => {
+                if (
+                  this.createForm.unitPriceJson.hasOwnProperty(
+                    item.chargeTypeId
+                  )
+                ) {
+                  console.log(item.chargeTypeId)
+                  this.$set(
+                    this.createForm,
+                    unitPriceJson[item.chargeTypeId],
+                    item.unitPrice
+                  );
+                }
+              });
+
+            } catch (e) {
+              console.log(e);
+            }
+          }
+        });
+      }
+    },
   },
 };
 </script>

+ 4 - 4
src/views/courseRulersManager/components/onlineCloudRules.vue

@@ -4,7 +4,7 @@
       <el-form :inline="true" :model="form" ref="form">
         <el-alert
           style="margin: 10px 0"
-          title="云教室考勤规则"
+          title="线上课考勤规则"
           :closable="false"
           type="info"
         >
@@ -307,13 +307,13 @@
 
         <el-alert
           style="margin: 10px 0"
-          title="云教室连堂课"
+          title="线上课连堂课"
           :closable="false"
           type="info"
         >
         </el-alert>
         <p class="subtitle">
-          云教室连堂课:
+          线上课连堂课:
           <el-tooltip placement="top" popper-class="mTooltip">
             <div slot="content">
               <div style="color: #fff">
@@ -340,7 +340,7 @@
               },
             ]"
           >
-            云教室课程间隔<el-input
+            线上课课程间隔<el-input
               v-model="form['50']"
               placeholder="请输入时间"
               :disabled="isPlatform?false:true"

+ 1 - 1
src/views/courseRulersManager/index.vue

@@ -35,7 +35,7 @@
         </el-tab-pane>
 
         <el-tab-pane
-          label="云教室考勤规则"
+          label="线上课考勤规则"
           lazy
           name="3"
            v-if="permission('/institutionOnlineCloudRules')"

+ 1 - 1
src/views/platformManager/platformCourseDeault/index.vue

@@ -25,7 +25,7 @@
         </el-tab-pane>
 
         <el-tab-pane
-          label="云教室考勤规则"
+          label="线上课考勤规则"
           lazy
           name="3"
           v-if="permission('/platformOnlineCloudRules')"

+ 2 - 0
src/views/teamDetail/components/modals/select-student.vue

@@ -285,6 +285,8 @@ export default {
   width: 220px;
   display: flex;
   justify-content: space-around;
+  height: 30px;
+  line-height: 30px;
   .select-item{
     width: 33.33333%;
     white-space: nowrap;