代客下单增加无台桌下单

This commit is contained in:
2024-10-25 18:09:30 +08:00
parent 1de0a53abe
commit 5fa402dca2
5 changed files with 185 additions and 91 deletions

View File

@@ -4,7 +4,7 @@
<view class="search bg-fff u-flex u-col-center ">
<view class="u-flex-1">
<uni-search-bar bgColor="#F9F9F9" cancelButton="none" placeholder="输入桌号" @confirm="search"
v-model="searchValue">
v-model="searchValue">
</uni-search-bar>
</view>
<!-- <view class="u-flex">
@@ -24,27 +24,33 @@
<view class="list ">
<view class=" bg-fff box bg-fff">
<view class="u-flex item u-row-between" v-for="(item,index) in tables.list" :key="index"
@tap="chooseTable(index,item)">
<view class="u-flex">
<view class="">
<view class="u-flex">
<view>{{item.name}}</view>
<view class="line"></view>
<view>{{''}}</view>
<template v-if="tables.list.length">
<view class="u-flex item u-row-between" v-for="(item,index) in tables.list" :key="index"
@tap="chooseTable(index,item)">
<view class="u-flex">
<view class="">
<view class="u-flex">
<view>{{item.name}}</view>
<view class="line"></view>
<view>{{''}}</view>
</view>
<view class="color-999 u-font-24 u-m-t-12">
<text
:style="{color:returnStutasColor(item.status)}">{{returnStutasText(item.status)}}</text>
</view>
</view>
<view class="color-999 u-font-24 u-m-t-12">
<text
:style="{color:returnStutasColor(item.status)}">{{returnStutasText(item.status)}}</text>
</view>
<view class="my-radio u-font-28 u-flex color-333">
<view class="circle u-flex u-row-center" :class="{active:index==tables.selIndex}">
<uni-icons type="checkmarkempty" :size="16" color="#fff"></uni-icons>
</view>
</view>
</view>
<view class="my-radio u-font-28 u-flex color-333">
<view class="circle u-flex u-row-center" :class="{active:index==tables.selIndex}">
<uni-icons type="checkmarkempty" :size="16" color="#fff"></uni-icons>
</view>
</view>
</view>
<my-pagination :page="query.page" :totalElements="query.totalElements" :size="query.size"
@change="pageChange"></my-pagination>
</template>
<template v-if="tables.list.length<=0">
<my-img-empty tips="未找到相关的桌台"></my-img-empty>
</template>
@@ -94,10 +100,13 @@
uni.navigateBack()
}, 100)
}
let searchValue=ref('')
function search(){
let searchValue = ref('')
function search() {
query.page=1
getTable()
}
function chooseTable(index, item) {
if (item.status == 'closed') {
return uni.showToast({
@@ -109,7 +118,7 @@
nouser.value = true
return emitChooeTable()
} else {
tables.selIndex=index
tables.selIndex = index
emitChooeTable(item)
}
}
@@ -128,11 +137,20 @@
function areaChange(e) {
area.defaultCateIndex = e.detail.value
area.sel = area.list[e.detail.value]
query.page=1
getTable()
}
const query = {
page: 0,
size: 100,
areaId: 0
page: 1,
size: 10,
areaId: 0,
totalElements:0
}
// 页数改变事件
function pageChange(page) {
console.log(page);
query.page = page
getTable()
}
const tables = reactive({
hasAjax: false,
@@ -141,15 +159,15 @@
list: []
})
async function getTable() {
// let state=status.list[status.active].key
// state=state?(state=='all'?'':state):''
const areaId=area.list[area.defaultCateIndex].id
let {
content
} = await $table.get(query)
tables.hasAjax = true
content = content.filter(v =>{
// return v.status == 'idle'||(v.status=='using')
return v.status == 'idle'
})
console.log(content );
content,total
} = await $table.get({...query,areaId,name:searchValue.value,state:'idle'})
query.totalElements=total||0;
tables.hasAjax = true;
console.log(content);
tables.list = content
tables.selIndex = content.findIndex(v => v.tableId == option.tableId)
tables.originList = content
@@ -172,11 +190,7 @@
}
watch(() => area.sel, (newval) => {
if(!newval){
tables.list = tables.originList
return
}
tables.list = tables.originList.filter(v => v.areaId == newval.id)
getTable()
})
let option = {}
onLoad(opt => {
@@ -197,11 +211,12 @@
}
.my-radio {
.circle {
background: #FFFFFF;
width: 18px;
height: 18px;
&.active {
background-color: $my-main-color;
border-color: $my-main-color;
@@ -225,11 +240,14 @@
.scale7 {
transform: scale(0.7);
}
::v-deep .uni-searchbar{
padding: 0!important;
::v-deep .uni-searchbar {
padding: 0 !important;
}
.search {
padding: 20rpx 28rpx 20rpx 28rpx;
.icon-saoma {
margin-left: 20rpx;
width: 34rpx;
@@ -239,6 +257,7 @@
.list {
padding: 32rpx 24rpx;
.no-choose {
padding: 36rpx 30rpx 36rpx 24rpx;
}