Browse Source

实操预约

master
unknown 11 months ago
parent
commit
52fa595896
  1. 1
      common/js/mixins.js
  2. 35
      components/appointItem-student/appointItem-student.vue
  3. 13
      config/api.js
  4. 2
      manifest.json
  5. 0
      pages/recordEntry/operate/mySchedule/comp/pickDateTimer/pickDateTimer - 副本.vue
  6. 17
      pages/recordEntry/operate/mySchedule/comp/pickDateTimer/pickDateTimer.vue
  7. 2
      pages/recordEntry/operate/mySchedule/mouldEdit/mouldAdd.vue
  8. 4
      pages/recordEntry/operate/mySchedule/mySchedule.vue
  9. 36
      pages/recordEntry/student/studentDetail/comp/info.vue
  10. 8
      pages/recordEntry/student/studentDetail/studentDetail.vue
  11. 42
      pages/tabbar/student/index.vue
  12. 32
      pages/userCenter/myCar/myCar.vue

1
common/js/mixins.js

@ -9,6 +9,7 @@ export default {
vuex_userInfo: state=>state.user.vuex_userInfo,
vuex_deptId: state=>state.user.vuex_userInfo.user.deptId,
vuex_coachId: state=>state.user.vuex_userInfo.user.coachId,
vuex_loginInfo: state=>state.user.vuex_loginInfo,
}),
},

35
components/appointItem-student/appointItem-student.vue

@ -3,7 +3,7 @@
<view class="consultItem">
<view class="top_row">
<view class="flex">
<view class="schoolName">张三三 18265468753</view>
<view class="schoolName">{{item.name}} <text style="margin-left: 10rpx;">{{item.phone}}</text></view>
</view>
<view class="status">
<!-- <view class="text">待上课</view> -->
@ -15,27 +15,27 @@
<view class="target">
<view class="row">
<view class="iconImg">
<image src="@/static/images/index/radio_nor.png" mode=""></image>
<image src="@/static/images/index/timerIcon.png" mode=""></image>
</view>
<view class="name">报名时间2023/08/08</view>
<view class="name">报名时间{{$u.timeFormat(item.applyDate, 'yyyy/mm/dd')}}</view>
</view>
<view class="row">
<view class="iconImg">
<image src="@/static/images/index/radio_nor.png" mode=""></image>
<image src="@/static/images/index/carIcon.png" mode=""></image>
</view>
<view class="name">学驾车型C1小型汽车手动挡</view>
<view class="name">学驾车型{{item.trainType}}</view>
</view>
<view class="row">
<view class="iconImg">
<image src="@/static/images/index/radio_nor.png" mode=""></image>
<image src="@/static/images/index/listIcon.png" mode=""></image>
</view>
<view class="name">报名班型C1一对一VIP班</view>
<view class="name">报名班型{{item.className}}</view>
</view>
<view class="row">
<view class="iconImg">
<image src="@/static/images/index/radio_nor.png" mode=""></image>
</view>
<view class="name">最新状态<text>科目三理论考试已预约</text> </view>
<view class="name">最新状态<text>就先放着不做</text> </view>
</view>
</view>
@ -43,6 +43,21 @@
</template>
<script>
export default {
props: {
item: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
}
}
}
</script>
<style lang="scss" scoped>
@ -89,8 +104,8 @@
display: flex;
align-items: center;
.iconImg {
width: 25rpx;
height: 25rpx;
width: 32rpx;
height: 28rpx;
}
.name {
font-size: 28rpx;

13
config/api.js

@ -42,6 +42,19 @@ export const scheduleTemplateGet = (params) => http.get('business/booking/schedu
export const trainingSiteList = (params) => http.get('business/training-site/list', {params} ,)
// 获得考场模拟预约记录分页
export const examSimulationPages = (params) => http.get('business/exam-simulation-record/page', {params} ,)
// 已报名学员
export const studentRecordPage = (params) => http.get('business/student-record/page', {params} ,)
// 驾校班型
export const schoolClass = (params) => http.get('business/school-class/get', {params} ,)
// 获得学员档案记录
export const studentDetail = (params) => http.get('business/student-record/getStudent', {params} ,)
// 获得教练车信息分页
export const carPage = (params) => http.get('business/car/page', {params} ,)

2
manifest.json

@ -82,7 +82,7 @@
"disableHostCheck" : true,
"proxy" : {
"/api" : {
"target" : "http://192.168.1.39:48080/",
"target" : "http://192.168.1.36:48080/",
"changeOrigin" : true,
"secure" : true,
"pathRewrite" : {

0
components/pickDateTimer/pickDateTimer - 副本.vue → pages/recordEntry/operate/mySchedule/comp/pickDateTimer/pickDateTimer - 副本.vue

17
components/pickDateTimer/pickDateTimer.vue → pages/recordEntry/operate/mySchedule/comp/pickDateTimer/pickDateTimer.vue

@ -29,8 +29,8 @@
</view>
<view class="card">
<view class="timeCon">
<view class="h2">上午</view>
<view class="timeCon"v-if="timerArr.length||timerArr2.length">
<view class="h2" v-if="timerArr.length">上午</view>
<view class="time_box">
<view class="time_item" v-for="(item,index) in timerArr" :key="index" @click="chooseCourse(item)" :class="{active: courseIds.indexOf(item.classTime)!=-1, disable: item.status==2}" >
<view class="flex" v-if="item.status==0">
@ -43,7 +43,7 @@
<view class="time">{{ item.classTime }}</view>
</view>
</view>
<view class="h2">下午</view>
<view class="h2" v-if="timerArr2.length">下午</view>
<view class="time_box">
<view class="time_item" v-for="(item,index) in timerArr2" :key="index" @click="chooseCourse(item)" :class="{active: courseIds.indexOf(item.classTime)!=-1, disable: item.status==2}">
<view class="flex" v-if="item.status==0">
@ -57,13 +57,9 @@
</view>
</view>
</view>
<view class="noDate" v-else>暂无当日计划</view>
</view>
<view class="card">
<view class="noDate">
<image src="http://192.168.1.20:81/zhili/image/20230927/ad178ebdf5394518b27b020c03ee48ab.png" mode=""></image>
</view>
</view>
<view class="step2" v-if="step==2">
<view class="">
@ -470,4 +466,9 @@
width: 310rpx;
}
}
.noDate {
line-height: 200rpx;
text-align: center;
font-size: 28rpx;
}
</style>

2
pages/recordEntry/operate/mySchedule/mouldEdit/mouldAdd.vue

@ -115,7 +115,7 @@
// this.initFormData()
},
addFn() {
let obj = {startTime: '',endTime: '', people: 1, id: new Date() * 1}
let obj = {startTime: '',endTime: '', personCount: 1, id: new Date() * 1}
this.FormData.scheduleClassTemplateDetailList.push(obj)
},
deleteFn(id) {

4
pages/recordEntry/operate/mySchedule/mySchedule.vue

@ -25,9 +25,10 @@
<script>
import mySchedulePopup from './comp/mySchedulePopup'
import pickDateTimer from './comp/pickDateTimer/pickDateTimer'
import { scheduleClassGetById, scheduleClassGet, scheduleClassCreateByTime } from '@/config/api.js'
export default {
components: { mySchedulePopup },
components: { mySchedulePopup,pickDateTimer },
data() {
return {
show: false,
@ -73,6 +74,7 @@
obj.coachId = this.vuex_coachId
const res = await scheduleClassCreateByTime(Object.assign(this.pickDate, obj))
if(res.code==0) this.$u.toast('发布排课成功')
this.$refs.pickDateRef.courseIds = []
// uni.$emit('refreshMySchedule')
this.step = 1
this.$refs.pickDateRef.scheduleClassGetFn()

36
pages/recordEntry/student/studentDetail/comp/info.vue

@ -3,31 +3,31 @@
<view class="card">
<view class="li">
<view class="val">真实姓名</view>
<view class="lab">xxx</view>
<view class="lab">{{info.name}}</view>
</view>
<view class="li">
<view class="val">性别</view>
<view class="lab">xxx</view>
<view class="lab">{{info.sex==1?'男':'女'}}</view>
</view>
<view class="li">
<view class="val">驾名名称</view>
<view class="lab">xxx</view>
<view class="lab">{{info.schoolName}}</view>
</view>
<view class="li">
<view class="val">学车类型</view>
<view class="lab">xxx</view>
<view class="lab">{{info.trainType}}</view>
</view>
<view class="li">
<view class="val">学车班型</view>
<view class="lab">xxx</view>
<view class="lab">{{info.a}}</view>
</view>
<view class="li">
<view class="val">学车教练</view>
<view class="lab">xxx</view>
<view class="lab">{{info.coachName}}</view>
</view>
<view class="li">
<view class="val">业务类型</view>
<view class="lab">xxx</view>
<view class="lab">{{info.businessType==0?'初领':info.businessType==1?'增加':'其它'}}</view>
</view>
<view class="li">
<view class="val">是否异地转入</view>
@ -41,10 +41,6 @@
<view class="lab">xxx</view>
</view>
<view class="li">
<view class="val">性别</view>
<view class="lab">xxx</view>
</view>
<view class="li">
<view class="val">报名渠道</view>
<view class="lab">xxx</view>
</view>
@ -82,6 +78,24 @@
</template>
<script>
import { studentDetail } from '@/config/api.js'
export default {
props: ['id'],
data() {
return {
info: {}
}
},
mounted() {
this.studentDetailFn()
},
methods: {
async studentDetailFn() {
const {data: res} = await studentDetail({id: this.id, userId: this.vuex_loginInfo.userId})
this.info = res
}
}
}
</script>
<style lang="scss" scoped>

8
pages/recordEntry/student/studentDetail/studentDetail.vue

@ -12,7 +12,7 @@
<list></list>
</view>
<view class="con" v-else>
<info/>
<info :id="studentId"/>
</view>
</view>
</view>
@ -67,9 +67,13 @@
text: '个人及报名信息',
id: 2
},
]
],
studentId: ''
}
},
onLoad(options) {
this.studentId = options.id
},
methods: {
changeTab(id) {
this.currentTab = id

42
pages/tabbar/student/index.vue

@ -76,8 +76,8 @@
</view>
<view class="list">
<view class="card" @click="$goPage('/pages/recordEntry/student/studentDetail/studentDetail')">
<appointItem-student/>
<view class="card" @click="$goPage('/pages/recordEntry/student/studentDetail/studentDetail?id='+item.id)" v-for="(item,index) in list" :key="index">
<appointItem-student :item="item"/>
</view>
</view>
<UserTab name ='学员'></UserTab>
@ -85,9 +85,11 @@
<u-datetime-picker
:show="showDatePicker"
mode="date"
:minDate="1669341725000"
:visibleItemCount="4"
:closeOnClickOverlay="false"
@confirm="confirmDatePicker"
@cancel="showDatePicker=false"
></u-datetime-picker>
<u-picker :show="showCar" :columns="carArr" keyName="lab" @confirm="confirmCar" @cancel="showCar=false"></u-picker>
@ -97,6 +99,7 @@
<script>
import { imgUrl } from '@/config/site.config'
import { studentRecordPage, schoolClass } from '@/config/api.js'
import topUserInfo from '../statistics/comp/topUserInfo.vue'
export default {
components: { topUserInfo },
@ -124,28 +127,52 @@
{lab: 'C2vip',id: 2},
]
],
params: {
"pageNo": 1, "pageSize": 10, status: 1, trainType: ''
},
total: 20,
list: []
}
},
onShow() {
uni.hideTabBar();
},
onLoad() {
this.studentRecordPageFn()
this.schoolClassFn()
},
methods: {
confirmDatePicker(val) {
this.showDatePicker = false
console.log(val)
console.log(uni.$u.date(val.value, 'yyyy-mm-dd'))
this.screen.timer = uni.$u.date(val.value, 'yyyy-mm-dd')
console.log(this.screen.timer)
this.params.applyDate = this.screen.timer = uni.$u.date(val.value, 'yyyy-mm-dd')
this.listInit()
},
confirmCar(val) {
let item = val.value[0]
this.screen.car = item.lab
this.params.trainType = this.screen.car = item.lab
this.showCar = false
this.listInit()
},
confirmClass(val) {
let item = val.value[0]
this.screen.className = item.lab
this.params.schoolClassId = item.id
this.showClass = false
this.listInit()
},
//
async schoolClass() {
const {data: res} = await schoolClass({id: this.vuex_userInfo.shoolId})
},
listInit() {
this.params.pageNo = 1
this.list = []
this.studentRecordPageFn()
},
async studentRecordPageFn() {
const {data: res} = await studentRecordPage(this.params)
this.list.push(...res.list)
this.total = res.total
}
}
}
@ -154,6 +181,7 @@
<style lang="scss" scoped>
.pad {
min-height: 100vh;
padding-bottom: 110rpx;
}
.card {
padding: 0 28rpx;

32
pages/userCenter/myCar/myCar.vue

@ -12,10 +12,10 @@
</view>
</view> -->
<view class="ul">
<view class="card">
<view class="li">
<view class="plate">浙A.6666</view>
<view class="name">大众朗逸</view>
<view class="card" v-for="(item,index) in list" :key="index">
<view class="li" >
<view class="plate">{{item.licnum}}</view>
<view class="name">{{item.manufacturer}}</view>
</view>
</view>
</view>
@ -24,6 +24,29 @@
</template>
<script>
import { carPage } from '@/config/api.js'
export default {
data() {
return {
list: [],
params: {
pageNo: 1,
pageSize: 20
}
}
},
onLoad() {
this.carPageFn()
},
methods: {
async carPageFn() {
const {data: res} = await carPage(this.params)
this.params.pageNo ++
this.list.push(...res.list)
console.log(res)
}
}
}
</script>
<style lang="scss" scoped>
@ -53,7 +76,6 @@
align-items: center;
justify-content: space-between;
padding: 0 24rpx;
.plate {
color: $themC;
font-weight: 500;

Loading…
Cancel
Save