da86e13e by 杨炀

no message

1 parent 0c30f3ed
......@@ -6,12 +6,25 @@ export function getHotelList(params) {
params: params
})
}
export function getStudioList(params) {
return request({
url: `/ota/studio/list`,
method: 'get',
params: params
})
}
export function getHotelById(id) {
return request({
url: `/ota/hotel/${id}`,
method: 'get'
})
}
export function getStudioById(id) {
return request({
url: `/ota/studio/${id}`,
method: 'get'
})
}
export function getHotelRooms(params) {
return request({
url: `/ota/activityRoom/list`,
......
......@@ -9,7 +9,11 @@
.blur20 { filter: blur(20px) }
.m0{margin: 0;}
.flex{display: flex;}
.fs16{font-size: 16px;}
.fs18{font-size: 18px;}
.borderRadius10{border-radius: 10px;}
.w80{width: 80%;}
.w50{width: 50%;}
.text-gray{color: #999}
.uppercase{
text-transform: uppercase;
......

1.27 KB | W: | H:

846 Bytes | W: | H:

src/assets/v1/name_bg@2x.png
src/assets/v1/name_bg@2x.png
src/assets/v1/name_bg@2x.png
src/assets/v1/name_bg@2x.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -76,7 +76,7 @@
<div class="fixed-right">
<a v-if="language==0" href="#" target="_blank"
onclick="javascript:window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="客服" >
<img src="@/assets/logo/kf_c.png"/>
<img class="kf" src="@/assets/logo/kf_c.png"/>
</a>
<a v-else target="_blank" href="#"
......@@ -94,7 +94,7 @@ const language = useStorage('language', 0)
</script>
<style lang="scss" scoped>
.kf{width: 100px;cursor: pointer;
.kf{width: 90px;cursor: pointer;
//animation: pop 2s infinite;
}
.fixed-right{position: fixed;right: 0;bottom: 200px;}
......
......@@ -404,6 +404,12 @@ export const constantRoutes = [
meta: { title: 'Makeup Appointment' }
},
{
path: 'makeUp/:cptId/:studioId',
component: () => import('@/viewsPc/booking/studioDetail'),
name: 'studioDetail',
meta: { title: 'Makeup Appointment' }
},
{
path: 'photography/:cptId',
component: () => import('@/viewsPc/booking/photography'),
name: 'photography',
......
......@@ -2,8 +2,10 @@
<div>
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">{{ language==0?'我的发票':'My invoice' }}
<el-button @click="goAdd" type="primary" class="btn-lineG fr">{{ language==0?'开发票':'Invoicing' }}</el-button>
<h3 class="leftboderTT">{{ language == 0 ? '我的发票' : 'My invoice' }}
<el-button @click="goAdd" type="primary" class="btn-lineG fr">
{{language == 0 ? '开发票' : 'Invoicing' }}
</el-button>
</h3>
</div>
<el-card class="mt30 mb60">
......@@ -19,7 +21,7 @@
<span v-if="b.invoiceForm=='2'">纸质普票</span>
<span v-if="b.invoiceForm=='3'">纸质专票</span>
</div>
<div>¥ <span>{{b.total}}</span></div>
<div>¥ <span>{{ b.total }}</span></div>
</div>
<div style="margin: 20px 0 0;display: flex;justify-content: space-between;">
<div class="status">
......@@ -30,10 +32,11 @@
</div>
<div>
<button class="billbtn" v-if="b.isInvoice == '0'" @click.stop="editDetail(b)">
{{ language == 0 ? '修改发票':'Edit' }}
{{ language == 0 ? '修改发票' : 'Edit' }}
</button>
<button class="billbtn rbtn-m-kx"
@click.stop="showDetail(b)">{{ language==0?'详情':'Detail' }}</button>
@click.stop="showDetail(b)">{{ language == 0 ? '详情' : 'Detail' }}
</button>
</div>
</div>
......@@ -51,12 +54,13 @@
<script setup>
import ChoseBills from './component/choseBills'
import { ref } from 'vue'
import {ref} from 'vue'
import {getInvoiceByActiveId} from "@/apiPc/booking"
import {getCurrentInstance} from "@vue/runtime-core"
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user";
const language= useStorage('language',0)
const language = useStorage('language', 0)
const {proxy} = getCurrentInstance()
const list = ref([])
const user = useUserStore().user
......@@ -64,27 +68,34 @@ const query = ref({
createById: user.userId
})
getList()
function getList() {
if(!user){
if (!user) {
useUserStore().setReLogin()
return
}
getInvoiceByActiveId(query.value).then(res=>{
getInvoiceByActiveId(query.value).then(res => {
list.value = res.rows
})
}
function goAdd() {
//选择开票订单
var obj = {
title: language.value==0?'选择开票订单':'Select the invoicing order',
title: language.value == 0 ? '选择开票订单' : 'Select the invoicing order',
show: true,
choosedList:[]
choosedList: []
}
proxy.$refs['dialogChoseBillsRef'].open(obj)
}
function editDetail(item) {
}
function getChoosed(list) {
console.log(list)
if(list.length>0){
if (list.length > 0) {
// 去开票
}
}
......@@ -92,10 +103,15 @@ function getChoosed(list) {
</script>
<style scoped lang="scss">
.leftboderTT{
.leftboderTT {
font-size: 20px;
.btn-lineG{text-transform: uppercase;
span{color: #fff;}
.btn-lineG {
text-transform: uppercase;
span {
color: #fff;
}
}
}
</style>
......
......@@ -8,7 +8,7 @@
<!-- </el-col>-->
<el-col :span="16">
<h3 class="esp flex">{{ form?.name }}
<div class="starBox">
<div class="starBox ml20">
<img v-for="i in Number(form?.starLevel||0)" src="@/assets/booking/star.png">
</div>
</h3>
......@@ -17,22 +17,21 @@
<span v-for="(t,index) in form?.label?.split(',')" v-show="index<4">{{ t }}</span>
<a v-show="form?.label?.split(',').length>4">{{ language == 0 ? '更多' : 'MORE' }} ></a>
</div>
<div>
<el-icon></el-icon>
<div class="info">
<el-icon><Clock /></el-icon>
<span class="mr10">{{ language == 0 ? '入住时间' : 'Check-in' }}{{ form?.checkInTime }}</span>
<span>{{ language == 0 ? '离店时间' : 'Check-out' }}{{ form?.checkOutTime }}</span>
</div>
<div v-if="form?.introduction" class="flex esp">
<el-icon></el-icon>
{{ language == 0 ? '酒店简介' : 'Introduction' }}<span v-html="form.introduction.toString()"></span>
<div class="info esp">
<el-icon><MapLocation /></el-icon>
<span>{{ form?.addName }}</span>
</div>
<div v-if="form?.introduction" class="info pointer">
<div :class="showAll?'':'esp_2'" @click="showAll=!showAll" v-html="form.introduction.toString()"></div>
</div>
<!-- <p class="esp addr">-->
<!-- <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"><LocationFilled /></el-icon>-->
<!-- {{form?.address}}-->
<!-- </p>-->
</el-col>
<el-col :span="8" class="text-right">
<div class="mapBox">
<div class="mapBox" @click="goMap">
<div id="map"></div>
</div>
</el-col>
......@@ -42,9 +41,9 @@
<div class="mt30">
<el-row :gutter="20">
<el-col v-for="(p,index) in form?.photos?.split(',')" :span="index==0?12:6">
<el-col v-for="(p,index) in form?.photos?.split(',')" :span="index==0?9:5" v-show="index<7">
<div class="imgbox hotelImg">
<img :src="fillImgUrl(p)">
<el-image :src="fillImgUrl(p)" fit="cover" :preview-src-list="form?.photos?.split(',')"/>
</div>
</el-col>
</el-row>
......@@ -121,6 +120,7 @@ const form = ref({})
const query = ref({
hotelId: route.query.id
})
const showAll = ref(false)
const loading = ref(false)
const roomList = ref([])
const map = ref(null)
......@@ -202,6 +202,14 @@ function goOrder(room) {
}
})
}
function goMap() {
return
// var tencentMapUrl = "https://map.qq.com/";
// window.location.href = tencentMapUrl;
var url = `https://map.qq.com/?type=gcj02&lat=${form.value.latitude}&lng=${form.value.longitude}`
var mapUrl_tx = "http://apis.map.qq.com/uri/v1/marker?marker=coord:"+form.value.latitude+","+form.value.longitude+"&referer=yellowpage";
window.open(url, "_blank")
}
</script>
<style scoped lang="scss">
......@@ -317,4 +325,9 @@ function goOrder(room) {
img{object-fit: cover;object-position: center;width: 100%;height: 100%;
}
}
.info{font-weight: 400;
font-size: 14px;
color: #929AA0;
.el-icon{margin-right: 5px;}
}
</style>
......
<template>
<div>
<div class="banner">
<img src="@/assets/booking/hz_text.png">
</div>
<div class="box">
<el-card class="mt30"></el-card>
<div class="searchBar">
<el-input :placeholder="language==0?'请输入关键字搜索':'Search'" v-model="query.name" class="no-border">
</el-input>
<el-button size="large" type="primary" class="btn-lineG" icon="search" @click="getList">
{{ language==0?'搜索':'Search' }}</el-button>
</div>
</div>
<div class="box" v-loading="loading">
<el-row :gutter="20" class="mb20">
<el-col :lg="8" :md="8" :sm="12" :xs="24" v-for="(n,index) in list" :key="index">
<el-card class="mb20 mitem">
<div class="imgbox"><img/>
<span>30 个时间段可预约</span>
</div>
<div class="info">
<h3>Mango美妆工作室</h3>
<div class="tagbox">
<span>专业团队</span>
<span>大牌化妆品</span>
<span>金牌化妆师</span>
<span>连锁</span>
</div>
<p class="esp">
<span>
<el-icon><OfficeBuilding /></el-icon>
成立<i class="text-primary">6</i>
</span>
<span>
<el-icon><User /></el-icon>
<i class="text-primary">12</i>名化妆师
</span>
</p>
<p class="esp"><el-icon><Iphone /></el-icon>
800-820-8820
</p>
<p class="esp"><el-icon><Location /></el-icon>
江苏无锡梁溪区南长街5D-601
</p>
<div class="text-center mt20">
<el-button @click="goDetail(n)" round type="primary" class="btn-lineG fs18 w50" size="large">
立即预约 &ensp; <el-icon class="rotate90_180"> <sort-down/></el-icon>
</el-button>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div>
......@@ -9,9 +58,79 @@
</template>
<script setup>
import {getStudioList} from "@/apiPc/booking"
import {onMounted} from "@vue/runtime-core"
import {useRoute, useRouter} from "vue-router"
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
const router = useRouter()
const route = useRoute()
const list = ref([{id:'0'},{id:'1'},{id:'2'},{id:'3'}])
const loading = ref(false)
const query = ref({
})
onMounted(()=>{
query.value.activityId = route.params.cptId
// getList()
})
function getList() {
loading.value = true
getStudioList(query.value).then(res=>{
list.value = res.rows
loading.value = false
}).catch(err=>{
loading.value = false
})
}
function goDetail(n) {
router.push({
name:'studioDetail',
params:{
studioId: n.id
}
})
}
</script>
<style scoped>
<style scoped lang="scss">
.banner{height: 140px;background-size: cover;text-align: center;
background: url("@/assets/booking/hz_bg.png") center;display: flex;align-items: center;
justify-content: center;
img{display: block;margin:-30px auto 0;width: auto;}
}
.searchBar{position: relative;top: -30px;
background: #FFFFFF;display: flex;padding: 20px;
border-radius: 10px;}
.no-border{border: none;background: #F5F7F9;
:deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;}
}
.tagbox{margin: 15px 0;
a{color: #AFB5B9;font-size: 12px;}
span{border-radius: 13px;font-size: 12px;padding: 4px 10px;margin-right:10px;font-weight: 400;}
span:nth-child(4n){background: rgba(50, 177, 108, 0.2);color: rgba(50, 177, 108, 1);}
span:nth-child(4n+1){background:rgba(243, 152, 0, 0.2);color: rgba(243, 152, 0, 1);}
span:nth-child(4n+2){background: rgba(0, 160, 233, 0.2);color: rgba(0, 160, 233, 1);}
span:nth-child(4n+3){background: rgba(247, 64, 166, 0.2);color:rgba(247, 64, 166, 1);}
}
.mitem{
.imgbox{aspect-ratio: 16/9;background: rgba(129, 122, 234, 0.7);
position: relative;
span{position: absolute;color: #fff;font-weight: 400;bottom: 0;right: 0;
font-size: 14px;background: rgba(0,0,0,0.45);
border-radius: 16px 0 0 0;padding:4px 14px;
}
}
.info{
p{font-weight: 400;margin: 7px 0;
font-size: 14px;
color: #929AA0;
i{font-style: normal;}
}
span{margin-right: 10px;
i.text-primary{padding: 0 4px;}
}
.el-icon{position: relative;top:2px;margin-right: 4px;}
}
}
</style>
......
<template>
<div>
<div>
<div class="box">
<el-card class="mt30 borderRadius10">
<h3>{{ form.name }}
<div class="tagbox">
<span>专业团队</span>
<span>大牌化妆品</span>
<span>金牌化妆师</span>
<span>连锁</span>
</div>
</h3>
<p class="infoLine">
<span>
<el-icon><OfficeBuilding/></el-icon>
成立<i class="text-primary">6</i>
</span>
<span>
<el-icon><User/></el-icon>
<i class="text-primary">12</i>名化妆师
</span>
<span><el-icon><Iphone/></el-icon>
800-820-8820</span>
<span><el-icon><Location/></el-icon>
江苏无锡梁溪区南长街5D-601</span>
</p>
</el-card>
<el-row :gutter="20" class="photoWall mt20">
<el-col :span="9">
<el-image class="as16_9"/>
</el-col>
<el-col :span="5">
<el-row :gutter="20">
<el-col :span="12" class="h50-10px"><el-image/></el-col>
<el-col :span="12" class="h50-10px"><el-image/></el-col>
<el-col :span="24" class="h50-10px mt20"><el-image/></el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-image/>
</el-col>
<el-col :span="5">
<el-row :gutter="20">
<el-col :span="12" class="h50-10px"><el-image/></el-col>
<el-col :span="12" class="h50-10px"><el-image/></el-col>
<el-col :span="24" class="h50-10px mt20"><el-image/></el-col>
</el-row>
</el-col>
</el-row>
<el-card class="mt20 mb60">
</el-card>
</div>
</div>
</div>
</template>
<script setup>
import {ref} from "vue"
const form = ref({
name: '美妆小店'
})
</script>
<style scoped lang="scss">
.tagbox {
margin: 15px 0;
a {
color: #AFB5B9;
font-size: 12px;
}
span {
border-radius: 13px;
font-size: 12px;
padding: 4px 10px;
margin-right: 10px;
font-weight: 400;
}
span:nth-child(4n) {
background: rgba(50, 177, 108, 0.2);
color: rgba(50, 177, 108, 1);
}
span:nth-child(4n+1) {
background: rgba(243, 152, 0, 0.2);
color: rgba(243, 152, 0, 1);
}
span:nth-child(4n+2) {
background: rgba(0, 160, 233, 0.2);
color: rgba(0, 160, 233, 1);
}
span:nth-child(4n+3) {
background: rgba(247, 64, 166, 0.2);
color: rgba(247, 64, 166, 1);
}
}
.infoLine{font-weight: 400;margin: 7px 0;
font-size: 14px;
color: #929AA0;
i{font-style: normal;}
span{margin-right: 10px;
i.text-primary{padding: 0 4px;}
}
.el-icon{position: relative;top:2px;margin-right: 4px;}
}
.photoWall{
.el-row{height: 100%;}
.el-image{
width: 100%;border-radius: 10px;height: 100%;
}
}
.h50-10px{height: calc(50% - 10px)}
</style>
......@@ -37,7 +37,8 @@
</div>
</el-col>
<el-col :sm="12" :lg="8">
<div class="item_en" @click="goBooking(0)"><img src="@/assets/dance/btn04.png">
<div class="item_en" @click="goBooking(0)">
<img src="@/assets/dance/btn04.png">
<p>TICKET BOOKING</p>
</div>
</el-col>
......@@ -68,11 +69,13 @@ const props = defineProps({
})
const language= useStorage('language',0)
function goBooking(n) {
// ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
// return
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
switch (n) {
case 0:
// 票务
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/ticket/${props.matchId}`})
break;
case 1:
......@@ -89,10 +92,16 @@ function goBooking(n) {
break;
case 4:
//化妆
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/makeup/${props.matchId}`})
break;
case 5:
//拍照
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/photography/${props.matchId}`})
break;
}
......
......@@ -326,7 +326,7 @@ function codeSuccess(msg) {
isCodeTrue.value = true
checkWdsfAthletes({card: card.value,groupId:groupId}).then(res => {
if (res.data.wdsfFlag==-1) {
ElMessage.warning('运动员国籍不符,无法绑定该团体')
ElMessage.warning(language.value == 0 ?'您添加的运动员代表国家/地区,与团体账号注册的国家/地区不符,无法添加':'The athlete you added represents a country/region that does not match the country/region registered for the group account, and cannot be added')
isCodeTrue.value = false
return
}
......
......@@ -40,7 +40,7 @@
</el-row>
<el-row :gutter="14" v-else>
<el-col :lg="4" :md="8" :sm="12" :xs="12">
<div class="funcBtn" @click="building">
<div class="funcBtn" @click="goBooking(0)">
<img src="@/assets/dance/btn04.png"/>
<h4>TICKET BOOKING</h4>
</div>
......@@ -52,25 +52,25 @@
</div>
</el-col>
<el-col :lg="4" :md="8" :sm="12" :xs="12">
<div class="funcBtn" @click="building">
<div class="funcBtn" @click="goBooking(2)">
<img src="@/assets/dance/btn02.png"/>
<h4>TRANSPORTATION RESERVATION</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :sm="12" :xs="12">
<div class="funcBtn" @click="building">
<div class="funcBtn" @click="goBooking(3)">
<img src="@/assets/dance/btn03.png"/>
<h4>DINING RESERVATION</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :sm="12" :xs="12">
<div class="funcBtn" @click="building">
<div class="funcBtn" @click="goBooking(4)">
<img src="@/assets/dance/btn05.png"/>
<h4>MAKEUP APPOINTMENT</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :sm="12" :xs="12">
<div class="funcBtn" @click="building">
<div class="funcBtn" @click="goBooking(5)">
<img src="@/assets/dance/btn06.png"/>
<h4>PHOTOGRAPHY APPOINTMENT</h4>
</div>
......@@ -98,10 +98,11 @@ function building() {
function goBooking(n) {
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
switch (n) {
case 0:
// 票务
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/ticket/${props.matchId}`})
break;
case 1:
......@@ -118,10 +119,16 @@ function goBooking(n) {
break;
case 4:
//化妆
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/makeup/${props.matchId}`})
break;
case 5:
//拍照
ElMessage.warning(language.value==0?'建设中,敬请期待':'Building!')
return
router.push({path: `/booking/photography/${props.matchId}`})
break;
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!