|  | @@ -10,212 +10,238 @@
 | 
	
		
			
				|  |  |          <el-radio :label="false">否</el-radio>
 | 
	
		
			
				|  |  |        </el-radio-group>
 | 
	
		
			
				|  |  |      </el-form-item> -->
 | 
	
		
			
				|  |  | -    <el-table v-if="form && form.cycle" :data="form.cycle">
 | 
	
		
			
				|  |  | -      <el-table-column prop="time" label="课程时长(分)" width="160">
 | 
	
		
			
				|  |  | +    <el-table v-if="form && form.cycle" :data="form.cycle" :show-header="false">
 | 
	
		
			
				|  |  | +      <el-table-column>
 | 
	
		
			
				|  |  |          <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            :prop="'classs.' + type + '.cycle.' + scope.$index + '.time'"
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择课程时长' }]"
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-select
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.time"
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              placeholder="请选择课程时长"
 | 
	
		
			
				|  |  | -              clearable
 | 
	
		
			
				|  |  | -              :disabled="!!selectPrice"
 | 
	
		
			
				|  |  | -              @change="
 | 
	
		
			
				|  |  | -                (val) => {
 | 
	
		
			
				|  |  | -                  startTimeChange(scope, val);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +          <div>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.coreTeacher'"
 | 
	
		
			
				|  |  | +              label-width="88px"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择主教老师' }]"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              <el-select
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.coreTeacher"
 | 
	
		
			
				|  |  | +                placeholder="请选择主教老师"
 | 
	
		
			
				|  |  | +                clearable
 | 
	
		
			
				|  |  | +                filterable
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +              <!--     @change="changecoreTeacher" -->
 | 
	
		
			
				|  |  | +                <el-option
 | 
	
		
			
				|  |  | +                  v-for="(item, index) in teacherList"
 | 
	
		
			
				|  |  | +                  :key="index"
 | 
	
		
			
				|  |  | +                  :label="item.realName"
 | 
	
		
			
				|  |  | +                  :value="String(item.id)"
 | 
	
		
			
				|  |  | +                ></el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +              <!-- <remote-search :commit="'setTeachers'" v-model="form.coreTeacher"  /> -->
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              prop="assistant"
 | 
	
		
			
				|  |  | +              v-if="
 | 
	
		
			
				|  |  | +                activeType != 'HIGH' &&
 | 
	
		
			
				|  |  | +                activeType != 'HIGH_ONLINE' &&
 | 
	
		
			
				|  |  | +                activeType != 'MUSIC_NETWORK'
 | 
	
		
			
				|  |  |                "
 | 
	
		
			
				|  |  | -              filterable
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -              <el-option
 | 
	
		
			
				|  |  | -                v-for="(item, index) in pricesArray"
 | 
	
		
			
				|  |  | -                :key="index"
 | 
	
		
			
				|  |  | -                :disabled="
 | 
	
		
			
				|  |  | -                  surplustime + (parseFloat(scope.row.time) || 0) < item
 | 
	
		
			
				|  |  | +              <!-- <remote-search :commit="'setTeachers'" v-model="form.assistant"  :multiple='true'/> -->
 | 
	
		
			
				|  |  | +              <el-select
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.assistant"
 | 
	
		
			
				|  |  | +                placeholder="请选择助教老师"
 | 
	
		
			
				|  |  | +                filterable
 | 
	
		
			
				|  |  | +                clearable
 | 
	
		
			
				|  |  | +                multiple
 | 
	
		
			
				|  |  | +                collapse-tags
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                <el-option
 | 
	
		
			
				|  |  | +                  v-for="(item, index) in cooperationList"
 | 
	
		
			
				|  |  | +                  :key="index"
 | 
	
		
			
				|  |  | +                  :label="item.realName"
 | 
	
		
			
				|  |  | +                  :value="item.id"
 | 
	
		
			
				|  |  | +                ></el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.time'"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择课程时长' }]"
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              <el-select
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.time"
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                placeholder="请选择课程时长"
 | 
	
		
			
				|  |  | +                clearable
 | 
	
		
			
				|  |  | +                :disabled="!!selectPrice"
 | 
	
		
			
				|  |  | +                @change="
 | 
	
		
			
				|  |  | +                  (val) => {
 | 
	
		
			
				|  |  | +                    startTimeChange(scope, val);
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  |                  "
 | 
	
		
			
				|  |  | -                :label="item"
 | 
	
		
			
				|  |  | -                :value="item"
 | 
	
		
			
				|  |  | +                filterable
 | 
	
		
			
				|  |  |                >
 | 
	
		
			
				|  |  | -              </el-option>
 | 
	
		
			
				|  |  | -            </el-select>
 | 
	
		
			
				|  |  | -            <!-- <el-input disabled v-model="scope.row.time" placeholder="请输入课程时长"/> -->
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column label="预计课时数" width="160">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <!--   -->
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            :prop="
 | 
	
		
			
				|  |  | -              'classs.' + type + '.cycle.' + scope.$index + '.expectCourseNum'
 | 
	
		
			
				|  |  | -            "
 | 
	
		
			
				|  |  | -            :rules="[
 | 
	
		
			
				|  |  | -              { required: true, message: '请输入预计课时数' },
 | 
	
		
			
				|  |  | -              { pattern: /^\+?[1-9]\d*$/, message: '请输入大于0的正整数' },
 | 
	
		
			
				|  |  | -            ]"
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-input
 | 
	
		
			
				|  |  | -              type="number"
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.expectCourseNum"
 | 
	
		
			
				|  |  | -              placeholder="请输入预计课数"
 | 
	
		
			
				|  |  | -              style="width: 130px !important"
 | 
	
		
			
				|  |  | -              @input="(val)=>{getUseTime(scope.row)}"
 | 
	
		
			
				|  |  | +                <el-option
 | 
	
		
			
				|  |  | +                  v-for="(item, index) in pricesArray"
 | 
	
		
			
				|  |  | +                  :key="index"
 | 
	
		
			
				|  |  | +                  :disabled="
 | 
	
		
			
				|  |  | +                    surplustime + (parseFloat(scope.row.time) || 0) < item
 | 
	
		
			
				|  |  | +                  "
 | 
	
		
			
				|  |  | +                  :label="item"
 | 
	
		
			
				|  |  | +                  :value="item"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                </el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +              <!-- <el-input disabled v-model="scope.row.time" placeholder="请输入课程时长"/> -->
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="
 | 
	
		
			
				|  |  | +                'classs.' + type + '.cycle.' + scope.$index + '.expectCourseNum'
 | 
	
		
			
				|  |  | +              "
 | 
	
		
			
				|  |  | +              :rules="[
 | 
	
		
			
				|  |  | +                { required: true, message: '请输入预计课时数' },
 | 
	
		
			
				|  |  | +                { pattern: /^\+?[1-9]\d*$/, message: '请输入大于0的正整数' },
 | 
	
		
			
				|  |  | +              ]"
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -            </el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column prop="dayOfWeek" label="循环周期" width="160">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择循环周期' }]"
 | 
	
		
			
				|  |  | -            :prop="'classs.' + type + '.cycle.' + scope.$index + '.dayOfWeek'"
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-select
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.dayOfWeek"
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              placeholder="请选择循环周期"
 | 
	
		
			
				|  |  | -              clearable
 | 
	
		
			
				|  |  | -              filterable
 | 
	
		
			
				|  |  | -              @change="(val)=>{getUseTime(scope.row)}"
 | 
	
		
			
				|  |  | +              <!--  style="width: 130px !important" -->
 | 
	
		
			
				|  |  | +              <el-input
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                type="number"
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.expectCourseNum"
 | 
	
		
			
				|  |  | +                placeholder="请输入预计课数"
 | 
	
		
			
				|  |  | +                @input="
 | 
	
		
			
				|  |  | +                  (val) => {
 | 
	
		
			
				|  |  | +                    getUseTime(scope.row);
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                "
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +              </el-input>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择循环周期' }]"
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.dayOfWeek'"
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -              <el-option
 | 
	
		
			
				|  |  | -                v-for="(item, index) in weekDateList"
 | 
	
		
			
				|  |  | -                :key="index"
 | 
	
		
			
				|  |  | -                :label="item.label"
 | 
	
		
			
				|  |  | -                :value="item.value"
 | 
	
		
			
				|  |  | +              <el-select
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.dayOfWeek"
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                placeholder="请选择循环周期"
 | 
	
		
			
				|  |  | +                clearable
 | 
	
		
			
				|  |  | +                filterable
 | 
	
		
			
				|  |  | +                @change="
 | 
	
		
			
				|  |  | +                  (val) => {
 | 
	
		
			
				|  |  | +                    getUseTime(scope.row);
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                "
 | 
	
		
			
				|  |  |                >
 | 
	
		
			
				|  |  | -              </el-option>
 | 
	
		
			
				|  |  | -            </el-select>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      <el-table-column prop="startClassTime" label="开始时间" width="160">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            :prop="
 | 
	
		
			
				|  |  | -              'classs.' + type + '.cycle.' + scope.$index + '.startClassTime'
 | 
	
		
			
				|  |  | -            "
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择开始时间' }]"
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-time-picker
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.startClassTime"
 | 
	
		
			
				|  |  | -              format="HH:mm"
 | 
	
		
			
				|  |  | -              value-format="HH:mm"
 | 
	
		
			
				|  |  | -              placeholder="请选择时间"
 | 
	
		
			
				|  |  | -              @change="timeChange(scope.row)"
 | 
	
		
			
				|  |  | -              :picker-options="{
 | 
	
		
			
				|  |  | -                selectableRange: ['04:30:00 - 23:59:59'],
 | 
	
		
			
				|  |  | -              }"
 | 
	
		
			
				|  |  | +                <el-option
 | 
	
		
			
				|  |  | +                  v-for="(item, index) in weekDateList"
 | 
	
		
			
				|  |  | +                  :key="index"
 | 
	
		
			
				|  |  | +                  :label="item.label"
 | 
	
		
			
				|  |  | +                  :value="item.value"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                </el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="
 | 
	
		
			
				|  |  | +                'classs.' + type + '.cycle.' + scope.$index + '.startClassTime'
 | 
	
		
			
				|  |  | +              "
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择开始时间' }]"
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -              <!--   @change="startTimeChange(scope.row)" -->
 | 
	
		
			
				|  |  | -            </el-time-picker>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column prop="endClassTime" label="结束时间" width="160">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            :prop="
 | 
	
		
			
				|  |  | -              'classs.' + type + '.cycle.' + scope.$index + '.endClassTime'
 | 
	
		
			
				|  |  | -            "
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-time-picker
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.endClassTime"
 | 
	
		
			
				|  |  | -              format="HH:mm"
 | 
	
		
			
				|  |  | -              disabled
 | 
	
		
			
				|  |  | -              value-format="HH:mm"
 | 
	
		
			
				|  |  | -              placeholder="请选择时间"
 | 
	
		
			
				|  |  | -              :picker-options="{
 | 
	
		
			
				|  |  | -                selectableRange: [scope.row.startClassTime + ':00 - 23:59:59'],
 | 
	
		
			
				|  |  | -              }"
 | 
	
		
			
				|  |  | +              <el-time-picker
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.startClassTime"
 | 
	
		
			
				|  |  | +                format="HH:mm"
 | 
	
		
			
				|  |  | +                value-format="HH:mm"
 | 
	
		
			
				|  |  | +                placeholder="请选择开始时间"
 | 
	
		
			
				|  |  | +                @change="timeChange(scope.row)"
 | 
	
		
			
				|  |  | +                :picker-options="{
 | 
	
		
			
				|  |  | +                  selectableRange: ['04:30:00 - 23:59:59'],
 | 
	
		
			
				|  |  | +                }"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                <!--   @change="startTimeChange(scope.row)" -->
 | 
	
		
			
				|  |  | +              </el-time-picker>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="
 | 
	
		
			
				|  |  | +                'classs.' + type + '.cycle.' + scope.$index + '.endClassTime'
 | 
	
		
			
				|  |  | +              "
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -            </el-time-picker>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column label="是否跳过节假日" width="160">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            :prop="'classs.' + type + '.cycle.' + scope.$index + '.holiday'"
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择是否跳过节假日' }]"
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-select
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.holiday"
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              placeholder="是否跳过节假日"
 | 
	
		
			
				|  |  | -              filterable
 | 
	
		
			
				|  |  | -              @change="holidayChange(scope.row)"
 | 
	
		
			
				|  |  | +              <el-time-picker
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.endClassTime"
 | 
	
		
			
				|  |  | +                format="HH:mm"
 | 
	
		
			
				|  |  | +                disabled
 | 
	
		
			
				|  |  | +                value-format="HH:mm"
 | 
	
		
			
				|  |  | +                placeholder="请选择结束时间"
 | 
	
		
			
				|  |  | +                :picker-options="{
 | 
	
		
			
				|  |  | +                  selectableRange: [
 | 
	
		
			
				|  |  | +                    scope.row.startClassTime + ':00 - 23:59:59',
 | 
	
		
			
				|  |  | +                  ],
 | 
	
		
			
				|  |  | +                }"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +              </el-time-picker>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.holiday'"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择是否跳过节假日' }]"
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -              <el-option label="是" :value="true"></el-option>
 | 
	
		
			
				|  |  | -              <el-option label="否" :value="false"> </el-option>
 | 
	
		
			
				|  |  | -            </el-select>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column label="排课起始时间" width="170">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -            :prop="'classs.' + type + '.cycle.' + scope.$index + '.startDate'"
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择排课起始时间' }]"
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-date-picker
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.startDate"
 | 
	
		
			
				|  |  | -              :picker-options="pickerOptions"
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              type="date"
 | 
	
		
			
				|  |  | -              value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | -              placeholder="选择日期"
 | 
	
		
			
				|  |  | -              @change="
 | 
	
		
			
				|  |  | -                (val) => {
 | 
	
		
			
				|  |  | -                  changeStartDate(val, scope.row);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -              "
 | 
	
		
			
				|  |  | +              <el-select
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.holiday"
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                placeholder="是否跳过节假日"
 | 
	
		
			
				|  |  | +                filterable
 | 
	
		
			
				|  |  | +                @change="holidayChange(scope.row)"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                <el-option label="是" :value="true"></el-option>
 | 
	
		
			
				|  |  | +                <el-option label="否" :value="false"> </el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.startDate'"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择排课起始时间' }]"
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -            </el-date-picker>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column label="排课结束时间" width="170">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <el-form-item
 | 
	
		
			
				|  |  | -            inline-message
 | 
	
		
			
				|  |  | -            :prop="'classs.' + type + '.cycle.' + scope.$index + '.endDate'"
 | 
	
		
			
				|  |  | -            :rules="[{ required: true, message: '请选择排课结束时间' }]"
 | 
	
		
			
				|  |  | -          >
 | 
	
		
			
				|  |  | -            <el-date-picker
 | 
	
		
			
				|  |  | -              v-model.trim="scope.row.endDate"
 | 
	
		
			
				|  |  | -              :disabled="true"
 | 
	
		
			
				|  |  | -              :picker-options="pickerOptions"
 | 
	
		
			
				|  |  | -              style="width: 100% !important"
 | 
	
		
			
				|  |  | -              type="date"
 | 
	
		
			
				|  |  | -              value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | -              placeholder="选择日期"
 | 
	
		
			
				|  |  | +              <el-date-picker
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.startDate"
 | 
	
		
			
				|  |  | +                :picker-options="pickerOptions"
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                type="date"
 | 
	
		
			
				|  |  | +                value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | +                placeholder="选择日期"
 | 
	
		
			
				|  |  | +                @change="
 | 
	
		
			
				|  |  | +                  (val) => {
 | 
	
		
			
				|  |  | +                    changeStartDate(val, scope.row);
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                "
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +              </el-date-picker>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item
 | 
	
		
			
				|  |  | +              inline-message
 | 
	
		
			
				|  |  | +              :prop="'classs.' + type + '.cycle.' + scope.$index + '.endDate'"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择排课结束时间' }]"
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -            </el-date-picker>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </template>
 | 
	
		
			
				|  |  | -      </el-table-column>
 | 
	
		
			
				|  |  | -      <el-table-column prop="date" width="50px">
 | 
	
		
			
				|  |  | -        <template slot-scope="scope">
 | 
	
		
			
				|  |  | -          <i
 | 
	
		
			
				|  |  | -            @click="remove(scope.$index, scope)"
 | 
	
		
			
				|  |  | -            v-if="form.cycle.length > 1"
 | 
	
		
			
				|  |  | -            class="close-icon el-icon-circle-close"
 | 
	
		
			
				|  |  | -          ></i>
 | 
	
		
			
				|  |  | +              <el-date-picker
 | 
	
		
			
				|  |  | +                v-model.trim="scope.row.endDate"
 | 
	
		
			
				|  |  | +                :disabled="true"
 | 
	
		
			
				|  |  | +                :picker-options="pickerOptions"
 | 
	
		
			
				|  |  | +                style="width: 180px !important"
 | 
	
		
			
				|  |  | +                type="date"
 | 
	
		
			
				|  |  | +                value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | +                placeholder="选择日期"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +              </el-date-picker>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <i
 | 
	
		
			
				|  |  | +              @click="remove(scope.$index, scope)"
 | 
	
		
			
				|  |  | +              v-if="form.cycle.length > 1"
 | 
	
		
			
				|  |  | +              class="close-icon el-icon-circle-close"
 | 
	
		
			
				|  |  | +            ></i>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  |          </template>
 | 
	
		
			
				|  |  |        </el-table-column>
 | 
	
		
			
				|  |  |      </el-table>
 | 
	
	
		
			
				|  | @@ -242,7 +268,7 @@ for (const item of classTimeList) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  props: ["form", "type", "surplustime", "prices", "selectPrice", "holidays"],
 | 
	
		
			
				|  |  | +  props: ["form", "type", "surplustime", "prices", "selectPrice", "holidays","teacherList","activeType",'cooperationList'],
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        classTimeListByType,
 | 
	
	
		
			
				|  | @@ -279,29 +305,29 @@ export default {
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  |      updateUseTime() {
 | 
	
		
			
				|  |  | -      let time = 0
 | 
	
		
			
				|  |  | -        for (const item of this.form.cycle) {
 | 
	
		
			
				|  |  | -          time += (item.time || 0) * (item.expectCourseNum || 0)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        this.useTime = time
 | 
	
		
			
				|  |  | -        this.$emit('setUserTime', time, this.type)
 | 
	
		
			
				|  |  | +      let time = 0;
 | 
	
		
			
				|  |  | +      for (const item of this.form.cycle) {
 | 
	
		
			
				|  |  | +        time += (item.time || 0) * (item.expectCourseNum || 0);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.useTime = time;
 | 
	
		
			
				|  |  | +      this.$emit("setUserTime", time, this.type);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      create() {
 | 
	
		
			
				|  |  | -      if(this.surplustime<=this.useTime){
 | 
	
		
			
				|  |  | -        this.$message.error('已排课时长使用完毕,请修改预计课时数')
 | 
	
		
			
				|  |  | -        return
 | 
	
		
			
				|  |  | +      if (this.surplustime <= this.useTime) {
 | 
	
		
			
				|  |  | +        this.$message.error("已排课时长使用完毕,请修改预计课时数");
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        const initVal = {};
 | 
	
		
			
				|  |  |        if (this.selectPrice) {
 | 
	
		
			
				|  |  |          initVal.time = this.selectPrice;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.form.cycle.push(initVal);
 | 
	
		
			
				|  |  | -      this.updateUseTime()
 | 
	
		
			
				|  |  | +      this.updateUseTime();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      remove(index) {
 | 
	
		
			
				|  |  |        this.form.cycle.splice(index, 1);
 | 
	
		
			
				|  |  | -      this.updateUseTime()
 | 
	
		
			
				|  |  | +      this.updateUseTime();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      startTimeChange(item, val) {
 | 
	
		
			
				|  |  |        this.getUseTime(item.row);
 | 
	
	
		
			
				|  | @@ -316,7 +342,7 @@ export default {
 | 
	
		
			
				|  |  |          this.$set(item.row, "endClassTime", "");
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        if (val) {
 | 
	
		
			
				|  |  | -      let activeTime = val * Math.max((item.row.expectCourseNum || 0), 0)
 | 
	
		
			
				|  |  | +        let activeTime = val * Math.max(item.row.expectCourseNum || 0, 0);
 | 
	
		
			
				|  |  |          this.$set(
 | 
	
		
			
				|  |  |            item.row,
 | 
	
		
			
				|  |  |            "expectCourseNum",
 | 
	
	
		
			
				|  | @@ -339,81 +365,72 @@ export default {
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  |          this.$set(item, "endClassTime", "");
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | -      this.updateUseTime()
 | 
	
		
			
				|  |  | +      this.updateUseTime();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      holidayChange(row) {
 | 
	
		
			
				|  |  | -      this.updateEndTime(row)
 | 
	
		
			
				|  |  | +      this.updateEndTime(row);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      getUseTime(row) {
 | 
	
		
			
				|  |  | -      this.updateEndTime(row)
 | 
	
		
			
				|  |  | +      this.updateEndTime(row);
 | 
	
		
			
				|  |  |        this.useTime = 0;
 | 
	
		
			
				|  |  |        this.form.cycle.forEach((item) => {
 | 
	
		
			
				|  |  |          this.useTime +=
 | 
	
		
			
				|  |  |            (item.expectCourseNum ? parseInt(item.expectCourseNum) : 0) *
 | 
	
		
			
				|  |  |            parseInt(item.time);
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  | -      this.updateUseTime()
 | 
	
		
			
				|  |  | -    //  this.$emit('setUserTime', this.useTime, this.type)
 | 
	
		
			
				|  |  | +      this.updateUseTime();
 | 
	
		
			
				|  |  | +      //  this.$emit('setUserTime', this.useTime, this.type)
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      addData(startDate, dayOfWeek) {
 | 
	
		
			
				|  |  |        let num;
 | 
	
		
			
				|  |  | -      let dayjs = this.$helpers.dayjs
 | 
	
		
			
				|  |  | +      let dayjs = this.$helpers.dayjs;
 | 
	
		
			
				|  |  |        let date = dayjs(startDate).toDate();
 | 
	
		
			
				|  |  |        dayOfWeek - date.getDay() >= 0
 | 
	
		
			
				|  |  |          ? (num = dayOfWeek - date.getDay())
 | 
	
		
			
				|  |  |          : (num = dayOfWeek - date.getDay() + 7);
 | 
	
		
			
				|  |  | -      return num
 | 
	
		
			
				|  |  | +      return num;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      updateEndTime(row) {
 | 
	
		
			
				|  |  | -      console.log(row)
 | 
	
		
			
				|  |  | -        if (row.dayOfWeek && row.startDate && typeof row.holiday === 'boolean') {
 | 
	
		
			
				|  |  | -          // const num = this.addData(row.startDate, row.dayOfWeek)
 | 
	
		
			
				|  |  | -          // const week = dayjs(row.startDate).get('day') == 0 ? 7 : dayjs(row.startDate).get('day')
 | 
	
		
			
				|  |  | -          const selectWeek = row.dayOfWeek == 7 ? 0 : row.dayOfWeek
 | 
	
		
			
				|  |  | -          let exp = Math.max(row.expectCourseNum, 0)
 | 
	
		
			
				|  |  | -          let end = dayjs(row.startDate)
 | 
	
		
			
				|  |  | -          // console.log(selectWeek, end.get('day'))
 | 
	
		
			
				|  |  | -          if (row.holiday) {
 | 
	
		
			
				|  |  | -            while (exp > 0) {
 | 
	
		
			
				|  |  | -              if (selectWeek == end.get('day') && !this.holidays.includes(end.format('YYYY-MM-DD'))) {
 | 
	
		
			
				|  |  | -                exp--
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              end = end.add(1, 'day')
 | 
	
		
			
				|  |  | -              if (exp === 0) {
 | 
	
		
			
				|  |  | -                end = end.subtract(1, 'day')
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | +      console.log(row);
 | 
	
		
			
				|  |  | +      if (row.dayOfWeek && row.startDate && typeof row.holiday === "boolean") {
 | 
	
		
			
				|  |  | +        // const num = this.addData(row.startDate, row.dayOfWeek)
 | 
	
		
			
				|  |  | +        // const week = dayjs(row.startDate).get('day') == 0 ? 7 : dayjs(row.startDate).get('day')
 | 
	
		
			
				|  |  | +        const selectWeek = row.dayOfWeek == 7 ? 0 : row.dayOfWeek;
 | 
	
		
			
				|  |  | +        let exp = Math.max(row.expectCourseNum, 0);
 | 
	
		
			
				|  |  | +        let end = dayjs(row.startDate);
 | 
	
		
			
				|  |  | +        // console.log(selectWeek, end.get('day'))
 | 
	
		
			
				|  |  | +        if (row.holiday) {
 | 
	
		
			
				|  |  | +          while (exp > 0) {
 | 
	
		
			
				|  |  | +            if (
 | 
	
		
			
				|  |  | +              selectWeek == end.get("day") &&
 | 
	
		
			
				|  |  | +              !this.holidays.includes(end.format("YYYY-MM-DD"))
 | 
	
		
			
				|  |  | +            ) {
 | 
	
		
			
				|  |  | +              exp--;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            while (exp > 0) {
 | 
	
		
			
				|  |  | -              if (selectWeek == end.get('day')) {
 | 
	
		
			
				|  |  | -                exp--
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -              end = end.add(1, 'day')
 | 
	
		
			
				|  |  | -              if (exp === 0) {
 | 
	
		
			
				|  |  | -                end = end.subtract(1, 'day')
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | +            end = end.add(1, "day");
 | 
	
		
			
				|  |  | +            if (exp === 0) {
 | 
	
		
			
				|  |  | +              end = end.subtract(1, "day");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          const enumd = this.addData(end.format('YYYY-MM-DD'), row.dayOfWeek)
 | 
	
		
			
				|  |  | -          console.log(enumd)
 | 
	
		
			
				|  |  | -          // end = end.add(enumd, 'day')
 | 
	
		
			
				|  |  | -          this.$set(
 | 
	
		
			
				|  |  | -          row,
 | 
	
		
			
				|  |  | -          "endDate",
 | 
	
		
			
				|  |  | -          end.format('YYYY-MM-DD')
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          while (exp > 0) {
 | 
	
		
			
				|  |  | +            if (selectWeek == end.get("day")) {
 | 
	
		
			
				|  |  | +              exp--;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            end = end.add(1, "day");
 | 
	
		
			
				|  |  | +            if (exp === 0) {
 | 
	
		
			
				|  |  | +              end = end.subtract(1, "day");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        const enumd = this.addData(end.format("YYYY-MM-DD"), row.dayOfWeek);
 | 
	
		
			
				|  |  | +        console.log(enumd);
 | 
	
		
			
				|  |  | +        // end = end.add(enumd, 'day')
 | 
	
		
			
				|  |  | +        this.$set(row, "endDate", end.format("YYYY-MM-DD"));
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        this.$set(
 | 
	
		
			
				|  |  | -          row,
 | 
	
		
			
				|  |  | -          "endDate",
 | 
	
		
			
				|  |  | -          ''
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | +        this.$set(row, "endDate", "");
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        // if (row.dayOfWeek && row.startDate && typeof row.holiday === 'boolean') {
 | 
	
		
			
				|  |  |        //     // const num = this.addData(row.startDate, row.dayOfWeek)
 | 
	
		
			
				|  |  |        //     const week = dayjs(row.startDate).get('day') == 0 ? 7 : dayjs(row.startDate).get('day')
 | 
	
	
		
			
				|  | @@ -443,8 +460,8 @@ export default {
 | 
	
		
			
				|  |  |        // }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      changeStartDate(val, row) {
 | 
	
		
			
				|  |  | -      this.updateEndTime(row)
 | 
	
		
			
				|  |  | -      this.updateUseTime()
 | 
	
		
			
				|  |  | +      this.updateEndTime(row);
 | 
	
		
			
				|  |  | +      this.updateUseTime();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  };
 | 
	
	
		
			
				|  | @@ -454,5 +471,6 @@ export default {
 | 
	
		
			
				|  |  |    cursor: pointer;
 | 
	
		
			
				|  |  |    font-size: 16px;
 | 
	
		
			
				|  |  |    margin-bottom: 24px;
 | 
	
		
			
				|  |  | +  line-height: 40px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  </style>
 |