|
|
|
|
@ -22,9 +22,9 @@
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>{{type==='more'?'无需预约人':'预约人'}}:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<div v-if="type==='editor'">
|
|
|
|
|
<span v-if="type==='editor'">
|
|
|
|
|
{{form.name}}
|
|
|
|
|
</div>
|
|
|
|
|
</span>
|
|
|
|
|
<el-select v-else v-model="form.user_id" @change="changeUser" style="width:100%"
|
|
|
|
|
:multiple="type==='more'?true:false" filterable remote reserve-keyword
|
|
|
|
|
:placeholder="type==='more'?'请选择无需预约的学员,不选则全部预约':'请选择学员或查找学员'"
|
|
|
|
|
@ -45,7 +45,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:mobile v-if="type==='add'">
|
|
|
|
|
<template v-slot:mobile v-if="type!='more'">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="font-weight: bold">
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>联系方式:
|
|
|
|
|
@ -93,7 +93,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:content v-if="type==='add'">
|
|
|
|
|
<template v-slot:content v-if="type!='more'">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="font-weight: bold">
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>预约事项:
|
|
|
|
|
@ -103,7 +103,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:plate>
|
|
|
|
|
<template v-slot:plate v-if="type!='more'">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="font-weight: bold">
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>车牌:
|
|
|
|
|
@ -113,17 +113,49 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:accompany_total v-if="type==='add'">
|
|
|
|
|
<template v-slot:accompany_total v-if="type!='more'">
|
|
|
|
|
<div class="xy-table-item">
|
|
|
|
|
<div class="xy-table-item-label" style="font-weight: bold">
|
|
|
|
|
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>同行人数:
|
|
|
|
|
</div>
|
|
|
|
|
<div class="xy-table-item-content">
|
|
|
|
|
<el-input v-model="form.accompany_total" type="number" placeholder="请输入同行人数" clearable
|
|
|
|
|
<el-input v-model="form.accompany_total" :disabled="type==='editor'" type="number" placeholder="请输入同行人数" clearable
|
|
|
|
|
style="width: 100%;"></el-input>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:accompany v-if="type!='more'">
|
|
|
|
|
<div>
|
|
|
|
|
陪同人:<Button v-if="type==='add'" type="primary" @click="accompanyList.push({name:'',mobile:''})">新增</Button>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<xy-table style="width:800px;max-width:800px;height:300px" :list="accompanyList" :isPage="false" :table-item="accompany_item">
|
|
|
|
|
<template v-slot:name>
|
|
|
|
|
<el-table-column align='center' label="姓名" width="300" header-align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-input :disabled="type==='editor'" v-model="scope.row.name"></el-input>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:mobile>
|
|
|
|
|
<el-table-column align='center' label="联系方式" width="300" header-align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-input :disabled="type==='editor'" v-model="scope.row.mobile"></el-input>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:btns>
|
|
|
|
|
<el-table-column align='center' label="操作" width="200" header-align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-popconfirm v-if="type==='add'" style="margin-left:10px" @confirm="accompanyList.splice(scope.$index,1)" title="确定删除吗?">
|
|
|
|
|
<el-button type="danger" size="small" slot="reference">删除</el-button>
|
|
|
|
|
</el-popconfirm>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</template>
|
|
|
|
|
</xy-table>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<!-- <template v-slot:footerContent>
|
|
|
|
|
<Button type="primary" @click="submit">预约并通过</Button>
|
|
|
|
|
@ -161,6 +193,14 @@
|
|
|
|
|
typeName: '手动预约',
|
|
|
|
|
id: '',
|
|
|
|
|
siteData:[],
|
|
|
|
|
accompanyList:[],
|
|
|
|
|
accompany_item:[{
|
|
|
|
|
prop:'name',
|
|
|
|
|
label: '姓名',
|
|
|
|
|
},{
|
|
|
|
|
prop:'mobile',
|
|
|
|
|
label: '联系方式',
|
|
|
|
|
}],
|
|
|
|
|
form: {
|
|
|
|
|
course_id: '',
|
|
|
|
|
user_id: '',
|
|
|
|
|
@ -174,6 +214,7 @@
|
|
|
|
|
site: '',
|
|
|
|
|
plate: '',
|
|
|
|
|
accompany_total: 0,
|
|
|
|
|
accompany:[],
|
|
|
|
|
status: 1,
|
|
|
|
|
reason: ''
|
|
|
|
|
},
|
|
|
|
|
@ -241,18 +282,10 @@
|
|
|
|
|
},
|
|
|
|
|
submit(status) {
|
|
|
|
|
this.form.status = 1
|
|
|
|
|
|
|
|
|
|
console.log(this.form)
|
|
|
|
|
if(this.compareTime(this.form.start_time)){
|
|
|
|
|
this.$Message.warning('预约开始时间不能早于当前时间')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if (this.type === 'add') {
|
|
|
|
|
if (this.base.isNull(this.form.user_id) && this.base.isNull(this.form.name)) {
|
|
|
|
|
this.$Message.warning('请选择学员或输入预约人姓名')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.type === 'more') {
|
|
|
|
|
console.log("this.form.user_id",this.form.user_id)
|
|
|
|
|
let _arr = []
|
|
|
|
|
@ -274,10 +307,49 @@
|
|
|
|
|
}
|
|
|
|
|
this.form.user_id = _arr.join(",")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.type === 'add') {
|
|
|
|
|
if (this.base.isNull(this.form.user_id) && this.base.isNull(this.form.name)) {
|
|
|
|
|
this.$Message.warning('请选择学员或输入预约人姓名')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// return
|
|
|
|
|
if (this.type === "editor") {
|
|
|
|
|
this.form.status = 0
|
|
|
|
|
}
|
|
|
|
|
console.log("accompanyList",this.accompanyList)
|
|
|
|
|
if(this.type==='add' || this.type==='editor'){
|
|
|
|
|
if(this.accompanyList.length>0){
|
|
|
|
|
var nullCount = 0
|
|
|
|
|
var errMobile = 0
|
|
|
|
|
this.form.accompany_total = this.accompanyList.length
|
|
|
|
|
this.accompanyList.map(item=>{
|
|
|
|
|
if(this.base.isNull(item.name) || this.base.isNull(item.mobile)){
|
|
|
|
|
nullCount++
|
|
|
|
|
}
|
|
|
|
|
if(!this.base.isNull(item.mobile) && !this.base.isPhone(item.mobile)){
|
|
|
|
|
errMobile++
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
console.log("nullCount",nullCount,errMobile)
|
|
|
|
|
if(nullCount>0){
|
|
|
|
|
this.$Message.warning("陪同人姓名或联系方式不能为空")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
if(errMobile>0){
|
|
|
|
|
this.$Message.warning("陪同人联系方式不正确")
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.form.accompany = this.accompanyList
|
|
|
|
|
}else{
|
|
|
|
|
this.form.accompany = []
|
|
|
|
|
this.form.accompany_total = 0
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// return
|
|
|
|
|
save(this.form).then(res => {
|
|
|
|
|
if (res.success < res.total) {
|
|
|
|
|
this.$Message.warning(res.err.join("。"))
|
|
|
|
|
@ -304,7 +376,7 @@
|
|
|
|
|
this.siteData.push(parseInt(item))
|
|
|
|
|
})
|
|
|
|
|
this.form.timeRange = [res.start_time, res.end_time]
|
|
|
|
|
|
|
|
|
|
this.accompanyList = res.appointment_accompany
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
formatHH(val) {
|
|
|
|
|
@ -355,6 +427,7 @@
|
|
|
|
|
page_size: 300,
|
|
|
|
|
name: query,
|
|
|
|
|
course_id: this.form.course_id,
|
|
|
|
|
status:1
|
|
|
|
|
})
|
|
|
|
|
this.user_options = res.list.data
|
|
|
|
|
if(res.list.data===0){
|
|
|
|
|
@ -368,6 +441,7 @@
|
|
|
|
|
page_size: 300,
|
|
|
|
|
name: query,
|
|
|
|
|
course_id: this.form.course_id,
|
|
|
|
|
status:1
|
|
|
|
|
})
|
|
|
|
|
this.user_options = res.list.data
|
|
|
|
|
this.allUser = res.list.data
|
|
|
|
|
@ -428,6 +502,7 @@
|
|
|
|
|
this.typeName = '手动预约'
|
|
|
|
|
this.course_id = ''
|
|
|
|
|
this.siteData = []
|
|
|
|
|
this.accompanyList = []
|
|
|
|
|
this.form = {
|
|
|
|
|
course_id: '',
|
|
|
|
|
user_id: '',
|
|
|
|
|
@ -441,6 +516,7 @@
|
|
|
|
|
site: '',
|
|
|
|
|
plate: '',
|
|
|
|
|
accompany_total: 0,
|
|
|
|
|
accompany:[],
|
|
|
|
|
status: 1,
|
|
|
|
|
reason: ''
|
|
|
|
|
}
|
|
|
|
|
@ -453,6 +529,10 @@
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
::v-deep .accompany{
|
|
|
|
|
flex-basis: 100%;
|
|
|
|
|
padding:0 60px;
|
|
|
|
|
}
|
|
|
|
|
.bookInfo {
|
|
|
|
|
&>div {
|
|
|
|
|
span {
|
|
|
|
|
|