unknown
1 year ago
14 changed files with 486 additions and 60 deletions
-
6common/js/mixins.js
-
32config/api.js
-
8config/request.js
-
4config/site.config.js
-
2manifest.json
-
11pages.json
-
27pages/login/login.vue
-
4pages/other/webView/webView.vue
-
51pages/recordEntry/operate/mySchedule/mould/mould.vue
-
236pages/recordEntry/operate/mySchedule/mouldEdit/mouldAdd.vue
-
93pages/recordEntry/operate/mySchedule/mouldEdit/mouldEdit.vue
-
17pages/recordEntry/operate/mySchedule/mySchedule.vue
-
43pages/recordEntry/operate/mySchedule/plan/plan.vue
-
10pages/tabbar/operateTrain/index.vue
@ -1,8 +1,8 @@ |
|||||
const VUE_APP_PLATFORM = process.env.VUE_APP_PLATFORM; |
const VUE_APP_PLATFORM = process.env.VUE_APP_PLATFORM; |
||||
// localIp = false
|
// localIp = false
|
||||
module.exports = { |
module.exports = { |
||||
H5_API: VUE_APP_PLATFORM === 'h5' ? '/api/' : '',//h5代理
|
|
||||
WX_API: VUE_APP_PLATFORM === 'h5' ? '' : 'http://192.168.1.26:48082/',//非代理地址
|
|
||||
|
H5_API: VUE_APP_PLATFORM === 'h5' ? '/api' : '',//h5代理
|
||||
|
WX_API: VUE_APP_PLATFORM === 'h5' ? '' : 'http://192.168.1.39:48080/',//非代理地址
|
||||
TEMP_HOST: VUE_APP_PLATFORM === 'h5' ? '' : 'http://192.168.1.26:48082/', |
TEMP_HOST: VUE_APP_PLATFORM === 'h5' ? '' : 'http://192.168.1.26:48082/', |
||||
httpPrefix: 'admin-api/', |
httpPrefix: 'admin-api/', |
||||
imgUrl: 'http://jxtemp.oss-cn-hangzhou.aliyuncs.com/defaultImages/admin/bigImg/' |
imgUrl: 'http://jxtemp.oss-cn-hangzhou.aliyuncs.com/defaultImages/admin/bigImg/' |
||||
|
@ -0,0 +1,236 @@ |
|||||
|
<template> |
||||
|
<view class="pageBgImg"> |
||||
|
<topNavbar title="编辑排课模版"></topNavbar> |
||||
|
<view class="pad"> |
||||
|
<view class="card"> |
||||
|
<view class="tit flex"> |
||||
|
<view class="lab">模板标题</view> |
||||
|
<view class="inputBox my"> |
||||
|
<u--input placeholder="请输入内容" border="none" v-model="FormData.templateName" ></u--input> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
<view class="card timeCon" v-for="(item,index) in FormData.scheduleClassTemplateDetailList"> |
||||
|
<view class="deleteIcon" @click="deleteFn(item.id)" v-if="FormData.scheduleClassTemplateDetailList.length>1"> |
||||
|
<u-icon name="close-circle-fill" color="#ADADAD" size="22"></u-icon> |
||||
|
</view> |
||||
|
<view class="row"> |
||||
|
<view class="lab">选择时间段</view> |
||||
|
<view class="flex"> |
||||
|
<view class="timeTag" @click="showTime(index,'startTime')"> |
||||
|
<mySelect :value="item.startTime" placeholder="开始时间"></mySelect> |
||||
|
</view> |
||||
|
<view class="line"></view> |
||||
|
<view class="timeTag" @click.capture="showTime(index,'endTime')"> |
||||
|
<mySelect :value="item.endTime" placeholder="结束时间"></mySelect> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="row"> |
||||
|
<view class="lab">选择人数</view> |
||||
|
<view class="numBox"> |
||||
|
<u-number-box v-model="item.personCount" :max="10"></u-number-box> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
<view class="add" @click="$u.throttle(addFn, 500)"> |
||||
|
<view class="addIcon"> |
||||
|
<image src="@/static/images/coach/tianjia.png" mode=""></image> |
||||
|
</view> |
||||
|
<view class="text">添加</view> |
||||
|
</view> |
||||
|
|
||||
|
<view class="btnBg" @click="$u.throttle(getClassCreateFn, 500)">保存为模板</view> |
||||
|
</view> |
||||
|
|
||||
|
<u-datetime-picker |
||||
|
:show="show" |
||||
|
v-model="value1" |
||||
|
mode="time" |
||||
|
:minHour="datePicker.minHour" |
||||
|
:maxHour="datePicker.maxHour" |
||||
|
:minMinute="datePicker.minMinute" |
||||
|
:maxMinute="datePicker.maxMinute" |
||||
|
@confirm="confirmTime" |
||||
|
></u-datetime-picker> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { getClassCreate, getClassTimeLimt } from '@/config/api.js' |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
datePicker: { |
||||
|
minHour: 0, |
||||
|
maxHour: 0, |
||||
|
maxMinute: 59, |
||||
|
minMinute: 0 |
||||
|
}, |
||||
|
FormData: {}, |
||||
|
show: false, |
||||
|
value1: '', |
||||
|
tempDateObj: {},//选择日期的临时保存对象 |
||||
|
} |
||||
|
}, |
||||
|
onLoad() { |
||||
|
this.initFormData() |
||||
|
this.getClassTimeLimtFn() |
||||
|
}, |
||||
|
methods: { |
||||
|
initFormData() { |
||||
|
this.FormData = { |
||||
|
templateName: '', |
||||
|
scheduleClassTemplateDetailList: [ |
||||
|
{startTime: '',endTime: '', personCount: 1, id: new Date() * 1} |
||||
|
]} |
||||
|
this.FormData.coachId = this.vuex_coachId |
||||
|
this.FormData.deptId = this.vuex_deptId |
||||
|
}, |
||||
|
// 获取最小时间段 |
||||
|
async getClassTimeLimtFn() { |
||||
|
const {data: res} = await getClassTimeLimt({ coachId: this.vuex_coachId}) |
||||
|
this.datePicker.minHour = res.currentClassStartTime.split(':')[0]*1 |
||||
|
this.datePicker.maxHour = res.currentClassEndTime.split(':')[0]*1 |
||||
|
console.log(this.datePicker) |
||||
|
}, |
||||
|
// 创建模版 |
||||
|
async getClassCreateFn() { |
||||
|
this.FormData.scheduleClassTemplateDetailList.forEach((item)=>{ |
||||
|
|
||||
|
}) |
||||
|
for(let i=0; i<this.FormData.scheduleClassTemplateDetailList.length; i++) { |
||||
|
let item = this.FormData.scheduleClassTemplateDetailList[i] |
||||
|
if(!item.endTime||!item.startTime||!item.personCount) |
||||
|
return this.$u.toast('请输入完整的信息') |
||||
|
} |
||||
|
const {data: res} = await getClassCreate(this.FormData) |
||||
|
if(res) this.$u.toast('创建成功') |
||||
|
this.initFormData() |
||||
|
}, |
||||
|
addFn() { |
||||
|
let obj = {startTime: '',endTime: '', people: 1, id: new Date() * 1} |
||||
|
this.FormData.scheduleClassTemplateDetailList.push(obj) |
||||
|
}, |
||||
|
deleteFn(id) { |
||||
|
let arr = this.FormData.scheduleClassTemplateDetailList |
||||
|
if(arr.length==1) return |
||||
|
let index = arr.findIndex(item=>item.id==id) |
||||
|
if(index==-1) return |
||||
|
arr.splice(index, 1) |
||||
|
}, |
||||
|
confirmTime(val) { |
||||
|
this.FormData.scheduleClassTemplateDetailList[this.tempDateObj.index][this.tempDateObj.name] = val.value |
||||
|
console.log(val.value) |
||||
|
this.show = false |
||||
|
|
||||
|
}, |
||||
|
showTime(index, name) { |
||||
|
this.tempDateObj = { |
||||
|
index, name |
||||
|
} |
||||
|
this.show = true |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.pageBgImg { |
||||
|
.pad { |
||||
|
.card { |
||||
|
padding: 0 28rpx; |
||||
|
margin-bottom: 20rpx; |
||||
|
&.timeCon { |
||||
|
padding: 28rpx; |
||||
|
} |
||||
|
.tit { |
||||
|
height: 96rpx; |
||||
|
background: #FFFFFF; |
||||
|
border-radius: 16px; |
||||
|
.lab { |
||||
|
width: 172rpx; |
||||
|
font-weight: 500; |
||||
|
color: #333333; |
||||
|
} |
||||
|
|
||||
|
.inputBox.my { |
||||
|
flex: 1; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.card { |
||||
|
position: relative; |
||||
|
.deleteIcon { |
||||
|
position: absolute; |
||||
|
right: 20rpx; |
||||
|
top: 20rpx |
||||
|
} |
||||
|
|
||||
|
.row { |
||||
|
padding: 12rpx 0; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
.lab { |
||||
|
font-size: 30rpx; |
||||
|
width: 172rpx; |
||||
|
|
||||
|
flex-shrink: 0; |
||||
|
} |
||||
|
|
||||
|
.flex { |
||||
|
.timeTag { |
||||
|
// padding: 8rpx 14rpx; |
||||
|
background: #F8F8F8; |
||||
|
border-radius: 34rpx; |
||||
|
width: 150rpx; |
||||
|
text-align: center; |
||||
|
height: 52rpx; |
||||
|
line-height: 52rpx; |
||||
|
// width:fit-content; |
||||
|
input { |
||||
|
display: block; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
font-size: 26rpx; |
||||
|
color: #333333; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.line { |
||||
|
width: 26rpx; |
||||
|
height: 2rpx; |
||||
|
background: #DADADA; |
||||
|
margin: 0 14rpx; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.add { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
padding-top: 20rpx; |
||||
|
.addIcon { |
||||
|
width: 36rpx; |
||||
|
height: 36rpx; |
||||
|
} |
||||
|
|
||||
|
.text { |
||||
|
font-size: 28rpx; |
||||
|
color: $themC; |
||||
|
margin-left: 10rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.btnBg { |
||||
|
width: 396rpx; |
||||
|
margin: 96rpx auto 20rpx auto; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue