<template>
|
|
<view class="home">
|
|
<view class="content" style="padding-top: 25vh;">
|
|
<span class="font-bold">预约日期和时间</span>
|
|
<view class="flex-center mt-60" style="gap: 50rpx;">
|
|
<view class="time-wrapper">
|
|
<span style="color: #dcb066;">2024年</span>
|
|
</view>
|
|
<view class="time-wrapper">
|
|
9月20日
|
|
</view>
|
|
<view class="time-wrapper">
|
|
08:00
|
|
</view>
|
|
</view>
|
|
<span class="font-bold mt-60">预约信息</span>
|
|
<view class="flex-center mt-40" style="gap: 30rpx;">
|
|
<view class="flex-center">
|
|
<input class="time-wrapper1" type="text" v-model="firstName" />
|
|
<span>姓</span>
|
|
</view>
|
|
<view class="flex-center">
|
|
<input class="time-wrapper1" type="text" v-model="lastName" />
|
|
<span>名</span>
|
|
</view>
|
|
<view class="">
|
|
<uv-drop-down ref="dropDown" sign="dropDown_1" text-active-color="#3c9cff"
|
|
:extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"
|
|
:extra-active-icon="{name:'arrow-up-fill',color:'#3c9cff',size:'26rpx'}"
|
|
:defaultValue="defaultValue" :custom-style="{padding: '0 30rpx'}" @click="selectMenu">
|
|
<uv-drop-down-item name="order" type="2" :label="dropItem('order').label"
|
|
:value="dropItem('order').value">
|
|
</uv-drop-down-item>
|
|
<uv-drop-down-item name="type" type="2" :label="dropItem('type').label"
|
|
:value="dropItem('type').value">
|
|
</uv-drop-down-item>
|
|
<uv-drop-down-item name="vip_type" type="1" label='VIP文档' :value="dropItem('vip_type').value">
|
|
</uv-drop-down-item>
|
|
</uv-drop-down>
|
|
<uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true"
|
|
:currentDropItem="currentDropItem" @clickItem="clickItem"
|
|
@popupChange="change"></uv-drop-down-popup>
|
|
</view>
|
|
</view>
|
|
<view class="flex-col query" style="gap: 0rpx;">
|
|
<view class="flex-sa">
|
|
<view class="btn3" @click="pre">
|
|
返回
|
|
</view>
|
|
<view class="btn3" @click="next">
|
|
取消预约
|
|
</view>
|
|
</view>
|
|
<text class="second-color">欢快无限饮 饮酒有限度</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
firstName: '',
|
|
lastName: '',
|
|
// 表示value等于这些值,就属于默认值
|
|
defaultValue: [0, 'all', '0'],
|
|
// 筛选结果
|
|
result: [{
|
|
name: 'order',
|
|
label: '最新发布',
|
|
value: 'new'
|
|
}],
|
|
// { name: 'order', label: '最新发布', value: 'new' }
|
|
activeName: 'order',
|
|
order: {
|
|
label: '综合排序',
|
|
value: 'all',
|
|
activeIndex: 0,
|
|
color: '#333',
|
|
activeColor: '#2878ff',
|
|
child: [{
|
|
label: '综合排序',
|
|
value: 'all'
|
|
}, {
|
|
label: '最新发布',
|
|
value: 'new'
|
|
}, {
|
|
label: '低价优先',
|
|
value: 'money'
|
|
}]
|
|
},
|
|
type: {
|
|
label: '文档格式',
|
|
value: 'all',
|
|
activeIndex: 0,
|
|
color: '#333',
|
|
activeColor: '#2878ff',
|
|
child: [{
|
|
label: '全部',
|
|
value: 'all'
|
|
}, {
|
|
label: 'PDF',
|
|
value: 'pdf'
|
|
}, {
|
|
label: 'WROD',
|
|
value: 'word'
|
|
}, {
|
|
label: 'PPT',
|
|
value: 'ppt'
|
|
}]
|
|
},
|
|
vip_type: {
|
|
label: 'VIP文档',
|
|
value: 0,
|
|
activeIndex: 0
|
|
}
|
|
}
|
|
},
|
|
onPageScroll() {
|
|
// 滚动后及时更新位置
|
|
this.$refs.dropDown.init();
|
|
},
|
|
computed: {
|
|
dropItem(name) {
|
|
return (name) => {
|
|
const result = {};
|
|
const find = this.result.find(item => item.name === name);
|
|
if (find) {
|
|
result.label = find.label;
|
|
result.value = find.value;
|
|
} else {
|
|
result.label = this[name].label;
|
|
result.value = this[name].value;
|
|
}
|
|
return result;
|
|
}
|
|
},
|
|
// 获取当前下拉筛选项
|
|
currentDropItem() {
|
|
return this[this.activeName];
|
|
}
|
|
},
|
|
methods: {
|
|
pre() {
|
|
uni.navigateTo({
|
|
url: '/pages/index/greetP5'
|
|
})
|
|
},
|
|
next() {
|
|
uni.navigateTo({
|
|
url: '/pages/index/selectAppointment'
|
|
})
|
|
},
|
|
change(e) {
|
|
console.log('弹窗打开状态:', e);
|
|
},
|
|
/**
|
|
* 点击每个筛选项回调
|
|
* @param {Object} e { name, active, type } = e
|
|
*/
|
|
selectMenu(e) {
|
|
const {
|
|
name,
|
|
active,
|
|
type
|
|
} = e;
|
|
this.activeName = name;
|
|
// type 等于1 的需要特殊处理:type不等于1可以忽略
|
|
if (type == 1) {
|
|
this.clickItem({
|
|
name: 'vip_type',
|
|
label: 'VIP文档',
|
|
value: e.active ? 1 : 0
|
|
});
|
|
} else {
|
|
const find = this.result.find(item => item.name == this.activeName);
|
|
if (find) {
|
|
const findIndex = this[this.activeName].child.findIndex(item => item.label == find.label && item
|
|
.value == find.value);
|
|
this[this.activeName].activeIndex = findIndex;
|
|
} else {
|
|
this[this.activeName].activeIndex = 0;
|
|
}
|
|
}
|
|
},
|
|
/**
|
|
* 点击菜单回调处理
|
|
* @param {Object} item 选中项 { label,value } = e
|
|
*/
|
|
clickItem(e) {
|
|
// 下面有重新赋值,所以用let
|
|
let {
|
|
label,
|
|
value
|
|
} = e;
|
|
const findIndex = this.result.findIndex(item => item.name == this.activeName);
|
|
if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) {
|
|
label = this[this.activeName].label;
|
|
}
|
|
// 已经存在筛选项
|
|
if (findIndex > -1) {
|
|
this.$set(this.result, findIndex, {
|
|
name: this.activeName,
|
|
label,
|
|
value
|
|
})
|
|
} else {
|
|
this.result.push({
|
|
name: this.activeName,
|
|
label,
|
|
value
|
|
});
|
|
}
|
|
this.result = this.result.filter(item => this.defaultValue.indexOf(item.value) == -1);
|
|
uni.showModal({
|
|
content: `筛选的值:${JSON.stringify(this.result)}`
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.query {
|
|
position: relative;
|
|
bottom: -45vh;
|
|
}
|
|
|
|
.mt-30 {
|
|
padding-top: 30vh;
|
|
}
|
|
|
|
.time-wrapper {
|
|
border: 4rpx solid #dcb066;
|
|
padding: 16rpx 26rpx;
|
|
border-radius: 20rpx;
|
|
}
|
|
|
|
.time-wrapper1 {
|
|
border: 4rpx solid #dcb066;
|
|
margin-right: 20rpx;
|
|
padding: 14rpx 20rpx;
|
|
width: 80rpx;
|
|
border-radius: 15rpx;
|
|
text-align: center;
|
|
}
|
|
</style>
|