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> |