1361 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			1361 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						||
	<view class="box flex flex-column align-items justify-center">
 | 
						||
		<view class="first flex flex-column align-items justify-start">
 | 
						||
			<view class="row flex align-items" @click.stop="teacherShow = true">
 | 
						||
				<span class="label flex align-items">课程讲师
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui" v-if="form.teacher == ''">选择</span>
 | 
						||
					<span class="hui" v-if="form.teacher != ''">{{form.teacher}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="row flex align-items" style="margin-top: 25rpx; " @click.stop="classesShow = true">
 | 
						||
				<span class="label flex align-items">课程类型
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui" v-if="form.classes == ''">选择</span>
 | 
						||
					<span class="hui" v-if="form.classes != ''">{{form.classes}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="row flex align-items" style="margin-top: 25rpx; ">
 | 
						||
				<span class="label flex align-items ">课程标题
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<span class="row-right">
 | 
						||
					<input type="text" placeholder="填写标题" class="input" v-model="form.title"
 | 
						||
						placeholder-class="plasty" />
 | 
						||
				</span>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="row flex align-items" style="margin-top: 25rpx; ">
 | 
						||
				<span class="label flex align-items ">课程价格
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<span class="row-right">
 | 
						||
					<input type="text" placeholder="填写0则为免费课程" class="input" v-model="form.price"
 | 
						||
						placeholder-class="plasty" />
 | 
						||
				</span>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="row flex align-items" style="margin-top: 25rpx; ">
 | 
						||
				<span class="label flex align-items ">核销次数
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<span class="row-right">
 | 
						||
					<input type="number" placeholder="课时数不能少于核销次数" disabled="true" class="input"
 | 
						||
						v-model="form.classes_num" placeholder-class="plasty" />
 | 
						||
				</span>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="second flex flex-column align-items justify-start">
 | 
						||
			<span class="se-title flex">课时添加</span>
 | 
						||
			<view class="secondList flex flex-column align-items justify-start">
 | 
						||
				<view class="content flex flex-column align-items justify-start" v-for="(item, index) in formList"
 | 
						||
					:key="index">
 | 
						||
					<view class="row flex align-items" style="margin-top: 25rpx;">
 | 
						||
						<span class="label flex align-items">课时名称
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<span class="row-right">
 | 
						||
							<input type="text" placeholder="填写名称" class="input" v-model="item.name"
 | 
						||
								placeholder-class="plasty" />
 | 
						||
						</span>
 | 
						||
					</view>
 | 
						||
					<span class="line-row"></span>
 | 
						||
					<view class="row flex align-items" style="margin-top: 31rpx;" @click="selctTime(index)">
 | 
						||
						<span class="label flex align-items">上课时间
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<view class="row-right flex align-items">
 | 
						||
							<span v-if="item.start_time" class="hui">{{ item.start_time }}-{{item.end_time}}</span>
 | 
						||
							<span v-else class="hui">选择时间</span>
 | 
						||
							<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
					<!-- <span class="line-row"></span>
 | 
						||
					<view class="row flex align-items" style="margin-top: 31rpx;" @click="selctTime(index)">
 | 
						||
						<span class="label flex align-items">开始时间
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<view class="row-right flex align-items">
 | 
						||
							<span>{{ item.start_time }}</span>
 | 
						||
							<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
					<span class="line-row"></span>
 | 
						||
					<view class="row flex align-items" style="margin-top: 31rpx;" @click="selctTime(index)">
 | 
						||
						<span class="label flex align-items">结束时间
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<view class="row-right flex align-items">
 | 
						||
							<span>{{ item.end_time }}</span>
 | 
						||
							<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
						</view>
 | 
						||
					</view> -->
 | 
						||
					<span class="line-row"></span>
 | 
						||
					<view class="row flex align-items" style="margin-top: 31rpx;">
 | 
						||
						<span class="label flex align-items">人数上限
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<span class="row-right">
 | 
						||
							<input type="text" placeholder="填写人数上限" class="input" v-model="item.limit_num"
 | 
						||
								placeholder-class="plasty" />
 | 
						||
						</span>
 | 
						||
					</view>
 | 
						||
					<!-- <span class="line-row"></span> -->
 | 
						||
					<!-- <view class="row flex align-items" style="margin-top: 31rpx;" @click.stop="isStatus(index)">
 | 
						||
						<span class="label flex align-items">上架状态
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<view class="row-right flex align-items">
 | 
						||
							<span class="hui" v-if="item.status_name == ''">选择</span>
 | 
						||
							<span class="hui" v-if="item.status_name != ''">{{item.status_name}}</span>
 | 
						||
							<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
						</view>
 | 
						||
					</view> -->
 | 
						||
					<!-- <view class="row flex align-items" style="margin-top: 31rpx;">
 | 
						||
						<span class="label flex align-items">上架状态
 | 
						||
							<span style="color: #FF2323;">*</span>
 | 
						||
						</span>
 | 
						||
						<view class="row-right flex align-items">
 | 
						||
							<span class="hui">上架</span>
 | 
						||
							<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
						</view>
 | 
						||
					</view> -->
 | 
						||
					<span class="del" @click.stop="removePeriod(index)" v-if="formList.length > 1">移出课时-</span>
 | 
						||
				</view>
 | 
						||
				<span class="add" @click.stop="addPeriod()">新增课时 + </span>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<!-- 机构热门 -->
 | 
						||
		<view class="trend flex justify-center align-items">
 | 
						||
			<view class="row flex align-items" @click.stop="selfhotShow = true">
 | 
						||
				<span class="label flex align-items">机构热门
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui">{{form.selfhot == 0 ? '否' : '是'}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
 | 
						||
		<!-- 上架状态 -->
 | 
						||
		<view class="trend flex justify-center align-items">
 | 
						||
			<view class="row flex align-items" @click.stop="disable && (shangShow = true)">
 | 
						||
				<span class="label flex align-items">是否立即上架
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui">{{form.status_name}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;" v-if="disable"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<!-- 地点类型  上课位置 -->
 | 
						||
		<view class="first flex flex-column align-items justify-start">
 | 
						||
			<view class="row flex align-items" @click.stop="typeShow = true">
 | 
						||
				<span class="label flex align-items">地点类型
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui">{{form.type}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="row flex align-items" style="margin-top: 25rpx; " @click.stop="address_typeShow = true">
 | 
						||
				<span class="label flex align-items">上课位置
 | 
						||
					<span style="color: #FF2323;">*</span>
 | 
						||
				</span>
 | 
						||
				<view class="row-right flex align-items">
 | 
						||
					<span class="hui">{{form.address_type}}</span>
 | 
						||
					<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<view class="w-100  flex flex-column align-items justify-start" v-if="localShow">
 | 
						||
				<span class="line-row"></span>
 | 
						||
				<view class="row flex align-items" style="margin-top: 25rpx; " @click.stop="districtShow = true">
 | 
						||
					<span class="label flex align-items">选择县区
 | 
						||
						<span style="color: #FF2323;">*</span>
 | 
						||
					</span>
 | 
						||
					<view class="row-right flex align-items">
 | 
						||
						<span class="hui">{{form.district_name}}</span>
 | 
						||
						<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
				<span class="line-row"></span>
 | 
						||
				<view class="row flex align-items" style="margin-top: 25rpx;">
 | 
						||
					<span class="label flex align-items">选择地址 <span style="color: #FF2323;">*</span></span>
 | 
						||
					<span class="row-right flex align-items" @click="choose()">
 | 
						||
						<span class="hui">{{form.address}}</span>
 | 
						||
						<image src="../../static/my/right.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
 | 
						||
					</span>
 | 
						||
				</view>
 | 
						||
				<span class="line-row"></span>
 | 
						||
				<view class="row flex align-items" style="margin-top: 25rpx;">
 | 
						||
					<span class="label flex align-items ">详细位置
 | 
						||
						<span style="color: #FF2323;">*</span>
 | 
						||
					</span>
 | 
						||
					<span class="row-right flex align-items">
 | 
						||
						<input type="text" placeholder="请填写详细位置" class="input" v-model="form.address_detail"
 | 
						||
							placeholder-class="plasty" />
 | 
						||
					</span>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
 | 
						||
		</view>
 | 
						||
		<!-- 标签 -->
 | 
						||
		<view class="four flex flex-column align-items justify-start">
 | 
						||
			<view class="class_type">课程标签
 | 
						||
				<span style="color: #FF2323;margin: 0 12rpx 0 6rpx;">*</span>
 | 
						||
				<span>(最多只能选择三个)</span>
 | 
						||
			</view>
 | 
						||
			<view class="" style="width: 100%;margin-top: 24rpx;">
 | 
						||
				<uni-section title="" type="line">
 | 
						||
					<view class="uni-px-5 uni-pb-5">
 | 
						||
						<zxz-uni-data-select v-model="form.classes_cate_ids" filterable multiple dataKey="label"
 | 
						||
							dataValue="value" :localdata="classes_cateList" @change="change"></zxz-uni-data-select>
 | 
						||
					</view>
 | 
						||
				</uni-section>
 | 
						||
			</view>
 | 
						||
			<span class="line-row"></span>
 | 
						||
			<view class="class_type" style="margin-top: 31rpx;">热门标签
 | 
						||
				<span style="color: #FF2323;margin: 0 12rpx 0 6rpx;">*</span>
 | 
						||
				<span>(最多只能选择三个)</span>
 | 
						||
			</view>
 | 
						||
			<view class="" style="width: 100%;margin-top: 24rpx;">
 | 
						||
				<uni-section title="" type="line">
 | 
						||
					<view class="uni-px-5 uni-pb-5">
 | 
						||
						<zxz-uni-data-select v-model="form.classes_label_ids" filterable multiple dataKey="label"
 | 
						||
							dataValue="value" :localdata="classes_labelList"></zxz-uni-data-select>
 | 
						||
					</view>
 | 
						||
				</uni-section>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<!-- 封面照片 -->
 | 
						||
		<view class="third flex flex-column" style="margin-top: 42rpx;">
 | 
						||
			<span class="swiper" style="margin-bottom: 24rpx;">封面图
 | 
						||
				<span style="color: #FF2323;">*</span></span>
 | 
						||
			<u-upload :fileList="fileList1" @afterRead="afterRead" :previewFullImage="true" @delete="deletePic"
 | 
						||
				@oversize="oversize" name="1" multiple :maxSize="2*1024*1024" :maxCount="1">
 | 
						||
				<image src="../../static/index/upload.png" mode="widthFix" style="width: 200rpx;height: 200rpx;">
 | 
						||
			</u-upload>
 | 
						||
		</view>
 | 
						||
		<!-- 轮播图 -->
 | 
						||
		<view class="third flex flex-column">
 | 
						||
			<view class="header flex flex-column">
 | 
						||
				<span class="swiper">轮播图
 | 
						||
					<span style="color: #FF2323;">*</span></span>
 | 
						||
				<span class="tips">(最多只能上传6张,单张最大不超过2M,尺寸750*450)</span>
 | 
						||
 | 
						||
			</view>
 | 
						||
			<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="6"
 | 
						||
				:previewFullImage="true" width="200rpx" height="200rpx" @oversize="oversize" :maxSize="2*1024*1024">
 | 
						||
				<image src="../../static/index/upload.png" mode="widthFix" style="width: 200rpx;height: 200rpx;">
 | 
						||
			</u-upload>
 | 
						||
		</view>
 | 
						||
 | 
						||
		<!-- 课程详情 -->
 | 
						||
		<view class="third flex flex-column">
 | 
						||
			<view class="header flex flex-column">
 | 
						||
				<span class="swiper">课程详情
 | 
						||
					<span style="color: #FF2323;">*</span></span>
 | 
						||
 | 
						||
			</view>
 | 
						||
			<view class="">
 | 
						||
				<u--textarea v-model="form.content" placeholder="请输入内容" height="170" :maxlength="2000"
 | 
						||
					count></u--textarea>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
 | 
						||
		<!-- 课程须知 -->
 | 
						||
		<view class="third flex flex-column" style="margin-bottom:242rpx;">
 | 
						||
			<view class="header flex flex-column">
 | 
						||
				<span class="swiper">课程须知
 | 
						||
					<span style="color: #FF2323;">*</span></span>
 | 
						||
			</view>
 | 
						||
			<view class="">
 | 
						||
				<u--textarea v-model="form.notice" placeholder="请输入内容" height="170" :maxlength="2000"
 | 
						||
					count></u--textarea>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
 | 
						||
		<view class="footer flex align-items" style="justify-content: space-evenly;">
 | 
						||
			<span class="cancel flex align-items justify-center">取消</span>
 | 
						||
			<span class="pass flex align-items justify-center" v-if="disable" @click.stop="add()">确认</span>
 | 
						||
			<span class="pass flex align-items justify-center" v-if="disable == false" @click.stop="add()">编辑</span>
 | 
						||
		</view>
 | 
						||
 | 
						||
		<!-- 课程讲师 -->
 | 
						||
		<u-picker :show="teacherShow" :columns="teacherList" keyName="name" @cancel="teacherCancel"
 | 
						||
			@confirm="teacherConfirm"></u-picker>
 | 
						||
		<!-- 课程类型 -->
 | 
						||
		<u-picker :show="classesShow" :columns="classesTypeList" keyName="name" @cancel="classesCancel"
 | 
						||
			@confirm="classesConfirm"></u-picker>
 | 
						||
		<!-- 机构热门 -->
 | 
						||
		<u-picker :show="selfhotShow" :columns="selfhotList" @cancel="selfhotCancel"
 | 
						||
			@confirm="selfhotConfirm"></u-picker>
 | 
						||
		<!-- 地点类型 -->
 | 
						||
		<u-picker :show="typeShow" :columns="typeList" @cancel="typeCancel" @confirm="typeConfirm"></u-picker>
 | 
						||
		<!-- 选择县区 -->
 | 
						||
		<u-picker :show="districtShow" :columns="districtList" keyName="label" @cancel="districtCancel"
 | 
						||
			@confirm="districtConfirm"></u-picker>
 | 
						||
		<!-- 课时上架状态 -->
 | 
						||
		<u-picker :show="statusShow" :columns="statusList" keyName="label" @cancel="statusCancel"
 | 
						||
			@confirm="statusConfirm"></u-picker>
 | 
						||
 | 
						||
		<!-- 课程上架状态 -->
 | 
						||
		<u-picker :show="shangShow" :columns="shangList" keyName="label" @cancel="shangCancel"
 | 
						||
			@confirm="shangConfirm"></u-picker>
 | 
						||
		<!-- 地址类型 -->
 | 
						||
		<u-picker :show="address_typeShow" :columns="address_typeList" @cancel="address_typeCancel"
 | 
						||
			@confirm="address_typeConfirm"></u-picker>
 | 
						||
		<!-- 时间选择 -->
 | 
						||
		<hbxw-date-range-picker title="选择时间" :visible="dateReangeVisible" level="minute" @cancel="cancel" @sure="sure"
 | 
						||
			@change="dateChange" />
 | 
						||
	</view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
	export default {
 | 
						||
		data() {
 | 
						||
			return {
 | 
						||
				//教师列表
 | 
						||
				teacherShow: false,
 | 
						||
				teacherList: [],
 | 
						||
				// 课程列表
 | 
						||
				classesShow: false,
 | 
						||
				classesTypeList: [],
 | 
						||
				// 机构热门
 | 
						||
				selfhotShow: false,
 | 
						||
				selfhotList: [
 | 
						||
					['是', '否']
 | 
						||
				],
 | 
						||
				// 地点类型
 | 
						||
				typeShow: false,
 | 
						||
				typeList: [
 | 
						||
					['室内', '室外']
 | 
						||
				],
 | 
						||
				// 县区
 | 
						||
				districtShow: false,
 | 
						||
				districtList: [],
 | 
						||
				// 课时上架状态
 | 
						||
				statusShow: false,
 | 
						||
				// 课程上架状态
 | 
						||
				shangShow: false,
 | 
						||
				shangList: [
 | 
						||
					[{
 | 
						||
						label: '是',
 | 
						||
						// 其他属性值
 | 
						||
						value: 1
 | 
						||
						// ...
 | 
						||
					}, {
 | 
						||
						label: '否',
 | 
						||
						value: 2
 | 
						||
					}, 
 | 
						||
					// {
 | 
						||
					// 	label: '平台下架',
 | 
						||
					// 	value: 3
 | 
						||
					// },
 | 
						||
					]
 | 
						||
				],
 | 
						||
				statusList: [
 | 
						||
					[{
 | 
						||
						label: '上架',
 | 
						||
						// 其他属性值
 | 
						||
						value: 1
 | 
						||
						// ...
 | 
						||
					}, {
 | 
						||
						label: '下架',
 | 
						||
						value: 2
 | 
						||
					}, 
 | 
						||
					// {
 | 
						||
					// 	label: '平台下架',
 | 
						||
					// 	value: 3
 | 
						||
					// },
 | 
						||
					]
 | 
						||
				],
 | 
						||
				// 地址类型
 | 
						||
				address_typeList: [
 | 
						||
					['机构内授课', '特定位置授课']
 | 
						||
				],
 | 
						||
				address_typeShow: false,
 | 
						||
				localShow: false,
 | 
						||
 | 
						||
				form: {
 | 
						||
					latitude: '',
 | 
						||
					longitude: '',
 | 
						||
					address_detail: '',
 | 
						||
					teacher_id: "",
 | 
						||
					teacher: '',
 | 
						||
					classes: '',
 | 
						||
					classes_type: '',
 | 
						||
					title: '',
 | 
						||
					price: '',
 | 
						||
					verification_num: '',
 | 
						||
					location_type: '',
 | 
						||
					address_type: '机构内授课',
 | 
						||
					address: '',
 | 
						||
					course_details: '',
 | 
						||
					course: "",
 | 
						||
					selfhot: '否',
 | 
						||
					type: '室内',
 | 
						||
					classes_cate_ids: '',
 | 
						||
					classes_label_ids: '',
 | 
						||
					notice: '', //须知
 | 
						||
					content: '', //详情
 | 
						||
					status_name: '是', //上下架,
 | 
						||
					status: '1', //上下架id
 | 
						||
					classes_num: '1', //核销次数
 | 
						||
					district_name: '', //县区名字
 | 
						||
					district: "" //县区id
 | 
						||
				},
 | 
						||
				dateReangeVisible: false,
 | 
						||
				currentPeriodIndex: null,
 | 
						||
				currentTimeType: null,
 | 
						||
				date: null,
 | 
						||
				formList: [{
 | 
						||
					name: '',
 | 
						||
					start_time: '',
 | 
						||
					end_time: '',
 | 
						||
					limit_num: '',
 | 
						||
					status_name: '',
 | 
						||
					status: '1',
 | 
						||
					visible: true
 | 
						||
				}],
 | 
						||
				fileList1: [], // 用于存储第一个上传组件的文件列表
 | 
						||
				fileList2: [], // 用于存储第二个上传组件的文件列表
 | 
						||
				list1: '',
 | 
						||
				list2: '',
 | 
						||
				disable: true,
 | 
						||
				// 课程标签
 | 
						||
				classes_cateList: [],
 | 
						||
				// 课程热门
 | 
						||
				classes_labelList: [],
 | 
						||
			};
 | 
						||
		},
 | 
						||
		watch: {
 | 
						||
			value1: {
 | 
						||
				handler(newVal, oldVal) {
 | 
						||
					// console.log("b------: ", newVal, oldVal);
 | 
						||
				},
 | 
						||
				deep: true, //对象中任一属性值发生变化,都会触发handler方法
 | 
						||
				immediate: true //初始化绑定时就会执行handler方法
 | 
						||
			}
 | 
						||
		},
 | 
						||
		onLoad(option) {
 | 
						||
			 this.initData(option);
 | 
						||
		},
 | 
						||
 | 
						||
		methods: {
 | 
						||
			async initData(option) {
 | 
						||
			    const promises = [
 | 
						||
			        this.getTeacherList(option.shop_id),
 | 
						||
			        this.getclassesTypeList(),
 | 
						||
			        this.getclassesList(),
 | 
						||
			        this.getclasses_labelList(),
 | 
						||
			        this.getdistrictList()
 | 
						||
			    ];
 | 
						||
			
 | 
						||
			    try {
 | 
						||
			        await Promise.all(promises);
 | 
						||
			
 | 
						||
			        if (option.id) {
 | 
						||
			            this.disable = false;
 | 
						||
			            uni.setNavigationBarTitle({
 | 
						||
			                title: '编辑课程'
 | 
						||
			            });
 | 
						||
			            await this.getDetail(option.id); // 等待 getDetail 完成
 | 
						||
			        }
 | 
						||
			    } catch (error) {
 | 
						||
			        console.error('加载数据时发生错误:', error);
 | 
						||
			        uni.showToast({
 | 
						||
			            title: '加载数据失败,请重试',
 | 
						||
			            icon: 'none',
 | 
						||
			            duration: 2000
 | 
						||
			        });
 | 
						||
			    }
 | 
						||
			},
 | 
						||
			
 | 
						||
			addPeriod() {
 | 
						||
				this.formList.push({
 | 
						||
					name: '',
 | 
						||
					start_time: '',
 | 
						||
					end_time: '',
 | 
						||
					limit_num: '',
 | 
						||
					status: 1,
 | 
						||
					visible: true
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 获取详情
 | 
						||
			async getDetail(id) {
 | 
						||
			    try {
 | 
						||
			        const res = await uni.$u.http.get('/api/school/classes/detail', {
 | 
						||
			            params: {
 | 
						||
			                id: id,
 | 
						||
			            }
 | 
						||
			        });
 | 
						||
			
 | 
						||
			        if (res.code == 1) {
 | 
						||
			            this.form = res.data.detail;
 | 
						||
			
 | 
						||
			            // 调试信息
 | 
						||
			            console.log('form.classes_type:', this.form.classes_type);
 | 
						||
			            console.log('classesTypeList:', this.classesTypeList);
 | 
						||
			
 | 
						||
			            // 创建一个映射对象,将 id 映射到 name
 | 
						||
			            const classes_typeMap = {};
 | 
						||
			            this.classesTypeList[0].forEach(item => {
 | 
						||
			                classes_typeMap[item.id] = item.name;
 | 
						||
			            });
 | 
						||
			
 | 
						||
			            // 调试信息
 | 
						||
			            console.log('classes_typeMap:', classes_typeMap);
 | 
						||
			
 | 
						||
			            this.form.classes = classes_typeMap[this.form.classes_type] || '';
 | 
						||
			
 | 
						||
			            // 其他数据处理逻辑...
 | 
						||
			
 | 
						||
			            const teacherMap = {};
 | 
						||
			            this.teacherList[0].forEach(item => {
 | 
						||
			                teacherMap[item.id] = item.name;
 | 
						||
			            });
 | 
						||
			            this.form.teacher = teacherMap[this.form.teacher.id] || '';
 | 
						||
			
 | 
						||
						if (this.form.status == 1) {
 | 
						||
							this.form.status_name  = '是'
 | 
						||
						} if (this.form.status == 1){
 | 
						||
							this.form.status_name  = '否'
 | 
						||
						} else {
 | 
						||
							this.form.status_name  = '审核中'
 | 
						||
						}
 | 
						||
			            this.form.type = this.form.type == 'in' ? '室内' : "室外";
 | 
						||
			            this.form.address_type = this.form.address_type == 1 ? '机构内授课' : "特定位置授课";
 | 
						||
			            if (this.form.address_type == 2) {
 | 
						||
			                this.localShow = true;
 | 
						||
			            }
 | 
						||
			
 | 
						||
			            const districtMap = {};
 | 
						||
			            this.districtList.forEach(item => {
 | 
						||
			                districtMap[item.value] = item.label;
 | 
						||
			            });
 | 
						||
			            this.form.district_name = districtMap[this.form.district] || '';
 | 
						||
			
 | 
						||
			            this.formList = res.data.detail.specs.map((item) => {
 | 
						||
			                return {
 | 
						||
			                    name: item.name,
 | 
						||
			                    end_time: item.end_time_text,
 | 
						||
			                    weigh: item.weigh,
 | 
						||
			                    start_time: item.start_time_text,
 | 
						||
			                    limit_num: item.limit_num,
 | 
						||
			                    id: item.id,
 | 
						||
			                    status: item.status // 假设 item 中有 status 属性
 | 
						||
			                };
 | 
						||
			            });
 | 
						||
			
 | 
						||
			            const statusMap = {};
 | 
						||
			            this.statusList.forEach(item => {
 | 
						||
			                statusMap[item.value] = item.label;
 | 
						||
			            });
 | 
						||
			
 | 
						||
			            this.formList = this.formList.map(item => {
 | 
						||
			                return {
 | 
						||
			                    ...item,
 | 
						||
			                    status_name: statusMap[item.status] || ''
 | 
						||
			                };
 | 
						||
			            });
 | 
						||
			
 | 
						||
			            this.form.classes_cate_ids = this.form.classes_cate_ids.split(',');
 | 
						||
			            this.form.classes_label_ids = this.form.classes_label_ids.split(',');
 | 
						||
			            this.fileList1 = this.formatImagesToFiles(this.form.headimage.split(','));
 | 
						||
			            this.list1 = this.form.headimage;
 | 
						||
			            this.list2 = this.form.images.join(',');
 | 
						||
			            this.fileList2 = this.formatImagesToFiles(this.form.images);
 | 
						||
			        } else {
 | 
						||
			            uni.showToast({
 | 
						||
			                title: res.msg,
 | 
						||
			                icon: 'none',
 | 
						||
			                duration: 2000
 | 
						||
			            });
 | 
						||
			            throw new Error(res.msg);
 | 
						||
			        }
 | 
						||
			    } catch (error) {
 | 
						||
			        console.error('请求失败', error);
 | 
						||
			        throw error;
 | 
						||
			    }
 | 
						||
			},
 | 
						||
			formatImagesToFiles(images) {
 | 
						||
				return images.map((url, index) => ({
 | 
						||
					url,
 | 
						||
					name: `image${index + 1}.jpg`
 | 
						||
				}));
 | 
						||
			},
 | 
						||
			// 获取县区
 | 
						||
			getdistrictList() {
 | 
						||
				uni.$u.http.get('/api/index/get_area', {
 | 
						||
					params: {
 | 
						||
						province: '410000',
 | 
						||
						city: '410300',
 | 
						||
					}
 | 
						||
				}).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						this.districtList[0] = res.data.map(item => ({
 | 
						||
							label: item.label,
 | 
						||
							value: item.value
 | 
						||
						}));
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 获取课程标签
 | 
						||
			getclassesList() {
 | 
						||
				uni.$u.http.get('/api/school/classes/cate_list', {}).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						this.classes_cateList = res.data.list.map(item => ({
 | 
						||
							label: item.name,
 | 
						||
							value: item.id
 | 
						||
						}));
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 获取课程热门
 | 
						||
			getclasses_labelList() {
 | 
						||
				uni.$u.http.get('/api/school/classes/label_list', {}).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						this.classes_labelList = res.data.list.map(item => ({
 | 
						||
							label: item.name,
 | 
						||
							value: item.id
 | 
						||
						}));
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 获取教师
 | 
						||
			getTeacherList(id) {
 | 
						||
				uni.$u.http.get('/api/school/teacher/teacher_list', {
 | 
						||
					params: {
 | 
						||
						shop_id: id,
 | 
						||
					}
 | 
						||
				}).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						this.teacherList[0] = res.data.list
 | 
						||
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 课程类型
 | 
						||
			getclassesTypeList() {
 | 
						||
				uni.$u.http.get('/api/school/classes/type_list', {}).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						this.classesTypeList[0] = res.data.list
 | 
						||
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
 | 
						||
			},
 | 
						||
			// 选择地址
 | 
						||
			choose() {
 | 
						||
				const that = this
 | 
						||
				uni.chooseLocation({
 | 
						||
					success: function(res) {
 | 
						||
						console.log(res)
 | 
						||
						that.form.address = res.name
 | 
						||
						// that.form.address_detail = res.address
 | 
						||
						that.form.latitude = res.latitude
 | 
						||
						that.form.longitude = res.longitude
 | 
						||
					},
 | 
						||
					fail: function(rot) {
 | 
						||
						console.log(rot)
 | 
						||
					}
 | 
						||
				});
 | 
						||
			},
 | 
						||
			// 选择县区
 | 
						||
			districtCancel(e) {
 | 
						||
				this.teacherShow = false
 | 
						||
			},
 | 
						||
			districtConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.district = e.value[0].value
 | 
						||
				this.form.district_name = e.value[0].label
 | 
						||
				this.districtShow = false
 | 
						||
			},
 | 
						||
			// 选择教师
 | 
						||
			teacherCancel(e) {
 | 
						||
				this.teacherShow = false
 | 
						||
			},
 | 
						||
			teacherConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.teacher_id = e.value[0].id
 | 
						||
				this.form.teacher = e.value[0].name
 | 
						||
				this.teacherShow = false
 | 
						||
			},
 | 
						||
			// 平台状态
 | 
						||
			isStatus(index) {
 | 
						||
				this.currentPeriodIndex = index;
 | 
						||
				this.statusShow = true
 | 
						||
			},
 | 
						||
			statusCancel(e) {
 | 
						||
				this.statusShow = false
 | 
						||
			},
 | 
						||
			statusConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				const {
 | 
						||
					currentPeriodIndex,
 | 
						||
				} = this;
 | 
						||
				// if (e.value[0].value == '')
 | 
						||
				if (currentPeriodIndex !== null) {
 | 
						||
					this.$set(this.formList[currentPeriodIndex], 'status', e.value[0].value);
 | 
						||
					this.$set(this.formList[currentPeriodIndex], 'status_name', e.value[0].label);
 | 
						||
				}
 | 
						||
				this.statusShow = false
 | 
						||
			},
 | 
						||
			// 课程上架状态
 | 
						||
			shangCancel(e) {
 | 
						||
				this.shangShow = false
 | 
						||
			},
 | 
						||
			shangConfirm(e) {
 | 
						||
				this.form.status = e.value[0].value
 | 
						||
				this.form.status_name = e.value[0].label
 | 
						||
				this.shangShow = false
 | 
						||
			},
 | 
						||
			// 选择课程类型
 | 
						||
			classesCancel(e) {
 | 
						||
				this.classesShow = false
 | 
						||
			},
 | 
						||
			classesConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.classes_type = e.value[0].id
 | 
						||
				this.form.classes = e.value[0].name
 | 
						||
				this.classesShow = false
 | 
						||
			},
 | 
						||
			// 是否热门
 | 
						||
			selfhotCancel(e) {
 | 
						||
				this.selfhotShow = false
 | 
						||
			},
 | 
						||
			selfhotConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.selfhot = e.value[0]
 | 
						||
				this.selfhotShow = false
 | 
						||
			},
 | 
						||
			// 地点类型
 | 
						||
			typeCancel(e) {
 | 
						||
				this.typeShow = false
 | 
						||
			},
 | 
						||
			typeConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.type = e.value[0]
 | 
						||
				this.typeShow = false
 | 
						||
			},
 | 
						||
			// 地址类型
 | 
						||
			address_typeCancel(e) {
 | 
						||
				this.address_typeShow = false
 | 
						||
			},
 | 
						||
			address_typeConfirm(e) {
 | 
						||
				console.log(e.value)
 | 
						||
				this.form.address_type = e.value[0]
 | 
						||
				this.address_typeShow = false
 | 
						||
 | 
						||
				if (e.value[0] == '特定位置授课') {
 | 
						||
					this.localShow = true
 | 
						||
				} else {
 | 
						||
					this.localShow = false
 | 
						||
					this.form.province = ''
 | 
						||
					this.form.city = ''
 | 
						||
					this.form.district = ''
 | 
						||
					this.form.address = ''
 | 
						||
					this.form.address_detail = ''
 | 
						||
					this.form.longitude = ''
 | 
						||
					this.form.latitude = ''
 | 
						||
				}
 | 
						||
			},
 | 
						||
			// 选择时间
 | 
						||
			selctTime(index) {
 | 
						||
				this.currentPeriodIndex = index;
 | 
						||
				this.dateReangeVisible = true;
 | 
						||
			},
 | 
						||
			cancel() {
 | 
						||
				this.dateReangeVisible = false;
 | 
						||
			},
 | 
						||
			sure(res) {
 | 
						||
				const {
 | 
						||
					currentPeriodIndex,
 | 
						||
				} = this;
 | 
						||
				console.log(res)
 | 
						||
				if (currentPeriodIndex !== null) {
 | 
						||
					this.$set(this.formList[currentPeriodIndex], 'start_time', res.startStr);
 | 
						||
					this.$set(this.formList[currentPeriodIndex], 'end_time', res.endStr);
 | 
						||
				}
 | 
						||
				this.dateReangeVisible = false;
 | 
						||
			},
 | 
						||
			dateChange(res) {
 | 
						||
				console.log('---- change ----:', res);
 | 
						||
				this.date = res;
 | 
						||
			},
 | 
						||
			removePeriod(index) {
 | 
						||
				this.formList.splice(index, 1);
 | 
						||
				this.formList[index].visible = false; // 设置 visible 为 false
 | 
						||
			},
 | 
						||
			change(e) {
 | 
						||
				console.log('e:', e);
 | 
						||
			},
 | 
						||
			oversize(e) {
 | 
						||
				this.$u.toast("请传2MB以内大小的图片!");
 | 
						||
				return false;
 | 
						||
			},
 | 
						||
 | 
						||
			// 删除图片
 | 
						||
			deletePic(event) {
 | 
						||
				console.log(event);
 | 
						||
				const {
 | 
						||
					name,
 | 
						||
					index
 | 
						||
				} = event;
 | 
						||
 | 
						||
				if (index >= 0 && index < this[`fileList${name}`].length) {
 | 
						||
					this[`fileList${name}`].splice(index, 1);
 | 
						||
 | 
						||
					// 更新对应的 list 字段
 | 
						||
					// if (name === '1') {
 | 
						||
					// 	this.list1 = this.fileList1.map(item => item.url).join(',');
 | 
						||
					// 	console.log('Updated list1:', this.list1);
 | 
						||
					// } else
 | 
						||
					if (name === '1') {
 | 
						||
						this.list1 = this.fileList1.length > 0 ? this.fileList1[0].url : '';
 | 
						||
						console.log('Updated list1:', this.list1);
 | 
						||
					} else if (name === '2') {
 | 
						||
						this.list2 = this.fileList2.map(item => item.url).join(',');
 | 
						||
						console.log('Updated list2:', this.list2);
 | 
						||
					}
 | 
						||
 | 
						||
					// 确保对应的 list 字段是一个数组
 | 
						||
					let list = this[`list${name}`];
 | 
						||
					if (!Array.isArray(list)) {
 | 
						||
						console.warn(`list${name} is not an array, skipping splice operation`);
 | 
						||
					} else {
 | 
						||
						list.splice(index, 1);
 | 
						||
						console.log(`Updated list${name}:`, list);
 | 
						||
					}
 | 
						||
				} else {
 | 
						||
					console.error('Invalid index');
 | 
						||
				}
 | 
						||
			},
 | 
						||
			// 新增图片
 | 
						||
			async afterRead(event) {
 | 
						||
				let lists = [].concat(event.file);
 | 
						||
				let fileListLen = this[`fileList${event.name}`].length;
 | 
						||
				lists.map((item) => {
 | 
						||
					this[`fileList${event.name}`].push({
 | 
						||
						...item,
 | 
						||
						status: 'uploading',
 | 
						||
						message: '上传中'
 | 
						||
					});
 | 
						||
				});
 | 
						||
				for (let i = 0; i < lists.length; i++) {
 | 
						||
					const result = await this.uploadFilePromise(lists[i].url);
 | 
						||
					let item = this[`fileList${event.name}`][fileListLen];
 | 
						||
					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
 | 
						||
						status: 'success',
 | 
						||
						message: '',
 | 
						||
						url: result
 | 
						||
					}));
 | 
						||
					console.log(this[`fileList${event.name}`], ' this[`fileList${event.name}`]')
 | 
						||
					fileListLen++;
 | 
						||
					// 更新对应的list字段
 | 
						||
					// if (event.name === '1') {
 | 
						||
					// 	console.log(this.fileList1, 'this.fileList1');
 | 
						||
					// 	this.list1 = this.fileList1.map(item => item.url).join(',');
 | 
						||
					// 	console.log(this.list1, 'this.list1');
 | 
						||
					// }
 | 
						||
					if (event.name === '1') {
 | 
						||
						this.list1 = this.fileList1[0]?.url || '';
 | 
						||
					} else if (event.name === '2') {
 | 
						||
						this.list2 = this.fileList2.map(item => item.url).join(',');
 | 
						||
					}
 | 
						||
				}
 | 
						||
			},
 | 
						||
			uploadFilePromise(url) {
 | 
						||
				return new Promise((resolve, reject) => {
 | 
						||
					let a = uni.uploadFile({
 | 
						||
						url: 'https://testy.hschool.com.cn//api/school.worker.common/upload', // 仅为示例,非真实的接口地址
 | 
						||
						filePath: url,
 | 
						||
						name: 'file',
 | 
						||
						formData: {
 | 
						||
							user: 'test'
 | 
						||
						},
 | 
						||
						header: {
 | 
						||
							"token": uni.getStorageSync("token")
 | 
						||
						},
 | 
						||
						success: (res) => {
 | 
						||
							resolve(JSON.parse(res.data).data.fullurl);
 | 
						||
						},
 | 
						||
						fail: (err) => {
 | 
						||
							reject(err);
 | 
						||
						}
 | 
						||
					});
 | 
						||
				});
 | 
						||
			},
 | 
						||
			//确认添加
 | 
						||
			add() {
 | 
						||
				console.log(this.formList)
 | 
						||
				this.formList.forEach(item => {
 | 
						||
					let formattedStartTime, formattedEndTime;
 | 
						||
 | 
						||
					// 处理 start_time
 | 
						||
					if (item.start_time.includes('年')) {
 | 
						||
						const [startYear, startMonth, startDay, startTime] = item.start_time.match(
 | 
						||
							/(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{2}:\d{2})/).slice(1);
 | 
						||
						formattedStartTime =
 | 
						||
							`${startYear}/${startMonth.padStart(2, '0')}/${startDay.padStart(2, '0')} ${startTime}`;
 | 
						||
					} else {
 | 
						||
						const [startYear, startMonth, startDay, startTime] = item.start_time.match(
 | 
						||
							/(\d{4})-(\d{1,2})-(\d{1,2}) (\d{2}:\d{2}):(\d{2})/).slice(1);
 | 
						||
						formattedStartTime =
 | 
						||
							`${startYear}/${startMonth.padStart(2, '0')}/${startDay.padStart(2, '0')} ${startTime}`;
 | 
						||
					}
 | 
						||
 | 
						||
					// 处理 end_time
 | 
						||
					if (item.end_time.includes('年')) {
 | 
						||
						const [endYear, endMonth, endDay, endTime] = item.end_time.match(
 | 
						||
							/(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{2}:\d{2})/).slice(1);
 | 
						||
						formattedEndTime =
 | 
						||
							`${endYear}/${endMonth.padStart(2, '0')}/${endDay.padStart(2, '0')} ${endTime}`;
 | 
						||
					} else {
 | 
						||
						const [endYear, endMonth, endDay, endTime] = item.end_time.match(
 | 
						||
							/(\d{4})-(\d{1,2})-(\d{1,2}) (\d{2}:\d{2}):(\d{2})/).slice(1);
 | 
						||
						formattedEndTime =
 | 
						||
							`${endYear}/${endMonth.padStart(2, '0')}/${endDay.padStart(2, '0')} ${endTime}`;
 | 
						||
					}
 | 
						||
 | 
						||
					// 拼接成新的 time 字段
 | 
						||
					item.time = `${formattedStartTime} - ${formattedEndTime}`;
 | 
						||
				});
 | 
						||
				
 | 
						||
				let params = {}
 | 
						||
				let url = ''
 | 
						||
				if (this.disable) {
 | 
						||
					url = '/api/school.worker.classes/add'
 | 
						||
					params = {
 | 
						||
						classes_num: this.form.classes_num,
 | 
						||
						status: this.form.status,
 | 
						||
						teacher_id: this.form.teacher_id,
 | 
						||
						classes_type: this.form.classes_type,
 | 
						||
						classes_cate_ids: this.form.classes_cate_ids.join(','),
 | 
						||
						classes_label_ids: this.form.classes_label_ids.join(','),
 | 
						||
						self_label_tag: this.form.self_label_tag,
 | 
						||
						title: this.form.title,
 | 
						||
						headimage: this.list1,
 | 
						||
						images: this.list2,
 | 
						||
						type: this.form.type == '室内' ? 'in' : 'out',
 | 
						||
						// weigh:0,
 | 
						||
						address_type: this.form.address_type == '机构内授课' ? 1 : 2,
 | 
						||
						province: '410000',
 | 
						||
						city: '410300',
 | 
						||
						content: this.form.content,
 | 
						||
						notice: this.form.notice,
 | 
						||
						price: this.form.price,
 | 
						||
						selfhot: this.form.selfhot == '是' ? '1' : 0,
 | 
						||
						address_detail: this.form.address_detail,
 | 
						||
						address: this.form.address,
 | 
						||
						longitude: this.form.longitude,
 | 
						||
						latitude: this.form.latitude,
 | 
						||
						spec: JSON.stringify(this.formList),
 | 
						||
						district: this.form.district,
 | 
						||
					}
 | 
						||
				} else {
 | 
						||
					url = '/api/school.worker.classes/edit'
 | 
						||
					params = {
 | 
						||
						id: this.form.id,
 | 
						||
						classes_num: this.form.classes_num,
 | 
						||
						status: this.form.status,
 | 
						||
						teacher_id: this.form.teacher_id,
 | 
						||
						classes_type: this.form.classes_type,
 | 
						||
						classes_cate_ids: this.form.classes_cate_ids.join(','),
 | 
						||
						classes_label_ids: this.form.classes_label_ids.join(','),
 | 
						||
						self_label_tag: this.form.self_label_tag,
 | 
						||
						title: this.form.title,
 | 
						||
						headimage: this.list1,
 | 
						||
						images: this.list2,
 | 
						||
						type: this.form.type == '室内' ? 'in' : 'out',
 | 
						||
						// weigh:0,
 | 
						||
						address_type: this.form.address_type == '机构内授课' ? 1 : 2,
 | 
						||
						province: '410000',
 | 
						||
						city: '410300',
 | 
						||
						content: this.form.content,
 | 
						||
						notice: this.form.notice,
 | 
						||
						price: this.form.price,
 | 
						||
						selfhot: this.form.selfhot == '是' ? '1' : 0,
 | 
						||
						address_detail: this.form.address_detail,
 | 
						||
						address: this.form.address,
 | 
						||
						longitude: this.form.longitude,
 | 
						||
						latitude: this.form.latitude,
 | 
						||
						spec: JSON.stringify(this.formList),
 | 
						||
						district: this.form.district,
 | 
						||
					}
 | 
						||
					
 | 
						||
				}
 | 
						||
				
 | 
						||
				uni.$u.http.post(url, params).then(res => {
 | 
						||
					if (res.code == 1) {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000,
 | 
						||
							complete: function() {
 | 
						||
								setTimeout(function() {
 | 
						||
									uni.navigateBack(1)
 | 
						||
								}, 2000);
 | 
						||
							}
 | 
						||
						});
 | 
						||
					} else {
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none',
 | 
						||
							duration: 2000
 | 
						||
						});
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					console.error('请求失败', error);
 | 
						||
				});
 | 
						||
			}
 | 
						||
		}
 | 
						||
	}
 | 
						||
</script>
 | 
						||
 | 
						||
<style lang="scss" scoped>
 | 
						||
	.w-100 {
 | 
						||
		width: 100%;
 | 
						||
	}
 | 
						||
 | 
						||
	.flex {
 | 
						||
		display: flex;
 | 
						||
	}
 | 
						||
 | 
						||
	.flex-start {
 | 
						||
		align-items: flex-start;
 | 
						||
	}
 | 
						||
 | 
						||
	.justify-center {
 | 
						||
		justify-content: center;
 | 
						||
	}
 | 
						||
 | 
						||
	.align-items {
 | 
						||
		align-items: center;
 | 
						||
	}
 | 
						||
 | 
						||
	.flex-column {
 | 
						||
		flex-flow: column;
 | 
						||
	}
 | 
						||
 | 
						||
	.justify-start {
 | 
						||
		justify-content: start;
 | 
						||
	}
 | 
						||
 | 
						||
	.line {
 | 
						||
		margin-top: 12rpx;
 | 
						||
		width: 690rpx;
 | 
						||
		height: 1rpx;
 | 
						||
		background: #008CFF;
 | 
						||
		border-radius: 0rpx 0rpx 0rpx 0rpx;
 | 
						||
	}
 | 
						||
 | 
						||
	.hui {
 | 
						||
		font-family: PingFang SC, PingFang SC;
 | 
						||
		font-weight: 500;
 | 
						||
		font-size: 28rpx;
 | 
						||
		color: #343434;
 | 
						||
	}
 | 
						||
 | 
						||
	.box {
 | 
						||
		width: 750rpx;
 | 
						||
		background-color: #F1F2F8;
 | 
						||
 | 
						||
		.first {
 | 
						||
			width: 642rpx;
 | 
						||
			padding: 32rpx 24rpx 24rpx 24rpx;
 | 
						||
			background: #FFFFFF;
 | 
						||
			border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
						||
			margin-top: 42rpx;
 | 
						||
 | 
						||
			.row {
 | 
						||
				width: 642rpx;
 | 
						||
				margin-top: 7rpx;
 | 
						||
				justify-content: space-between;
 | 
						||
 | 
						||
				.label {
 | 
						||
					font-family: PingFang SC, PingFang SC;
 | 
						||
					font-weight: 500;
 | 
						||
					font-size: 28rpx;
 | 
						||
					color: #343434;
 | 
						||
					line-height: 32rpx;
 | 
						||
				}
 | 
						||
 | 
						||
				.row-right {}
 | 
						||
			}
 | 
						||
 | 
						||
			.line-row {
 | 
						||
				margin-top: 25rpx;
 | 
						||
				width: 642rpx;
 | 
						||
				height: 1rpx;
 | 
						||
				background: #F1F2F8;
 | 
						||
				border-radius: 0rpx 0rpx 0rpx 0rpx;
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
	}
 | 
						||
 | 
						||
	.second {
 | 
						||
		margin-top: 42rpx;
 | 
						||
		width: 642rpx;
 | 
						||
		padding: 32rpx 24rpx;
 | 
						||
		background: #FFFFFF;
 | 
						||
		border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
						||
 | 
						||
		.se-title {
 | 
						||
			font-family: PingFang SC, PingFang SC;
 | 
						||
			font-weight: 500;
 | 
						||
			font-size: 42rpx;
 | 
						||
			color: #343434;
 | 
						||
			align-self: self-start;
 | 
						||
		}
 | 
						||
 | 
						||
		.secondList {
 | 
						||
			margin-top: 49rpx;
 | 
						||
 | 
						||
			.content {
 | 
						||
				width: 588rpx;
 | 
						||
				border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
						||
				border: 1rpx solid #C0C0C0;
 | 
						||
				padding: 32rpx 24rpx 24rpx 24rpx;
 | 
						||
				margin-bottom: 42rpx;
 | 
						||
 | 
						||
				.row {
 | 
						||
					width: 100%;
 | 
						||
					margin-top: 7rpx;
 | 
						||
					justify-content: space-between;
 | 
						||
 | 
						||
					.label {
 | 
						||
						font-family: PingFang SC, PingFang SC;
 | 
						||
						font-weight: 500;
 | 
						||
						font-size: 28rpx;
 | 
						||
						color: #343434;
 | 
						||
						line-height: 32rpx;
 | 
						||
					}
 | 
						||
 | 
						||
					.row-right {}
 | 
						||
				}
 | 
						||
 | 
						||
				.line-row {
 | 
						||
					margin-top: 25rpx;
 | 
						||
					width: 642rpx;
 | 
						||
					height: 1rpx;
 | 
						||
					background: #F1F2F8;
 | 
						||
					border-radius: 0rpx 0rpx 0rpx 0rpx;
 | 
						||
				}
 | 
						||
 | 
						||
				.del {
 | 
						||
					width: 588rpx;
 | 
						||
					height: 80rpx;
 | 
						||
					border-radius: 401rpx 401rpx 401rpx 401rpx;
 | 
						||
					border: 2rpx solid #FF6767;
 | 
						||
					font-family: PingFang SC, PingFang SC;
 | 
						||
					font-weight: 800;
 | 
						||
					font-size: 34rpx;
 | 
						||
					color: #FF6767;
 | 
						||
					letter-spacing: 28rpx;
 | 
						||
					margin-top: 75rpx;
 | 
						||
					display: flex;
 | 
						||
					justify-content: center;
 | 
						||
					align-items: center;
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		.add {
 | 
						||
			width: 642rpx;
 | 
						||
			height: 80rpx;
 | 
						||
			background: #008CFF;
 | 
						||
			border-radius: 401rpx 401rpx 401rpx 401rpx;
 | 
						||
			font-family: PingFang SC, PingFang SC;
 | 
						||
			font-weight: 800;
 | 
						||
			font-size: 34rpx;
 | 
						||
			color: #FFFFFF;
 | 
						||
			letter-spacing: 28rpx;
 | 
						||
			display: flex;
 | 
						||
			justify-content: center;
 | 
						||
			align-items: center;
 | 
						||
		}
 | 
						||
 | 
						||
	}
 | 
						||
 | 
						||
	.trend {
 | 
						||
		width: 642rpx;
 | 
						||
		padding: 32rpx 24rpx 24rpx 24rpx;
 | 
						||
		margin-top: 42rpx;
 | 
						||
		background: #FFFFFF;
 | 
						||
		border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
						||
		font-family: PingFang SC, PingFang SC;
 | 
						||
		font-weight: 500;
 | 
						||
		font-size: 28rpx;
 | 
						||
		color: #343434;
 | 
						||
 | 
						||
		.row {
 | 
						||
			width: 100%;
 | 
						||
			// margin-top: 7rpx;
 | 
						||
			justify-content: space-between;
 | 
						||
 | 
						||
			.label {
 | 
						||
				font-family: PingFang SC, PingFang SC;
 | 
						||
				font-weight: 500;
 | 
						||
				font-size: 28rpx;
 | 
						||
				color: #343434;
 | 
						||
				line-height: 32rpx;
 | 
						||
			}
 | 
						||
 | 
						||
			.row-right {}
 | 
						||
		}
 | 
						||
	}
 | 
						||
 | 
						||
	.four {
 | 
						||
		width: 642rpx;
 | 
						||
		padding: 32rpx 24rpx;
 | 
						||
		background: #FFFFFF;
 | 
						||
		border-radius: 20rpx 20rpx 20rpx 20rpx;
 | 
						||
		margin-top: 32rpx;
 | 
						||
 | 
						||
		.class_type {
 | 
						||
			font-family: PingFang SC, PingFang SC;
 | 
						||
			font-weight: 500;
 | 
						||
			font-size: 28rpx;
 | 
						||
			color: #343434;
 | 
						||
			display: flex;
 | 
						||
			align-self: self-start;
 | 
						||
		}
 | 
						||
 | 
						||
		.line-row {
 | 
						||
			margin-top: 25rpx;
 | 
						||
			width: 642rpx;
 | 
						||
			height: 1rpx;
 | 
						||
			background: #F1F2F8;
 | 
						||
			border-radius: 0rpx 0rpx 0rpx 0rpx;
 | 
						||
		}
 | 
						||
	}
 | 
						||
 | 
						||
	.third {
 | 
						||
		width: 690rpx;
 | 
						||
 | 
						||
		.header {
 | 
						||
			margin: 42rpx 0 24rpx 0;
 | 
						||
 | 
						||
			.swiper {
 | 
						||
				font-family: PingFang SC, PingFang SC;
 | 
						||
				font-weight: 500;
 | 
						||
				font-size: 28rpx;
 | 
						||
				color: #343434;
 | 
						||
			}
 | 
						||
 | 
						||
			.tips {
 | 
						||
				font-family: PingFang SC, PingFang SC;
 | 
						||
				font-weight: 500;
 | 
						||
				font-size: 24rpx;
 | 
						||
				color: #C0C0C0;
 | 
						||
				margin-top: 8rpx;
 | 
						||
			}
 | 
						||
 | 
						||
		}
 | 
						||
	}
 | 
						||
 | 
						||
	.footer {
 | 
						||
		position: fixed;
 | 
						||
		bottom: 0;
 | 
						||
		width: 750rpx;
 | 
						||
		height: 122rpx;
 | 
						||
		z-index: 99;
 | 
						||
		background: #FFFFFF;
 | 
						||
		box-shadow: 0rpx -6rpx 12rpx 0rpx rgba(111, 190, 255, 0.1);
 | 
						||
 | 
						||
		span {
 | 
						||
			width: 306rpx;
 | 
						||
			height: 80rpx;
 | 
						||
 | 
						||
		}
 | 
						||
 | 
						||
		.cancel {
 | 
						||
			border-radius: 401rpx 401rpx 401rpx 401rpx;
 | 
						||
			border: 2rpx solid #008CFF;
 | 
						||
			font-family: PingFang SC, PingFang SC;
 | 
						||
			font-weight: 800;
 | 
						||
			font-size: 34rpx;
 | 
						||
			color: #008CFF;
 | 
						||
			letter-spacing: 28rpx;
 | 
						||
		}
 | 
						||
 | 
						||
		.pass {
 | 
						||
			background: #008CFF;
 | 
						||
			border-radius: 401rpx 401rpx 401rpx 401rpx;
 | 
						||
			font-family: PingFang SC, PingFang SC;
 | 
						||
			font-weight: 800;
 | 
						||
			font-size: 34rpx;
 | 
						||
			color: #FFFFFF;
 | 
						||
			letter-spacing: 28rpx;
 | 
						||
		}
 | 
						||
	}
 | 
						||
 | 
						||
	.input {
 | 
						||
		text-align: right;
 | 
						||
		font-family: PingFang SC, PingFang SC;
 | 
						||
		font-size: 28rpx;
 | 
						||
		color: #343434;
 | 
						||
		line-height: 32rpx;
 | 
						||
	}
 | 
						||
 | 
						||
	/deep/.plasty {
 | 
						||
		text-align: right;
 | 
						||
		font-family: PingFang SC, PingFang SC;
 | 
						||
		font-size: 28rpx;
 | 
						||
	}
 | 
						||
</style> |