136529c9 by zhangmeng

化妆

1 parent 864e02a7
...@@ -5,48 +5,53 @@ ...@@ -5,48 +5,53 @@
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?'名化妆师':'makeup artists' }}&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp; 21 <span class="sign"> {{ form.dresserLimit }}</span>{{ language == 0 ? '名化妆师' : 'makeup artists' }}&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 34
33 <div style="display: flex"> 35 <div style="display: flex">
34 <div style="min-width: 130px" class="title forPc">{{language==0?'工作室简介:':'Studio profile:'}}</div> 36 <div class="title forPc" style="min-width: 130px">{{ language == 0 ? '工作室简介:' : 'Studio profile:' }}
35 <div v-html="form.introduction"></div> 37 </div>
38 <div v-html="form.introduction" />
36 </div> 39 </div>
37 </el-card> 40 </el-card>
38 41
39 <div class="mt30"> 42 <div class="mt30">
40 <el-row :gutter="20"> 43 <el-row :gutter="20">
41 <el-col :span="10"> 44 <el-col :span="10">
42 <div class="imgbox hotelImg"> 45 <div class="imgbox hotelImg">
43 <el-image :src="form?.photosList?.[0]" fit="cover" :preview-src-list="form?.photosList"/> 46 <el-image :preview-src-list="form?.photosList" :src="form?.photosList?.[0]" fit="cover" />
44 </div> 47 </div>
45 </el-col> 48 </el-col>
46 <el-col :span="14"> 49 <el-col :span="14">
47 <el-row class="h100" :gutter="20"> 50 <el-row :gutter="20" class="h100">
48 <el-col :span="8" class="oddmb" v-for="(p,index) in form?.photosList?.slice(1,7)"> 51 <el-col v-for="(p,index) in form?.photosList?.slice(1,7)" :span="8" class="oddmb">
49 <div class="imgbox hotelImg"><el-image :src="p" fit="cover"/></div> 52 <div class="imgbox hotelImg">
53 <el-image :src="p" fit="cover" />
54 </div>
50 </el-col> 55 </el-col>
51 </el-row> 56 </el-row>
52 </el-col> 57 </el-col>
...@@ -54,22 +59,23 @@ ...@@ -54,22 +59,23 @@
54 </div> 59 </div>
55 <br> 60 <br>
56 <el-card :body-style="{'padding':'20px 20px'}"> 61 <el-card :body-style="{'padding':'20px 20px'}">
57 <MakeUpCalendar/> 62 <MakeUpCalendar />
58 </el-card> 63 </el-card>
59 64
60 </div> 65 </div>
61 </div> 66 </div>
62 </template> 67 </template>
63 68
64 <script setup > 69 <script setup>
65 import {useRouter} from "vue-router"; 70 import { useRouter } from 'vue-router'
66 import {ref, reactive, onMounted} from "vue"; 71 import { ref, reactive, onMounted } from 'vue'
67 import {useRoute} from "vue-router"; 72 import { useRoute } from 'vue-router'
68 import * as booking from "@/apiPc/booking" 73 import * as booking from '@/apiPc/booking'
69 import {useStorage} from "@vueuse/core/index"; 74 import { useStorage } from '@vueuse/core/index'
70 import useUserStore from "@/store/modules/user"; 75 import useUserStore from '@/store/modules/user'
71 import MakeUpCalendar from "@/viewsPc/booking/component/makeUpCalendar.vue"; 76 import MakeUpCalendar from '@/viewsPc/booking/component/makeUpCalendar.vue'
72 import {fillImgUrl} from "/@/utils/ruoyi"; 77 import { fillImgUrl } from '/@/utils/ruoyi'
78
73 const user = useUserStore().user 79 const user = useUserStore().user
74 const language = useStorage('language', 0) 80 const language = useStorage('language', 0)
75 const router = useRouter() 81 const router = useRouter()
...@@ -77,7 +83,7 @@ const route = useRoute() ...@@ -77,7 +83,7 @@ const route = useRoute()
77 const form = ref({}) 83 const form = ref({})
78 const query = ref({ 84 const query = ref({
79 activityId: route.params.cptId, 85 activityId: route.params.cptId,
80 id:route.params.id 86 id: route.params.id
81 }) 87 })
82 const loading = ref(false) 88 const loading = ref(false)
83 onMounted(() => { 89 onMounted(() => {
...@@ -89,8 +95,8 @@ function getData() { ...@@ -89,8 +95,8 @@ function getData() {
89 booking.makeUpDetail(query.value).then(res => { 95 booking.makeUpDetail(query.value).then(res => {
90 loading.value = false 96 loading.value = false
91 form.value = res.data 97 form.value = res.data
92 form.value.photosList=[] 98 form.value.photosList = []
93 form.value.photos?.split(',')?.forEach(v=>{ 99 form.value.photos?.split(',')?.forEach(v => {
94 form.value.photosList.push(fillImgUrl(v)) 100 form.value.photosList.push(fillImgUrl(v))
95 }) 101 })
96 console.log(res) 102 console.log(res)
...@@ -101,23 +107,23 @@ function getData() { ...@@ -101,23 +107,23 @@ function getData() {
101 107
102 </script> 108 </script>
103 109
104 <style scoped lang="scss"> 110 <style lang="scss" scoped>
105 .room { 111 .room {
106 background: #FAFBFD; 112 background: #FAFBFD;
107 margin: 20px 0 0; 113 margin: 20px 0 0;
108 padding: 20px; 114 padding: 20px;
109 border: 1px solid #E5E5E5; 115 border: 1px solid #E5E5E5;
110 116
111 .name { 117 .name {
112 font-size: 20px; 118 font-size: 20px;
113 margin: 0 0 10px; 119 margin: 0 0 10px;
114 } 120 }
115 121
116 .roomImg { 122 .roomImg {
117 aspect-ratio: 16/9; 123 aspect-ratio: 16/9;
118 border-radius: 10px; 124 border-radius: 10px;
119 overflow: hidden; 125 overflow: hidden;
120 126
121 img { 127 img {
122 width: 100%; 128 width: 100%;
123 object-fit: cover; 129 object-fit: cover;
...@@ -125,17 +131,17 @@ function getData() { ...@@ -125,17 +131,17 @@ function getData() {
125 height: 100%; 131 height: 100%;
126 } 132 }
127 } 133 }
128 134
129 .price { 135 .price {
130 color: #FF8124; 136 color: #FF8124;
131 font-size: 24px; 137 font-size: 24px;
132 138
133 span { 139 span {
134 font-size: 36px; 140 font-size: 36px;
135 font-family: "DIN Alternate" 141 font-family: "DIN Alternate"
136 } 142 }
137 } 143 }
138 144
139 .bg-lineg { 145 .bg-lineg {
140 margin: auto; 146 margin: auto;
141 border-radius: 10px; 147 border-radius: 10px;
...@@ -144,7 +150,7 @@ function getData() { ...@@ -144,7 +150,7 @@ function getData() {
144 font-size: 24px; 150 font-size: 24px;
145 width: 66px; 151 width: 66px;
146 cursor: pointer; 152 cursor: pointer;
147 153
148 div { 154 div {
149 background: #fff; 155 background: #fff;
150 font-size: 13px; 156 font-size: 13px;
...@@ -167,30 +173,30 @@ function getData() { ...@@ -167,30 +173,30 @@ function getData() {
167 h3 { 173 h3 {
168 margin: 0 0 20px; 174 margin: 0 0 20px;
169 } 175 }
170 176
171 img.w100 { 177 img.w100 {
172 object-fit: cover; 178 object-fit: cover;
173 aspect-ratio: 16/9 179 aspect-ratio: 16/9
174 } 180 }
175 181
176 .addr { 182 .addr {
177 font-size: 16px; 183 font-size: 16px;
178 color: #929AA0; 184 color: #929AA0;
179 font-weight: 400; 185 font-weight: 400;
180 } 186 }
181 187
182 .price { 188 .price {
183 margin: 0 0 25px; 189 margin: 0 0 25px;
184 color: #FF8124; 190 color: #FF8124;
185 font-size: 18px; 191 font-size: 18px;
186 192
187 span { 193 span {
188 font-size: 24px; 194 font-size: 24px;
189 margin: 0 8px; 195 margin: 0 8px;
190 font-family: 'DINAlternate-Bold'; 196 font-family: 'DINAlternate-Bold';
191 font-weight: 600; 197 font-weight: 600;
192 } 198 }
193 199
194 i { 200 i {
195 font-style: normal; 201 font-style: normal;
196 color: #929AA0; 202 color: #929AA0;
...@@ -201,12 +207,12 @@ function getData() { ...@@ -201,12 +207,12 @@ function getData() {
201 207
202 .tagbox { 208 .tagbox {
203 margin: 15px 0; 209 margin: 15px 0;
204 210
205 a { 211 a {
206 color: #AFB5B9; 212 color: #AFB5B9;
207 font-size: 12px; 213 font-size: 12px;
208 } 214 }
209 215
210 span { 216 span {
211 border-radius: 13px; 217 border-radius: 13px;
212 font-size: 12px; 218 font-size: 12px;
...@@ -214,22 +220,22 @@ function getData() { ...@@ -214,22 +220,22 @@ function getData() {
214 margin-right: 10px; 220 margin-right: 10px;
215 font-weight: 400; 221 font-weight: 400;
216 } 222 }
217 223
218 span:nth-child(4n) { 224 span:nth-child(4n) {
219 background: rgba(50, 177, 108, 0.2); 225 background: rgba(50, 177, 108, 0.2);
220 color: rgba(50, 177, 108, 1); 226 color: rgba(50, 177, 108, 1);
221 } 227 }
222 228
223 span:nth-child(4n+1) { 229 span:nth-child(4n+1) {
224 background: rgba(243, 152, 0, 0.2); 230 background: rgba(243, 152, 0, 0.2);
225 color: rgba(243, 152, 0, 1); 231 color: rgba(243, 152, 0, 1);
226 } 232 }
227 233
228 span:nth-child(4n+2) { 234 span:nth-child(4n+2) {
229 background: rgba(0, 160, 233, 0.2); 235 background: rgba(0, 160, 233, 0.2);
230 color: rgba(0, 160, 233, 1); 236 color: rgba(0, 160, 233, 1);
231 } 237 }
232 238
233 span:nth-child(4n+3) { 239 span:nth-child(4n+3) {
234 background: rgba(247, 64, 166, 0.2); 240 background: rgba(247, 64, 166, 0.2);
235 color: rgba(247, 64, 166, 1); 241 color: rgba(247, 64, 166, 1);
...@@ -249,14 +255,17 @@ function getData() { ...@@ -249,14 +255,17 @@ function getData() {
249 width: 100%; 255 width: 100%;
250 height: 100%; 256 height: 100%;
251 position: relative; 257 position: relative;
252 img{object-fit: cover} 258
259 img {
260 object-fit: cover
261 }
253 } 262 }
254 263
255 .img-hover{ 264 .img-hover {
256 position: absolute; 265 position: absolute;
257 top: 0; 266 top: 0;
258 left: 0; 267 left: 0;
259 background-color: rgb(0,0,0,.5); 268 background-color: rgb(0, 0, 0, .5);
260 color: #fff; 269 color: #fff;
261 font-size: 18px; 270 font-size: 18px;
262 font-weight: 400; 271 font-weight: 400;
...@@ -267,12 +276,24 @@ function getData() { ...@@ -267,12 +276,24 @@ function getData() {
267 border-radius: 10px; 276 border-radius: 10px;
268 } 277 }
269 278
270 .hotelImg{border-radius: 10px;overflow: hidden;aspect-ratio: 16/9; 279 .hotelImg {
271 img{object-fit: cover;object-position: center;width: 100%;height: 100%; 280 border-radius: 10px;
281 overflow: hidden;
282 aspect-ratio: 16/9;
283
284 img {
285 object-fit: cover;
286 object-position: center;
287 width: 100%;
288 height: 100%;
272 } 289 }
273 } 290 }
274 .oddmb:nth-child(2){margin-bottom: 20px;} 291
275 .title{ 292 .oddmb:nth-child(2) {
293 margin-bottom: 20px;
294 }
295
296 .title {
276 width: 130px; 297 width: 130px;
277 font-weight: 500; 298 font-weight: 500;
278 font-size: 18px; 299 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.viewStatus!=0" 136 v-if="(b.orderType == 0||b.orderType == 5||b.orderType==1||b.orderType==2||b.orderType==3)&&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)"
...@@ -236,6 +236,19 @@ function goDetail(b) { ...@@ -236,6 +236,19 @@ function goDetail(b) {
236 236
237 function Rebook(row) { 237 function Rebook(row) {
238 console.log(row) 238 console.log(row)
239 if (row.orderType == 0) {
240 router.push({
241 name: 'hotelDetail',
242 params: {
243 cptId: row.activeId,
244 hotelId: row.hotelId
245 },
246 query: {
247 id: row.extId
248 }
249 })
250 }
251
239 if (row.orderType == 1) { 252 if (row.orderType == 1) {
240 return router.push({ 253 return router.push({
241 path: `/booking/car/${row.activeId}` 254 path: `/booking/car/${row.activeId}`
...@@ -247,19 +260,13 @@ function Rebook(row) { ...@@ -247,19 +260,13 @@ function Rebook(row) {
247 path: `/booking/dinner/${row.activeId}` 260 path: `/booking/dinner/${row.activeId}`
248 }) 261 })
249 } 262 }
250 263 // 化妆
251 if (row.orderType == 0) { 264 if (row.orderType == 3) {
252 router.push({ 265 return router.push({
253 name: 'hotelDetail', 266 path: `/booking/makeUp/${row.activeId}/${row.extId}`
254 params: {
255 cptId: row.activeId,
256 hotelId: row.hotelId
257 },
258 query: {
259 id: row.extId
260 }
261 }) 267 })
262 } 268 }
269
263 if (row.orderType == 5) { 270 if (row.orderType == 5) {
264 router.push({ 271 router.push({
265 name: 'ticket', 272 name: 'ticket',
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!