parent
949007e1cd
commit
2148b1b0a0
@ -1,178 +1,127 @@
|
||||
<style>
|
||||
.img {
|
||||
width: 100%;
|
||||
height: 420rpx;
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<view class="fv-page flex-col" style="">
|
||||
<view>
|
||||
<up-navbar class="" style="" :autoBack="true" bgColor="#00000000" :fixed="true" titleColor="#595757FF"
|
||||
leftIconColor="#FFFFFFFF">
|
||||
</up-navbar>
|
||||
<up-swiper v-if="imageList" height="420rpx" :list="imageList" indicator indicatorMode="dot" circular
|
||||
keyName="url" :autoplay="false"></up-swiper>
|
||||
<wd-card type="rectangle">
|
||||
|
||||
<view class="font-size-32 font-bold">
|
||||
<wd-text :text="matchedItems_sc.price" mode="price" type="error" prefix="¥" />
|
||||
<wd-text size="24rpx" :text="matchedItems_sc.line_price" mode="price" decoration="line-through"
|
||||
prefix="¥" />
|
||||
<up-swiper v-if="imageList" height="420rpx" :list="imageList" indicator indicatorMode="dot" circular keyName="url"
|
||||
:autoplay="false"></up-swiper>
|
||||
<view class="price-wrap pl-[20rpx] text-[40rpx]">
|
||||
<wd-text :text="matchedItems_sc.price" color="#EF2B0D" mode="price" prefix="¥" />
|
||||
</view>
|
||||
<view class="pt-2 color-black "> {{ matchedItems_sc.name }} <wd-tag custom-class="space" type="primary">{{
|
||||
matchedItems_sc.tag_name }}</wd-tag></view>
|
||||
<view class="pt-2 color-coolgray font-size-24">
|
||||
销量:{{ matchedItems_sc.sales }}
|
||||
<view class="bg-white px-[30rpx] py-[10rpx] intro-wrap mx-[24rpx]">
|
||||
<view class="color-black text-[30rpx] font-medium">
|
||||
{{ matchedItems_sc.name }}
|
||||
</view>
|
||||
</wd-card>
|
||||
<wd-card type="rectangle">
|
||||
<view class="color-black font-size-28 text-center">
|
||||
套餐介绍
|
||||
</view>
|
||||
<view class="color-coolgray font-size-24">
|
||||
<view class="text-[#666666] text-[26rpx] mt-[10rpx]">
|
||||
{{ matchedItems_sc.intro }}
|
||||
</view>
|
||||
</wd-card>
|
||||
|
||||
|
||||
<wd-card type="rectangle">
|
||||
<view class="color-black font-size-32 text-center font-bold">
|
||||
冷菜系列
|
||||
</view>
|
||||
<up-cell-group :border="false">
|
||||
<view class="detail-box" style="border: none;padding: 0px;" v-for="(item, index) in matchedItems_sp" :key="index">
|
||||
<u-cell :border="false" @click="dishesDetail(item)">
|
||||
<template #icon>
|
||||
<wd-img :width="100" :height="100" :src="item.image" :enable-preview="false" :radius="8"
|
||||
:round=false custom-class="margin-right-24" />
|
||||
</template>
|
||||
<template #title>
|
||||
<view class="h-60 flex">
|
||||
<up-text size="32rpx" :text="`${item.name}大酒店`" :flex1="true" align="left"
|
||||
wordWrap="normal" :show="true" prefixIcon="" customStyle="font-weight:bold"
|
||||
iconStyle="font-size:28rpx;color:#59CB56;margin-right:10rpx;" lines="1"
|
||||
decoration="none">
|
||||
</up-text>
|
||||
<!-- <u-icon slot="right" label-color="red" :label="`¥2000.00元`"></u-icon> -->
|
||||
</view>
|
||||
</template>
|
||||
<template #label>
|
||||
|
||||
<view class="h-50 flex color-gray">
|
||||
<up-text size="" :text="`鱼香肉丝${item.intro}`" :flex1="true" align="left"
|
||||
wordWrap="normal" :show="true" prefixIcon="" customStyle="font-size:24rpx"
|
||||
iconStyle="font-size:24rpx;color:#59CB56;margin-right:10rpx;" lines="1"
|
||||
decoration="none">
|
||||
</up-text>
|
||||
<!-- <u-icon slot="right" label-color="red" :label="`X30`"></u-icon> -->
|
||||
<view v-for="(item, key) in matchedItems_sc.package_config" class="m-[24rpx]">
|
||||
<view class="flex my-[20rpx]">
|
||||
<up-line length="25%" color="#000" margin="0 20rpx 0 90rpx"></up-line>
|
||||
<view class="font-bold text-[30rpx]">
|
||||
{{key}}
|
||||
</view>
|
||||
<view class="h-50 flex color-gray">
|
||||
<wd-text text="16354.156" mode="price" type="error" prefix="¥" />
|
||||
|
||||
<up-line length="25%" color="#000" margin="0 90rpx 0 20rpx"></up-line>
|
||||
</view>
|
||||
<view class="h-20 flex color-gray">
|
||||
<wd-text size="24rpx" text="16354.156" mode="price" decoration="line-through"
|
||||
prefix="¥" />
|
||||
<view style="margin-top: -20rpx;">
|
||||
<wd-button size="small" @click.stop="dishesDetail(item)">查看详情</wd-button>
|
||||
<view class="u-flex bg-white p-[20rpx] rounded-[20rpx] my-[12rpx]" v-for="dishes in item">
|
||||
<view class="">
|
||||
<wd-img width="196rpx" height="196rpx" :src="dishes.images[0]" :enable-preview="false" :radius="8"
|
||||
:round="false" custom-class="margin-right-24" />
|
||||
</view>
|
||||
<view class="u-flex u-flex-column">
|
||||
<view class="font-bold text-[30rpx]">
|
||||
{{dishes.name}}
|
||||
</view>
|
||||
<view class="text-[24rpx]">
|
||||
{{dishes.intro}}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</u-cell>
|
||||
</view>
|
||||
</up-cell-group>
|
||||
</wd-card>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
<view v-if="is_add" style="height: 100rpx;"></view>
|
||||
<view v-if="is_add" class="buy-button">
|
||||
<up-button text="立即下单" type="primary"></up-button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {
|
||||
defineComponent
|
||||
} from "vue";
|
||||
import {
|
||||
import {
|
||||
CommonApi,
|
||||
UserApi
|
||||
} from "@/api";
|
||||
import {
|
||||
setToken,
|
||||
getToken,
|
||||
isLogin
|
||||
} from '@/utils/auth';
|
||||
import {
|
||||
image
|
||||
} from "@/uni_modules/uview-plus/libs/function/test";
|
||||
import {
|
||||
url
|
||||
} from "inspector";
|
||||
export default defineComponent({
|
||||
data () {
|
||||
} from "@/api";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
search: {
|
||||
id: 0,
|
||||
},
|
||||
is_add: 0, //是否显示购物车
|
||||
is_add: 0,
|
||||
matchedItems_sc: [],
|
||||
imageList: [],
|
||||
matchedItems_sp: [],
|
||||
};
|
||||
},
|
||||
onLoad (option) {
|
||||
// console.log(option);
|
||||
onLoad(option) {
|
||||
this.search.id = option.id;
|
||||
this.is_add = option.is_add | 0;
|
||||
this.getCategoryList()
|
||||
},
|
||||
created () {
|
||||
|
||||
},
|
||||
methods: {
|
||||
//点击详情
|
||||
dishesDetail (item) {
|
||||
// console.log(item);
|
||||
dishesDetail(item) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/banquet/combo/dishes?id=${item.id}&is_add=1`
|
||||
});
|
||||
|
||||
})
|
||||
},
|
||||
//列表分页
|
||||
changeSP () {
|
||||
// console.log(pageNo);
|
||||
// this.search.page = pageNo;
|
||||
CommonApi.commonGet('/api/dishes/dishes', this.search).catch((res) => {
|
||||
if (res.code === 1) {
|
||||
this.matchedItems_sp = res.data;
|
||||
// this.$refs.pagingRefSP?.complete(res.data);
|
||||
} else {
|
||||
uni.$u.toast(res.msg);
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
getCategoryList () {
|
||||
getCategoryList() {
|
||||
CommonApi.commonGet('/api/banquet/dishes/detail', this.search).catch((res) => {
|
||||
if (res.code === 1) {
|
||||
this.matchedItems_sc = res.data;
|
||||
this.matchedItems_sc.tag_name = res.data.dishesCategory.name;
|
||||
this.changeSP()
|
||||
// console.log(res.data.images)
|
||||
res.data.images.forEach(item => {
|
||||
this.imageList.push({
|
||||
url: item,
|
||||
title: '',
|
||||
poster: item
|
||||
})
|
||||
|
||||
})
|
||||
// console.log(this.imageList)
|
||||
} else {
|
||||
uni.$u.toast(res.msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
page {
|
||||
background: #F2F2F2;
|
||||
padding-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.price-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 75rpx;
|
||||
margin: -75rpx 24rpx 0 24rpx;
|
||||
border-top-left-radius: 20rpx;
|
||||
border-top-right-radius: 20rpx;
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(12rpx);
|
||||
}
|
||||
|
||||
.intro-wrap {
|
||||
min-height: 150rpx;
|
||||
border-bottom-left-radius: 20rpx;
|
||||
border-bottom-right-radius: 20rpx;
|
||||
}
|
||||
.buy-button {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 3%;
|
||||
width: 94%;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
|
@ -14,21 +14,16 @@
|
||||
:radius="8" :round=false custom-class="margin-right-24" />
|
||||
</template>
|
||||
<template #title>
|
||||
<view class="h-60 flex">
|
||||
<up-text size="32rpx" :text="`${hotel.certification?.public_name}`" :flex1="true" align="left"
|
||||
wordWrap="normal" :show="true" prefixIcon="" customStyle="font-weight:bold"
|
||||
iconStyle="font-size:28rpx;color:#59CB56;margin-right:10rpx;" lines="1" decoration="none">
|
||||
<view class="u-flex u-flex-column">
|
||||
<view class="my-[20rpx]">
|
||||
<up-text size="32rpx" :text="`${hotel.certification?.public_name}`" customStyle="font-weight:bold">
|
||||
</up-text>
|
||||
</view>
|
||||
</template>
|
||||
<template #label>
|
||||
<view class="h-50 flex color-gray">
|
||||
<up-text size="" :text="`${hotel.certification?.address}`" :flex1="true" align="left" wordWrap="normal"
|
||||
:show="true" prefixIcon="" customStyle="font-size:24rpx"
|
||||
iconStyle="font-size:24rpx;color:#59CB56;margin-right:10rpx;" lines="1" decoration="none">
|
||||
<view class="my-[20rpx]">
|
||||
<up-text :text="`${hotel.certification?.address}`" customStyle="font-size:24rpx">
|
||||
</up-text>
|
||||
</view>
|
||||
<wd-button size="small" @click="gotoDishesList(hotel.id)">下单预定</wd-button>
|
||||
</view>
|
||||
</template>
|
||||
</u-cell>
|
||||
</view>
|
||||
@ -49,16 +44,16 @@
|
||||
</template>
|
||||
<template #title>
|
||||
<view class="h-60 flex">
|
||||
<up-text size="32rpx" :text="`${item.name}`" :flex1="true" align="left" wordWrap="normal"
|
||||
:show="true" prefixIcon="" customStyle="font-weight:bold"
|
||||
<up-text size="32rpx" :text="`${item.name}`" :flex1="true" align="left" wordWrap="normal" :show="true"
|
||||
prefixIcon="" customStyle="font-weight:bold"
|
||||
iconStyle="font-size:28rpx;color:#59CB56;margin-right:10rpx;" lines="1" decoration="none">
|
||||
</up-text>
|
||||
</view>
|
||||
</template>
|
||||
<template #label>
|
||||
<view class="h-50 flex color-gray">
|
||||
<up-text size="" :text="`${item.intro}`" :flex1="true" align="left" wordWrap="normal"
|
||||
:show="true" prefixIcon="" customStyle="font-size:24rpx"
|
||||
<up-text size="" :text="`${item.intro}`" :flex1="true" align="left" wordWrap="normal" :show="true"
|
||||
prefixIcon="" customStyle="font-size:24rpx"
|
||||
iconStyle="font-size:24rpx;color:#59CB56;margin-right:10rpx;" lines="1" decoration="none">
|
||||
</up-text>
|
||||
</view>
|
||||
@ -82,8 +77,6 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import { CommonApi, UserApi } from "@/api";
|
||||
import { setToken, getToken, isLogin } from '@/utils/auth';
|
||||
import { image } from "@/uni_modules/uview-plus/libs/function/test";
|
||||
import { url } from "inspector";
|
||||
export default defineComponent({
|
||||
data() {
|
||||
@ -92,28 +85,27 @@
|
||||
is_add: 0, //是否显示购物车
|
||||
hotel: [],
|
||||
imageList: [],
|
||||
dishesList: []
|
||||
dishesList: [],
|
||||
dishesQuery: {
|
||||
server_user_id: '',
|
||||
type: 2,
|
||||
page: 1,
|
||||
limit: 10,
|
||||
},
|
||||
loadEnd: false
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
// console.log(option);
|
||||
this.id = option.id;
|
||||
this.dishesQuery.server_user_id = option.id;
|
||||
this.is_add = option.is_add | 0;
|
||||
this.getHotelDetail()
|
||||
this.getDishesList()
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
gotoDishesList(id : number) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/banquet/hotel/detail?id=${id}&is_add=1`
|
||||
});
|
||||
},
|
||||
gotoDishesDetai(id) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/banquet/hotel/detail?id=${id}&is_add=1`
|
||||
url: `/pages/banquet/combo/dishes_combo?id=${id}&is_add=1`
|
||||
});
|
||||
},
|
||||
getHotelDetail() {
|
||||
@ -132,14 +124,28 @@
|
||||
});
|
||||
},
|
||||
getDishesList() {
|
||||
UserApi.dishesListApi({ server_user_id: this.id, type: 2 }).catch((res) => {
|
||||
UserApi.dishesListApi(this.dishesQuery).catch((res) => {
|
||||
if (res.code === 1) {
|
||||
if (this.dishesQuery.page == 1) {
|
||||
this.dishesList = res.data
|
||||
} else {
|
||||
this.dishesList.push(...res.data)
|
||||
}
|
||||
if (res.data.length < this.dishesQuery.limit) {
|
||||
this.loadEnd = true
|
||||
}
|
||||
} else {
|
||||
uni.$u.toast(res.msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
onReachBottom() {
|
||||
if (this.loadEnd) {
|
||||
return
|
||||
}
|
||||
this.dishesQuery.page++
|
||||
this.getDishesList()
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
@ -17,7 +17,7 @@
|
||||
<view v-else class="detail-box u-flex" v-for="(item, index) in hotelList" :key="index" @click="goto(item.id)">
|
||||
<view class="">
|
||||
<wd-img :width="100" :height="100" :src="item.certification.public_image" :enable-preview="false" :radius="8"
|
||||
:round=false custom-class="margin-right-24" />
|
||||
:round="false" custom-class="margin-right-24" />
|
||||
</view>
|
||||
<view class="u-flex u-flex-column">
|
||||
<up-text size="32rpx" :text="`${item.certification.public_name}`" customStyle="font-weight:bold"></up-text>
|
||||
|
Loading…
x
Reference in New Issue
Block a user