wolyshaw 4 роки тому
батько
коміт
abf2b9e8d1

+ 0 - 1
src/views/categroyManager/specialSetup/modals/chargesForm.vue

@@ -87,7 +87,6 @@
               :prop="`details.${index}.courseTotalMinuties`"
               :rules="[
                 { required: true, message: '请输入课程时长', trigger: 'blur' },
-                { validator: validatorCourseTotalMinuties(index, item), trigger: 'blur' }
               ]">
               <el-input-number size="mini"
                                style="width: 90%!important;"

+ 1 - 1
src/views/resetTeaming/api.js

@@ -55,7 +55,7 @@ export const makesureSchoolePaid = data => request2({
 })
 
 export const queryByOrganIdAndCourseType = data => request2({
-  url: '/api-web/organizationCourseDurationSettings/queryByOrganIdAndCourseType',
+  url: '/api-web/organizationCourseDurationSettings/queryByOrganId',
   data: {},
   params: data,
   method: 'get',

+ 0 - 13
src/views/resetTeaming/modals/extra-class.vue

@@ -76,7 +76,6 @@
             :prop="'form.' + scope.$index + '.courseTotalMinuties'"
             :rules="[
               { required: true, message: '请输入课程时长', trigger: 'blur' },
-              { validator: validatorCourseTotalMinuties(scope.$index), trigger: 'blur' }
             ]"
           >
             <el-input-number
@@ -174,7 +173,6 @@ import { objectToOptions } from '@/utils'
 import { classTimeList, array2object } from '@/utils/searchArray'
 import numeral from 'numeral'
 import MusicStore from '@/views/resetTeaming/store'
-import { queryByOrganIdAndCourseType } from '../api'
 export default {
   props: ['form', 'isCommon', 'isDisabled', 'isUserType', 'courseUnitPriceSettingsByType', 'clearable'],
   data() {
@@ -186,7 +184,6 @@ export default {
   },
   computed: {
     list() {
-      console.log(this.prices)
       return {
         form: this.form
       }
@@ -194,16 +191,6 @@ export default {
     classTimeList() {
       return array2object(classTimeList)
     },
-    async prices() {
-      let list = []
-      try {
-        const res = await queryByOrganIdAndCourseType({
-          organId: MusicStore.state.musicGroup.organId
-        })
-        list = res.data
-      } catch (error) {}
-      return list
-    }
   },
   methods: {
     change(val) {

+ 29 - 10
src/views/teamDetail/components/modals/classroom-setting-item.vue

@@ -66,7 +66,20 @@
           <el-form-item
             :prop="'classs.' + type + '.cycle.' + scope.$index + '.time'"
             inline-message>
-            <el-input disabled v-model="scope.row.time" placeholder="请输入课程时长"/>
+            <el-select v-model.trim="scope.row.time"
+              style="width:100%!important"
+              placeholder="请选择课程时长"
+              clearable
+              :disabled="!!selectPrice"
+              @change="startTimeChange(scope.row)"
+              filterable>
+              <el-option v-for="(item,index) in pricesArray"
+                :key="index"
+                :label="item"
+                :value="item">
+              </el-option>
+            </el-select>
+            <!-- <el-input disabled v-model="scope.row.time" placeholder="请输入课程时长"/> -->
           </el-form-item>
         </template>
       </el-table-column>
@@ -84,7 +97,7 @@
               format='HH:mm'
               value-format='HH:mm'
               placeholder="请选择时间"
-              @change="val => startTimeChange(val, scope.row)"
+              @change="startTimeChange(scope.row)"
               :picker-options="{
                 selectableRange: ['04:30:00 - 23:59:59']
               }">
@@ -127,7 +140,7 @@
       type="info"
       size="small"
       plain
-      :disabled="surplustime < classTimeListByType[type]"
+      :disabled="surplustime < (selectPrice || 0) || Math.min(...pricesArray)"
       @click="create"
       style="margin-top: 10px;width: 100%;"
     >添加循环</el-button>
@@ -144,7 +157,7 @@ for (const item of classTimeList) {
 }
 
 export default {
-  props: ['form', 'type', 'surplustime'],
+  props: ['form', 'type', 'surplustime', 'prices', 'selectPrice'],
   data() {
     return {
       classTimeListByType,
@@ -169,21 +182,27 @@ export default {
         { value: "6", label: "星期六" },
         { value: "7", label: "星期日" }
       ]
+    },
+    pricesArray() {
+      console.log(this.prices, this.type)
+      return (this.prices[this.type] || '').split(',') || []
     }
   },
   methods: {
     create() {
-      this.form.cycle.push({
-        time: classTimeListByType[this.type]
-      })
+      const initVal = {}
+      if (this.selectPrice) {
+        initVal.time = this.selectPrice
+      }
+      this.form.cycle.push(initVal)
     },
     remove(index) {
       this.form.cycle.splice(index, 1)
     },
-    startTimeChange(val, item) {
-      if (val) {
+    startTimeChange(item) {
+      if (item.time && item.startClassTime) {
         let str = dayjs(new Date()).format('YYYY-MM-DD')
-        this.$set(item, 'endClassTime', addTimerFormMinute(str, val, item.time))
+        this.$set(item, 'endClassTime', addTimerFormMinute(str, item.startClassTime, item.time))
       } else {
         this.$set(item, 'endClassTime', '')
       }

+ 22 - 6
src/views/teamDetail/components/modals/classroom-setting.vue

@@ -82,6 +82,8 @@
             :surplustime="surplustime[key]"
             :type="key"
             :form="item"
+            :prices="prices"
+            :selectPrice="selectPrices ? selectPrices[key] : ''"
           />
         </el-collapse-item>
       </el-collapse>
@@ -105,6 +107,8 @@ import {
 } from "@/api/buildTeam";
 import courseItem from "./classroom-setting-item";
 import { classTimeList } from "@/utils/searchArray";
+import MusicStore from '@/views/resetTeaming/store'
+import { queryByOrganIdAndCourseType } from '@/views/resetTeaming/api'
 import { isEmpty } from "lodash";
 
 const classTimeListByType = {};
@@ -137,7 +141,7 @@ export default {
   props: [
     "teacherList",
     "activeType",
-    "courseTypeList", 
+    "courseTypeList",
     "cooperationList",
     "musicGroupId",
     "detail",
@@ -145,7 +149,8 @@ export default {
     "classType",
     "musicGroupPaymentCalenderDtos",
     "classIdList",
-    "classGroupStudents"
+    "classGroupStudents",
+    "selectPrices"
   ],
   components: {
     courseItem,
@@ -157,6 +162,7 @@ export default {
         assistant: "",
         classs: {},
       },
+      prices: {},
       collapses: [0],
       courseTimes: {},
       courseTypeListByName: {},
@@ -164,7 +170,6 @@ export default {
       musicCourseSettings: {},
     };
   },
-
   watch: {
     courseTypeList() {
       this.setCourseTypeListByName();
@@ -190,8 +195,20 @@ export default {
     isEmpty() {
       return isEmpty(this.form.classs);
     },
+    musicGroup() {
+      return MusicStore.state.musicGroup
+    },
   },
   async mounted() {
+    try {
+      await MusicStore.dispatch('getBaseInfo', {
+        data: { musicGroupId: this.musicGroupId }
+      })
+      const res = await queryByOrganIdAndCourseType({
+        organId: this.musicGroup.organId
+      })
+      this.prices = res.data
+    } catch (error) {}
     this.setCourseTypeListByName();
     this.formatClasss();
     // console.log("activeType", this.activeType);
@@ -249,21 +266,20 @@ export default {
         this.musicCourseSettings = res.data;
 
         const classs = {};
-          console.log(this.courseTypeList)
         for (const item of this.courseTypeList) {
           const key = item.value;
           if (res.data[key]) {
+            console.log(this.selectPrices)
             classs[key] = {
               courseTotalMinuties: res.data[key],
               cycle: [
                 {
-                  time: classTimeListByType[key],
+                  time: (this.selectPrices ? this.selectPrices[key] : undefined),
                 },
               ],
             };
           }
         }
-        console.log(classs)
         this.$set(this.form, "classs", classs);
         // this.courseTimes = courseTimes
       } catch (error) {