9fa2d4d5 by zhangmeng

拍摄

1 parent 136529c9
1 <template> 1 <template>
2 <div > 2 <div>
3 <el-calendar v-model="currentDate" :range="calendarRange"> 3 <el-calendar v-model="currentDate" :range="calendarRange">
4 <template #header="{date}"> 4 <template #header="{date}">
5 <el-row style="width: 100%"> 5 <el-row style="width: 100%">
6 <el-col :span="7"> 6 <el-col :span="7" />
7 </el-col>
8 <el-col :span="10"> 7 <el-col :span="10">
9 <el-row justify="center" align='middle' class="cTitle"> 8 <el-row align="middle" class="cTitle" justify="center">
10 <!-- <div class="canBtn"><el-icon><ArrowLeftBold /></el-icon></div>--> 9
11 <!-- <div>--> 10 <!-- <div class="canBtn"><el-icon><ArrowLeftBold /></el-icon></div>-->
12 <!--&lt;!&ndash; <el-date-picker&ndash;&gt;--> 11 <!-- <div>-->
13 <!--&lt;!&ndash; v-model="value2"&ndash;&gt;--> 12 <!--&lt;!&ndash; <el-date-picker&ndash;&gt;-->
14 <!--&lt;!&ndash; type="daterange"&ndash;&gt;--> 13 <!--&lt;!&ndash; v-model="value2"&ndash;&gt;-->
15 <!--&lt;!&ndash; range-separator="-"&ndash;&gt;--> 14 <!--&lt;!&ndash; type="daterange"&ndash;&gt;-->
16 <!--&lt;!&ndash; start-placeholder="Start date"&ndash;&gt;--> 15 <!--&lt;!&ndash; range-separator="-"&ndash;&gt;-->
17 <!--&lt;!&ndash; end-placeholder="End date"&ndash;&gt;--> 16 <!--&lt;!&ndash; start-placeholder="Start date"&ndash;&gt;-->
18 <!--&lt;!&ndash; format="YYYY-MM-DD"&ndash;&gt;--> 17 <!--&lt;!&ndash; end-placeholder="End date"&ndash;&gt;-->
19 <!--&lt;!&ndash; value-format="YYYY-MM-DD"&ndash;&gt;--> 18 <!--&lt;!&ndash; format="YYYY-MM-DD"&ndash;&gt;-->
20 <!--&lt;!&ndash; size="small"&ndash;&gt;--> 19 <!--&lt;!&ndash; value-format="YYYY-MM-DD"&ndash;&gt;-->
21 <!--&lt;!&ndash; @change="changee"&ndash;&gt;--> 20 <!--&lt;!&ndash; size="small"&ndash;&gt;-->
22 <!--&lt;!&ndash; />&ndash;&gt;--> 21 <!--&lt;!&ndash; @change="changee"&ndash;&gt;-->
23 <!-- <el-input readonly v-model="value2" type="text" size="small" style="width: 280px"></el-input>--> 22 <!--&lt;!&ndash; />&ndash;&gt;-->
24 <!-- </div>--> 23 <!-- <el-input readonly v-model="value2" type="text" size="small" style="width: 280px"></el-input>-->
25 <!-- <div class="canBtn"><el-icon><ArrowRightBold /></el-icon></div>--> 24 <!-- </div>-->
26 {{date}} 25 <!-- <div class="canBtn"><el-icon><ArrowRightBold /></el-icon></div>-->
26 {{ date }}
27 </el-row> 27 </el-row>
28 </el-col> 28 </el-col>
29 <el-col :span="7"> 29 <el-col :span="7">
30 <div style="text-align: right;padding-right: 10px"> 30 <div style="text-align: right;padding-right: 10px">
31 <el-date-picker 31 <el-date-picker
32 v-model="currentDate1" 32 v-model="currentDate1"
33 type="date" 33 :clearable="false"
34 placeholder="YYYY-MM-DD" 34 :disabled-date="disabledDateRZ"
35 format="YYYY-MM-DD" 35 format="YYYY-MM-DD"
36 placeholder="YYYY-MM-DD"
36 size="small" 37 size="small"
38 type="date"
37 @change="dateChange" 39 @change="dateChange"
38 :disabled-date="disabledDateRZ"
39 :clearable="false"
40 /> 40 />
41 </div> 41 </div>
42 </el-col> 42 </el-col>
...@@ -51,30 +51,44 @@ ...@@ -51,30 +51,44 @@
51 51
52 <div class="calendarList"> 52 <div class="calendarList">
53 <ul v-loading="loading"> 53 <ul v-loading="loading">
54 <li v-for="n in schList" :key="n.id" > 54 <li v-for="n in schList" :key="n.id">
55 <el-row style="width: 100%"> 55 <el-row style="width: 100%">
56 <div style="margin-right: 25px"> 56 <div style="margin-right: 25px">
57 <el-image style="width: 90px;height: 115px" :src="fillImgUrl(n.photos?.split(',')[0]) " fit="cover" /> 57 <el-image :src="fillImgUrl(n.photos?.split(',')[0]) " fit="cover" style="width: 90px;height: 115px" />
58 </div> 58 </div>
59 <div style="flex: 1" > 59 <div style="flex: 1">
60 <div class="hz-title">{{ n.name }}</div> 60 <div class="hz-title">{{ n.name }}</div>
61 <div> 61 <div>
62 <el-row justify="space-between"> 62 <el-row justify="space-between">
63 <el-row class="hz-p" style="flex: 1"> 63 <el-row class="hz-p" style="flex: 1">
64 <el-col :span="8"> 64 <el-col :span="8">
65 <div class="esp_3">{{ language==0?'套餐说明':'Package Description' }}: <span style="margin-right: 20px">{{n.introduction}}</span></div> 65 <div class="esp_3">{{ language == 0 ? '套餐说明' : 'Package Description' }}: <span
66 style="margin-right: 20px"
67 >{{ n.introduction }}</span></div>
66 </el-col> 68 </el-col>
67 69
68 <el-col :span="8"> 70 <el-col :span="8">
69 <div>{{ language==0?'剩余':'' }}<span class="sign">{{ n.num-n.counts }}</span>{{language==0?'名额':'Places Remaining' }} </div> 71 <div>{{ language == 0 ? '剩余' : '' }}<span class="sign">{{
72 n.num - n.counts
73 }}</span>{{ language == 0 ? '名额' : 'Places Remaining' }}
74 </div>
70 </el-col> 75 </el-col>
71 <el-col :span="8"> 76 <el-col :span="8">
72 <div >{{n.goHome==1?language==0?'上门拍照':'Door-to-door photo':''}}</div> 77 <div>{{ n.goHome == 1 ? language == 0 ? '上门拍照' : 'Door-to-door photo' : '' }}</div>
73 </el-col> 78 </el-col>
74 </el-row> 79 </el-row>
75 <el-row> 80 <el-row>
76 <div class="zh-margin" style="font-size: 36px;color: #ff8124"><span style="font-size: 24px">{{ language==0?'¥':'€'}} </span> {{language==0?n.photoPrice:n.photoPriceEn}}</div> 81 <div class="zh-margin" style="font-size: 36px;color: #ff8124"><span
77 <el-button :disabled="n.num-n.counts<=0||Date.now()>dayjs(currentDate).subtract(-1,'day').valueOf()" class="btn-lineG w200px" round type="primary" size="large" @click="goMatch(n)">{{ language==0?'立即预约':'Select' }} ⇀</el-button> 82 style="font-size: 24px"
83 >{{ language == 0 ? '¥' : '€' }} </span>
84 {{ language == 0 ? n.photoPrice : n.photoPriceEn }}
85 </div>
86 <el-button
87 :disabled="n.num-n.counts<=0||Date.now()>dayjs(currentDate).subtract(-1,'day').valueOf()"
88 class="btn-lineG w200px" round size="large" type="primary" @click="goMatch(n)"
89 >
90 {{ language == 0 ? '立即预约' : 'Select' }} ⇀
91 </el-button>
78 </el-row> 92 </el-row>
79 </el-row> 93 </el-row>
80 </div> 94 </div>
...@@ -82,63 +96,66 @@ ...@@ -82,63 +96,66 @@
82 </el-row> 96 </el-row>
83 </li> 97 </li>
84 </ul> 98 </ul>
85 <el-empty v-if="schList.length== 0" 99 <el-empty
86 style="--el-empty-padding:0;--el-empty-description-margin-top:0" 100 v-if="schList.length== 0"
87 :image="`/img/order_no.png`" 101 :image="`/img/order_no.png`"
88 :image-size="200"/> 102 :image-size="200"
103 style="--el-empty-padding:0;--el-empty-description-margin-top:0"
104 />
89 </div> 105 </div>
90 </div> 106 </div>
91 </template> 107 </template>
92 108
93 <script setup> 109 <script setup>
94 import {ref,onMounted} from "vue"; 110 import { ref, onMounted } from 'vue'
95 import {dayjs} from "element-plus"; 111 import { dayjs } from 'element-plus'
96 import {useRoute,useRouter} from 'vue-router' 112 import { useRoute, useRouter } from 'vue-router'
97 import * as booking from "@/apiPc/booking" 113 import * as booking from '@/apiPc/booking'
98 import {useStorage} from "@vueuse/core/index"; 114 import { useStorage } from '@vueuse/core/index'
99 import useUserStore from "/@/store/modules/user"; 115 import useUserStore from '/@/store/modules/user'
100 import {getActivityPhotoVoListByShootId, getBaseInfoByActiveId} from "@/apiPc/booking"; 116 import { getActivityPhotoVoListByShootId, getBaseInfoByActiveId } from '@/apiPc/booking'
101 import {ElMessageBox} from'element-plus' 117 import { ElMessageBox } from 'element-plus'
102 118 import { getCurrentInstance } from '@vue/runtime-core'
119
120 const { proxy } = getCurrentInstance()
103 const user = useUserStore().user 121 const user = useUserStore().user
104 const language = useStorage('language', 0) 122 const language = useStorage('language', 0)
105 const router = useRouter() 123 const router = useRouter()
106 const route=useRoute() 124 const route = useRoute()
107 const currentDate = ref(new Date()) 125 const currentDate = ref(new Date())
108 const currentDate1 = ref(new Date()) 126 const currentDate1 = ref(new Date())
109 const calendarRange = ref([dayjs(currentDate.value).toDate(),(dayjs(currentDate.value).toDate())]) 127 const calendarRange = ref([dayjs(currentDate.value).toDate(), (dayjs(currentDate.value).toDate())])
110 const schList = ref([]) 128 const schList = ref([])
111 const loading = ref(false) 129 const loading = ref(false)
112 const query = ref({ 130 const query = ref({
113 lasId:route.params.id, 131 lasId: route.params.id
114 }) 132 })
115 const value2=ref('') 133 const value2 = ref('')
116 const formTime=ref() 134 const formTime = ref()
117 135
118 onMounted(() => { 136 onMounted(() => {
119 getBaseInfoByActiveId(route.params.cptId).then(res=>{ 137 getBaseInfoByActiveId(route.params.cptId).then(res => {
120 formTime.value = res.data || null 138 formTime.value = res.data || null
121 }).catch(err=>{ 139 }).catch(err => {
122 console.log(err) 140 console.log(err)
123 formTime.value = null 141 formTime.value = null
124 }).finally(()=>{ 142 }).finally(() => {
125 getData() 143 getData()
126 getScheduleList() 144 getScheduleList()
127 }) 145 })
128 }) 146 })
129 147
130 148
131 function getData(){ 149 function getData() {
132 if (!formTime.value.photoStart) return 150 if (!formTime.value.photoStart) return
133 const toDay=dayjs(dayjs().format('YYYY-MM-DD')).valueOf() 151 const toDay = dayjs(dayjs().format('YYYY-MM-DD')).valueOf()
134 const start=dayjs(formTime.value.photoStart).valueOf() 152 const start = dayjs(formTime.value.photoStart).valueOf()
135 if(toDay<start){ 153 if (toDay < start) {
136 currentDate1.value= query.value.currentDate = dayjs(start).format('YYYY-MM-DD') 154 currentDate1.value = query.value.currentDate = dayjs(start).format('YYYY-MM-DD')
137 155 } else {
138 }else{
139 currentDate1.value = query.value.currentDate = dayjs(toDay).format('YYYY-MM-DD') 156 currentDate1.value = query.value.currentDate = dayjs(toDay).format('YYYY-MM-DD')
140 } 157 }
141 calendarRange.value=[dayjs(currentDate1.value).toDate(),(dayjs(currentDate1.value).toDate())] 158 calendarRange.value = [dayjs(currentDate1.value).toDate(), (dayjs(currentDate1.value).toDate())]
142 } 159 }
143 160
144 161
...@@ -146,30 +163,36 @@ function getScheduleList() { ...@@ -146,30 +163,36 @@ function getScheduleList() {
146 loading.value = true 163 loading.value = true
147 query.value.currentDate = dayjs(currentDate.value).format('YYYY-MM-DD') 164 query.value.currentDate = dayjs(currentDate.value).format('YYYY-MM-DD')
148 console.log(query.value) 165 console.log(query.value)
149 booking.getActivityPhotoVoListByShootId(query.value).then(res=>{ 166 booking.getActivityPhotoVoListByShootId(query.value).then(res => {
150 loading.value = false 167 loading.value = false
151 schList.value = res.data 168 schList.value = res.data
152 }) 169 })
153 } 170 }
171
154 function selectDate(date) { 172 function selectDate(date) {
155 currentDate1.value= currentDate.value=dayjs(date).toDate() 173 currentDate1.value = currentDate.value = dayjs(date).toDate()
156 getScheduleList() 174 getScheduleList()
157 } 175 }
158 176
159 function dateChange(){ 177 function dateChange() {
160 currentDate.value=currentDate1.value 178 currentDate.value = currentDate1.value
161 calendarRange.value=[dayjs(currentDate.value).toDate(),(dayjs(currentDate.value).toDate())] 179 calendarRange.value = [dayjs(currentDate.value).toDate(), (dayjs(currentDate.value).toDate())]
162 getScheduleList() 180 getScheduleList()
163 } 181 }
164 182
165 function goMatch(n) { 183 async function goMatch(n) {
166 console.log(11) 184 console.log(11)
185 const { data } = await getBaseInfoByActiveId(route.params.cptId)
186 if (data.isPhotoView == 0) {
187 return proxy.$modal.confirm(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
188 }
189
167 if (!user) { 190 if (!user) {
168 useUserStore().setVisitor() 191 useUserStore().setVisitor()
169 return 192 return
170 } 193 }
171 194
172 ElMessageBox.confirm(language.value==0?`你当前所预约的时间为${query.value.currentDate}是否确定?`:`Your current appointment is ${query.value.currentDate}. Are you sure?`,{type:'warning'}) 195 ElMessageBox.confirm(language.value == 0 ? `你当前所预约的时间为${query.value.currentDate}是否确定?` : `Your current appointment is ${query.value.currentDate}. Are you sure?`, { type: 'warning' })
173 .then((rr) => { 196 .then((rr) => {
174 console.log(rr) 197 console.log(rr)
175 router.push({ 198 router.push({
...@@ -186,25 +209,23 @@ function goMatch(n) { ...@@ -186,25 +209,23 @@ function goMatch(n) {
186 // catch error 209 // catch error
187 console.log(e) 210 console.log(e)
188 }) 211 })
189
190
191 } 212 }
192 213
193 function disabledDateRZ(date) { 214 function disabledDateRZ(date) {
194 if (formTime.value) { 215 if (formTime.value) {
195 const toDay=dayjs(dayjs().format('YYYY-MM-DD')).valueOf() 216 const toDay = dayjs(dayjs().format('YYYY-MM-DD')).valueOf()
196 const start=dayjs(formTime.value.photoStart).valueOf() 217 const start = dayjs(formTime.value.photoStart).valueOf()
197 const end=dayjs(formTime.value.photoEnd).valueOf() 218 const end = dayjs(formTime.value.photoEnd).valueOf()
198 if (toDay<start) { 219 if (toDay < start) {
199 return date.getTime()<start||date.getTime()>end 220 return date.getTime() < start || date.getTime() > end
200 } else if(toDay>start&&toDay <end) { 221 } else if (toDay > start && toDay < end) {
201 return date.getTime()<toDay||date.getTime()>end 222 return date.getTime() < toDay || date.getTime() > end
202 }else return true 223 } else return true
203 } 224 }
204 } 225 }
205 </script> 226 </script>
206 227
207 <style scoped lang="scss"> 228 <style lang="scss" scoped>
208 .el-calendar { 229 .el-calendar {
209 --el-calendar-border: none; 230 --el-calendar-border: none;
210 --el-calendar-cell-width: 40px; 231 --el-calendar-cell-width: 40px;
...@@ -259,7 +280,8 @@ function disabledDateRZ(date) { ...@@ -259,7 +280,8 @@ function disabledDateRZ(date) {
259 height: 625px; 280 height: 625px;
260 281
261 ul { 282 ul {
262 li {cursor: pointer; 283 li {
284 cursor: pointer;
263 background: #F6F9FE; 285 background: #F6F9FE;
264 margin: 7px 0 7px 20px; 286 margin: 7px 0 7px 20px;
265 position: relative; 287 position: relative;
...@@ -323,21 +345,22 @@ function disabledDateRZ(date) { ...@@ -323,21 +345,22 @@ function disabledDateRZ(date) {
323 } 345 }
324 } 346 }
325 347
326 .hz-title{ 348 .hz-title {
327 font-size: 20px; 349 font-size: 20px;
328 font-weight: 400; 350 font-weight: 400;
329 color: #000; 351 color: #000;
330 margin-top:20px; 352 margin-top: 20px;
331 margin-bottom: 10px; 353 margin-bottom: 10px;
332 } 354 }
333 355
334 .zh-margin{ 356 .zh-margin {
335 font-weight: bold; 357 font-weight: bold;
336 font-size: 36px; 358 font-size: 36px;
337 color: #FF8124; 359 color: #FF8124;
338 margin-right: 30px; 360 margin-right: 30px;
339 } 361 }
340 .hz-p{ 362
363 .hz-p {
341 font-size: 16px; 364 font-size: 16px;
342 color: #4C5359; 365 color: #4C5359;
343 font-weight: 400; 366 font-weight: 400;
...@@ -349,7 +372,7 @@ function disabledDateRZ(date) { ...@@ -349,7 +372,7 @@ function disabledDateRZ(date) {
349 line-height: 50px; 372 line-height: 50px;
350 } 373 }
351 374
352 .canBtn{ 375 .canBtn {
353 color: #453DEA; 376 color: #453DEA;
354 border-radius: 2px; 377 border-radius: 2px;
355 width: 22px; 378 width: 22px;
...@@ -358,10 +381,10 @@ function disabledDateRZ(date) { ...@@ -358,10 +381,10 @@ function disabledDateRZ(date) {
358 text-align: center; 381 text-align: center;
359 background-color: #fff; 382 background-color: #fff;
360 margin: 0 16px -2px 16px; 383 margin: 0 16px -2px 16px;
361 cursor:pointer 384 cursor: pointer
362 } 385 }
363 386
364 .cTitle{ 387 .cTitle {
365 color: #fff; 388 color: #fff;
366 font-size: 20px; 389 font-size: 20px;
367 font-weight: 500; 390 font-weight: 500;
......
...@@ -5,69 +5,73 @@ ...@@ -5,69 +5,73 @@
5 <el-row> 5 <el-row>
6 <div class="zh-title">{{ form.name }}</div> 6 <div class="zh-title">{{ form.name }}</div>
7 <div class="tagbox esp"> 7 <div class="tagbox esp">
8 <span v-for="(t,index) in form.label?.split(',')" v-show="index<4">{{t}}</span> 8 <span v-for="(t,index) in form.label?.split(',')" v-show="index<4">{{ t }}</span>
9 </div> 9 </div>
10 </el-row> 10 </el-row>
11 <el-row class="hz-row"> 11 <el-row class="hz-row">
12 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> 12 <el-icon color="#929AA0" size="16" style="position: relative;top: 2px">
13 <OfficeBuilding/> 13 <OfficeBuilding />
14 </el-icon> 14 </el-icon>
15 {{ language==0?'成立':'Established for'}} <span class="sign">{{form.ageLimit}}</span>{{language==0?'年':'years'}} &nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 15 {{ language == 0 ? '成立' : 'Established for' }} <span
16 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> 16 class="sign"
17 <UserFilled/> 17 >{{ form.ageLimit }}</span>{{ language == 0 ? '年' : 'years' }} &nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;
18 <el-icon color="#929AA0" size="16" style="position: relative;top: 2px">
19 <UserFilled />
18 </el-icon> 20 </el-icon>
19 <span class="sign"> {{ form.dresserLimit }}</span>{{language==0?'名摄影师':'Photographers' }}&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp; 21 <span class="sign"> {{ form.dresserLimit }}</span>{{ language == 0 ? '名摄影师' : 'Photographers' }}&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;
20 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> 22 <el-icon color="#929AA0" size="16" style="position: relative;top: 2px">
21 <PhoneFilled/> 23 <PhoneFilled />
22 </el-icon> 24 </el-icon>
23 <span style="padding-top: 2px"> 25 <span style="padding-top: 2px">
24 {{ form.contact }} 26 {{ form.contact }}
25 </span> 27 </span>
26 &nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp; 28 &nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;
27 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> 29 <el-icon color="#929AA0" size="16" style="position: relative;top: 2px">
28 <LocationFilled/> 30 <LocationFilled />
29 </el-icon> 31 </el-icon>
30 {{form.remarks}} 32 {{ form.remarks }}
31 </el-row> 33 </el-row>
32 <div style="display: flex"> 34 <div style="display: flex">
33 <div style="min-width: 130px" class="title">{{language==0?'工作室简介:':'Studio profile:'}}</div> 35 <div class="title" style="min-width: 130px">{{ language == 0 ? '工作室简介:' : 'Studio profile:' }}</div>
34 <div v-html="form.introduction"></div> 36 <div v-html="form.introduction" />
35 </div> 37 </div>
36 </el-card> 38 </el-card>
37 <div class="mt30"> 39 <div class="mt30">
38 <el-row :gutter="20"> 40 <el-row :gutter="20">
39 <el-col :span="10"> 41 <el-col :span="10">
40 <div class="imgbox hotelImg"> 42 <div class="imgbox hotelImg">
41 <el-image :src="form?.photosList?.[0]" fit="cover" :preview-src-list="form?.photosList"/> 43 <el-image :preview-src-list="form?.photosList" :src="form?.photosList?.[0]" fit="cover" />
42 </div> 44 </div>
43 </el-col> 45 </el-col>
44 <el-col :span="14"> 46 <el-col :span="14">
45 <el-row class="h100" :gutter="20"> 47 <el-row :gutter="20" class="h100">
46 <el-col :span="8" class="oddmb" v-for="(p,index) in form?.photosList?.slice(1,7)"> 48 <el-col v-for="(p,index) in form?.photosList?.slice(1,7)" :span="8" class="oddmb">
47 <div class="imgbox hotelImg"><el-image :src="p" fit="cover"/></div> 49 <div class="imgbox hotelImg">
50 <el-image :src="p" fit="cover" />
51 </div>
48 </el-col> 52 </el-col>
49 </el-row> 53 </el-row>
50 </el-col> 54 </el-col>
51 </el-row> 55 </el-row>
52 </div> 56 </div>
53 <br> 57 <br>
54
55 <el-card :body-style="{'padding':'20px 20px'}"> 58 <el-card :body-style="{'padding':'20px 20px'}">
56 <PhotoGraphyCalendar/> 59 <PhotoGraphyCalendar />
57 </el-card> 60 </el-card>
58 </div> 61 </div>
59 </div> 62 </div>
60 </template> 63 </template>
61 64
62 <script setup > 65 <script setup>
63 import {useRouter} from "vue-router"; 66 import { useRouter } from 'vue-router'
64 import {ref, reactive, onMounted} from "vue"; 67 import { ref, reactive, onMounted } from 'vue'
65 import {useRoute} from "vue-router"; 68 import { useRoute } from 'vue-router'
66 import * as booking from "@/apiPc/booking" 69 import * as booking from '@/apiPc/booking'
67 import {useStorage} from "@vueuse/core/index"; 70 import { useStorage } from '@vueuse/core/index'
68 import useUserStore from "@/store/modules/user"; 71 import useUserStore from '@/store/modules/user'
69 import PhotoGraphyCalendar from "@/viewsPc/booking/component/photoGraphyCalendar.vue"; 72 import PhotoGraphyCalendar from '@/viewsPc/booking/component/photoGraphyCalendar.vue'
70 import {fillImgUrl} from "/@/utils/ruoyi"; 73 import { fillImgUrl } from '/@/utils/ruoyi'
74
71 const user = useUserStore().user 75 const user = useUserStore().user
72 const language = useStorage('language', 0) 76 const language = useStorage('language', 0)
73 const router = useRouter() 77 const router = useRouter()
...@@ -75,7 +79,7 @@ const route = useRoute() ...@@ -75,7 +79,7 @@ const route = useRoute()
75 const form = ref({}) 79 const form = ref({})
76 const query = ref({ 80 const query = ref({
77 activityId: route.params.cptId, 81 activityId: route.params.cptId,
78 id:route.params.id 82 id: route.params.id
79 }) 83 })
80 const loading = ref(false) 84 const loading = ref(false)
81 const map = ref(null) 85 const map = ref(null)
...@@ -88,19 +92,18 @@ function getData() { ...@@ -88,19 +92,18 @@ function getData() {
88 booking.getComShootVoById(query.value).then(res => { 92 booking.getComShootVoById(query.value).then(res => {
89 loading.value = false 93 loading.value = false
90 form.value = res.data 94 form.value = res.data
91 form.value.photosList=[] 95 form.value.photosList = []
92 form.value.photos.split(',').forEach(v=>{ 96 form.value.photos.split(',').forEach(v => {
93 form.value.photosList.push(fillImgUrl(v)) 97 form.value.photosList.push(fillImgUrl(v))
94 }) 98 })
95 }).catch(err => { 99 }).catch(err => {
96 console.log(err) 100 console.log(err)
97 }) 101 })
98
99 } 102 }
100 103
101 </script> 104 </script>
102 105
103 <style scoped lang="scss"> 106 <style lang="scss" scoped>
104 .room { 107 .room {
105 background: #FAFBFD; 108 background: #FAFBFD;
106 margin: 20px 0 0; 109 margin: 20px 0 0;
...@@ -260,14 +263,17 @@ function getData() { ...@@ -260,14 +263,17 @@ function getData() {
260 width: 100%; 263 width: 100%;
261 height: 100%; 264 height: 100%;
262 position: relative; 265 position: relative;
263 img{object-fit: cover} 266
267 img {
268 object-fit: cover
269 }
264 } 270 }
265 271
266 .img-hover{ 272 .img-hover {
267 position: absolute; 273 position: absolute;
268 top: 0; 274 top: 0;
269 left: 0; 275 left: 0;
270 background-color: rgb(0,0,0,.5); 276 background-color: rgb(0, 0, 0, .5);
271 color: #fff; 277 color: #fff;
272 font-size: 18px; 278 font-size: 18px;
273 font-weight: 400; 279 font-weight: 400;
...@@ -279,12 +285,25 @@ function getData() { ...@@ -279,12 +285,25 @@ function getData() {
279 285
280 //display: none; 286 //display: none;
281 } 287 }
282 .hotelImg{border-radius: 10px;overflow: hidden;aspect-ratio: 16/9; 288
283 img{object-fit: cover;object-position: center;width: 100%;height: 100%; 289 .hotelImg {
290 border-radius: 10px;
291 overflow: hidden;
292 aspect-ratio: 16/9;
293
294 img {
295 object-fit: cover;
296 object-position: center;
297 width: 100%;
298 height: 100%;
284 } 299 }
285 } 300 }
286 .oddmb:nth-child(2){margin-bottom: 20px;} 301
287 .title{ 302 .oddmb:nth-child(2) {
303 margin-bottom: 20px;
304 }
305
306 .title {
288 width: 130px; 307 width: 130px;
289 font-weight: 500; 308 font-weight: 500;
290 font-size: 18px; 309 font-size: 18px;
......
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
133 </div> 133 </div>
134 <div class="text-right"> 134 <div class="text-right">
135 <el-button 135 <el-button
136 v-if="(b.orderType == 0||b.orderType == 5||b.orderType==1||b.orderType==2||b.orderType==3)&&b.viewStatus!=0" 136 v-if="(b.orderType == 0||b.orderType == 5||b.orderType==1||b.orderType==2||b.orderType==3||b.orderType==4)&&b.viewStatus!=0"
137 class="mb10" plain round 137 class="mb10" plain round
138 size="small" type="success" 138 size="small" type="success"
139 @click="Rebook(b)" 139 @click="Rebook(b)"
...@@ -266,6 +266,12 @@ function Rebook(row) { ...@@ -266,6 +266,12 @@ function Rebook(row) {
266 path: `/booking/makeUp/${row.activeId}/${row.extId}` 266 path: `/booking/makeUp/${row.activeId}/${row.extId}`
267 }) 267 })
268 } 268 }
269 // 拍摄
270 if (row.orderType == 4) {
271 return router.push({
272 path: `/booking/photography/${row.activeId}/${row.extId}`
273 })
274 }
269 275
270 if (row.orderType == 5) { 276 if (row.orderType == 5) {
271 router.push({ 277 router.push({
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!