04824efb by 杨炀

add: 媒体注册

1 parent 5a429eed

8.47 KB | W: | H:

14.9 KB | W: | H:

public/img/logo.png
public/img/logo.png
public/img/logo.png
public/img/logo.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -190,4 +190,19 @@ export function getHomeRoomQuery(params) { ...@@ -190,4 +190,19 @@ export function getHomeRoomQuery(params) {
190 params: params 190 params: params
191 }) 191 })
192 } 192 }
193 export function getMediaInfo(params) {
194 return request({
195 url: `/league/media/getMediaInfo`,
196 method: 'get',
197 params: params
198 })
199 }
200 export function mediaRegister(data) {
201 return request({
202 url: `/league/media`,
203 method: 'post',
204 data
205 })
206 }
207
193 208
......

3.34 KB | W: | H:

30 KB | W: | H:

src/assets/dance/btn06.png
src/assets/dance/btn06.png
src/assets/dance/btn06.png
src/assets/dance/btn06.png
  • 2-up
  • Swipe
  • Onion skin

4.25 KB | W: | H:

36.1 KB | W: | H:

src/assets/dance/btn07.png
src/assets/dance/btn07.png
src/assets/dance/btn07.png
src/assets/dance/btn07.png
  • 2-up
  • Swipe
  • Onion skin
1 <template> 1 <template>
2 <div class="itemBox" v-if="language === 0"> 2 <div class="itemBox" v-if="language === 0">
3 <el-row :gutter="20"> 3 <el-row :gutter="20">
4 <el-col :sm="12" :lg="6" :xs="12"> 4 <el-col :sm="12" :lg="4" :xs="12">
5 <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">签证服务</div> 5 <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">签证服务</div>
6 </el-col> 6 </el-col>
7 <el-col :sm="12" :lg="6" :xs="12"> 7 <el-col :sm="12" :lg="4" :xs="12">
8 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div> 8 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div>
9 </el-col> 9 </el-col>
10 <el-col :sm="12" :lg="6" :xs="12"> 10 <el-col :sm="12" :lg="4" :xs="12">
11 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div> 11 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div>
12 </el-col> 12 </el-col>
13 <el-col :sm="12" :lg="6" :xs="12"> 13 <el-col :sm="12" :lg="4" :xs="12">
14 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">场地介绍</div> 14 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">场地介绍</div>
15 </el-col> 15 </el-col>
16 <el-col :sm="12" :lg="4" :xs="12">
17 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">媒体注册</div>
18 </el-col>
19 <el-col :sm="12" :lg="4" :xs="12">
20 <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">周边活动</div>
21 </el-col>
16 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 22 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
17 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>--> 23 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>-->
18 <!-- </el-col>--> 24 <!-- </el-col>-->
...@@ -32,13 +38,22 @@ ...@@ -32,13 +38,22 @@
32 <el-col :sm="12" :lg="4" :xs="12"> 38 <el-col :sm="12" :lg="4" :xs="12">
33 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">Venue Introduction</div> 39 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">Venue Introduction</div>
34 </el-col> 40 </el-col>
35 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 41 <el-col :sm="12" :lg="4" :xs="12">
42 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">Media Registration</div>
43 </el-col>
44 <el-col :sm="12" :lg="4" :xs="12">
45 <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">Around Activity</div>
46 </el-col>
47
48 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
36 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>--> 49 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>-->
37 <!-- </el-col>--> 50 <!-- </el-col>-->
38 </el-row> 51 </el-row>
39 </div> 52 </div>
40 <order-remark ref="orderRemarkRef" @submit="goBooking"/> 53 <order-remark ref="orderRemarkRef" @submit="goBooking"/>
41 <affix-invitation ref="dialogInvitationRef"/> 54 <affix-invitation ref="dialogInvitationRef"/>
55 <!-- 媒体注册-->
56 <media-register ref="mediaRegisterRef"/>
42 </template> 57 </template>
43 58
44 <script setup> 59 <script setup>
...@@ -47,6 +62,7 @@ import {useRouter} from "vue-router"; ...@@ -47,6 +62,7 @@ import {useRouter} from "vue-router";
47 const router = useRouter() 62 const router = useRouter()
48 import OrderRemark from '@/viewsPc/components/orderRemark' 63 import OrderRemark from '@/viewsPc/components/orderRemark'
49 import AffixInvitation from '@/viewsPc/match/components/affix-invitation' 64 import AffixInvitation from '@/viewsPc/match/components/affix-invitation'
65 import MediaRegister from '@/viewsPc/components/mediaRegister.vue'
50 66
51 const {proxy} = getCurrentInstance() 67 const {proxy} = getCurrentInstance()
52 import {useStorage} from "@vueuse/core/index"; 68 import {useStorage} from "@vueuse/core/index";
...@@ -105,6 +121,11 @@ const liveClick = () => { ...@@ -105,6 +121,11 @@ const liveClick = () => {
105 const goAbout = () => { 121 const goAbout = () => {
106 router.push({path: `/about/wuDao`}) 122 router.push({path: `/about/wuDao`})
107 } 123 }
124 const goAround = () => {
125 //周边活动
126 router.push({path: `/around/wuDao`})
127 }
128
108 onMounted(() => { 129 onMounted(() => {
109 130
110 }) 131 })
...@@ -120,6 +141,10 @@ function applyInvitation() { ...@@ -120,6 +141,10 @@ function applyInvitation() {
120 } 141 }
121 proxy.$refs['dialogInvitationRef'].open(obj) 142 proxy.$refs['dialogInvitationRef'].open(obj)
122 } 143 }
144 function goMedia() {
145 proxy.$refs['mediaRegisterRef'].open({cptId: matchId.value})
146 }
147
123 function popRemark(type) { 148 function popRemark(type) {
124 if (!form.value) { 149 if (!form.value) {
125 building() 150 building()
...@@ -191,8 +216,8 @@ function goBooking(n) { ...@@ -191,8 +216,8 @@ function goBooking(n) {
191 216
192 <style scoped lang="scss"> 217 <style scoped lang="scss">
193 .itemBox,.itemBox_en { 218 .itemBox,.itemBox_en {
194 padding: 20px;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08); 219 //padding: 20px;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08);
195 border-radius: 20px; 220 //border-radius: 20px;
196 } 221 }
197 222
198 223
......
1 <template>
2 <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" center destroy-on-close>
3 <div class="pd20">
4 <el-form ref="dialogRef" label-position="top" :model="form" :rules="rules" v-if="!isDone">
5 <el-form-item :label="language==0?'姓氏':'family name'" required prop="lastName">
6 <el-input v-model="form.lastName"></el-input>
7 </el-form-item>
8 <el-form-item :label="language==0?'名字':'first name'" required prop="fristName">
9 <el-input v-model="form.fristName"></el-input>
10 </el-form-item>
11 <el-form-item :label="language==0?'媒体名称':'media organization'" required prop="mediaName">
12 <el-input v-model="form.mediaName"></el-input>
13 </el-form-item>
14 <el-form-item :label="language==0?'媒体类型':'media category'" required prop="mediaType">
15 <el-select v-model="form.mediaType">
16 <el-option label="Reporter/Written Media" value="0"/>
17 <el-option label="Photographer" value="1"/>
18 <el-option label="TV Non-Rights Holder" value="2"/>
19 </el-select>
20 </el-form-item>
21 <el-form-item :label="language==0?'国家(地区)':'country'" required prop="country">
22 <el-select v-model="form.country" filterable>
23 <el-option v-for="item in countrys"
24 :key="item.id"
25 :label="language==0?item.name:item.enName"
26 :value="language==0?item.id :item.id"/>
27 </el-select>
28 </el-form-item>
29 <el-form-item :label="language==0?'证件类型':'ID type'" required prop="passType">
30 <el-select v-model="form.passType">
31 <el-option :label="language==0?'身份证':'ID Card'" value="0"/>
32 <el-option :label="language==0?'护照':'Passport'" value="1"/>
33 </el-select>
34 </el-form-item>
35 <el-form-item :label="language==0?'身份证(护照)号码':'ID or passport number'" required prop="idCard">
36 <el-input v-model="form.idCard"></el-input>
37 </el-form-item>
38 <el-form-item :label="language==0?'邮箱':'work email'" required prop="email">
39 <el-input v-model="form.email"></el-input>
40 </el-form-item>
41 <el-form-item :label="language==0?'一寸证件照':'profile photo'" required prop="photos">
42 <image-upload v-model="form.photos" :limit="1" :is-show-tip="false"
43 :button-text="language==0?'上传':'Upload'"/>
44 </el-form-item>
45 </el-form>
46
47 <!-- “提交成功”状态、提交记录、和提交的信息展示 提交后需要修改请联系XXXX邮箱-->
48 <div v-if="isDone">
49 <el-descriptions column="1" border>
50 <el-descriptions-item :label="language==0?'姓氏':'family name'">{{form.lastName}}</el-descriptions-item>
51 <el-descriptions-item :label="language==0?'名字':'first name'">{{form.fristName}}</el-descriptions-item>/>
52 <el-descriptions-item :label="language==0?'媒体名称':'media organization'">{{form.mediaName}}</el-descriptions-item>
53 <el-descriptions-item :label="language==0?'媒体类型':'media category'">
54 <span v-if="form.mediaType==0">Reporter/Written Media</span>
55 <span v-if="form.mediaType==1">Photographer</span>
56 <span v-if="form.mediaType==2">TV Non-Rights Holder</span>
57 </el-descriptions-item>
58 <el-descriptions-item :label="language==0?'国家(地区)':'country'">{{form.country}}</el-descriptions-item>/>
59 <el-descriptions-item :label="language==0?'证件类型':'ID type'">
60 <span v-if="form.passType==0">身份证</span>
61 <span v-if="form.passType==1">护照</span>
62 </el-descriptions-item>
63 <el-descriptions-item :label="language==0?'证件号码':'ID NO.'">{{form.idCard}}</el-descriptions-item>
64 <el-descriptions-item :label="language==0?'邮箱':'work email'">{{form.email}}</el-descriptions-item>
65 <el-descriptions-item :label="language==0?'一寸证件照':'profile photo'">
66 <el-image :src="fillImgUrl(form.photos)" style="width: 100px;"/>
67 </el-descriptions-item>
68 </el-descriptions>
69
70 <el-result icon="success" title="已提交" sub-title="提交后需要修改请联系XXXX邮箱" />
71
72 </div>
73
74 </div>
75 <template #footer v-if="!isDone">
76 <el-button @click="cancel">{{language==0?'取消':'cancel'}}</el-button>
77 <el-button type="primary" @click="submit">{{language==0?'确定':'confirm'}}</el-button>
78 </template>
79 </el-dialog>
80 </template>
81
82 <script setup>
83 import {useStorage} from "@vueuse/core/index";
84 import { ref } from "vue";
85 import ImageUpload from "/@/components/ImageUpload/index.vue";
86 import {countryList} from "/@/apiPc/match";
87 import {getMediaInfo, mediaRegister} from "/@/apiPc/common";
88 import useUserStore from "@/store/modules/user";
89 import {ElMessageBox} from "element-plus";
90 const language = useStorage('language', 0)
91 const show = ref(false)
92 const title = ref('')
93 const form = ref({})
94 const isDone = ref(false)
95 const countrys = ref([])
96 const user = useUserStore().user
97 const rules = ref({
98 lastName: [
99 { required: true, message: language.value==0?'请输入姓氏':'Please enter family name', trigger: 'blur'}
100 ],
101 fristName: [
102 { required: true, message: language.value==0?'请输入名字':'Please enter first name', trigger: 'blur'}
103 ],
104 mediaName: [
105 { required: true, message: language.value==0?'请输入媒体名称':'Please enter media organization', trigger: 'blur'}
106 ],
107 mediaType: [
108 { required: true, message: language.value==0?'请选择媒体类型':'Please select media category', trigger: 'blur'}
109 ],
110 country: [
111 { required: true, message: language.value==0?'请选择国家':'Please select country', trigger: 'blur'}
112 ],
113 passType: [
114 { required: true, message: language.value==0?'请选择证件类型':'Please select ID type', trigger: 'blur'}
115 ],
116 idCard: [
117 { required: true, message: language.value==0?'请输入证件号码':'Please enter ID or passport number', trigger: 'blur'}
118 ],
119 email: [
120 { required: true, message: language.value==0?'请输入邮箱':'Please enter work email', trigger: 'blur'}
121 ],
122 photos: [
123 { required: true, message: language.value==0?'请上传一寸证件照':'Please upload profile photo', trigger: 'blur'}
124 ]
125 })
126
127 const open = (params) => {
128 getCountryList()
129 form.value.cptId = params.cptId
130 form.value.userId = user.userId
131 show.value = true
132 title.value = language.value==0 ? '媒体注册' : 'Media Registration'
133 getInfo()
134 }
135 defineExpose({open})
136 function getInfo() {
137 getMediaInfo({userId: user.userId}).then(res=>{
138 if(res.data){
139 isDone.value = true
140 form.value = res.data
141 } else {
142 isDone.value = false
143 }
144 })
145 }
146 function getCountryList() {
147 countryList().then(res => {
148 countrys.value = res.data
149 })
150 }
151 const cancel = () => {
152 show.value = false
153 }
154 const submit = () => {
155 proxy.$refs.dialogRef.validate(valid => {
156 ElMessageBox.confirm( '提交后不能修改,确定提交吗?','提示', {
157 confirmButtonText: language.value==0?'确定':'confirm',
158 cancelButtonText: language.value==0?'取消':'cancel',
159 type: 'warning'
160 }).then(() => {
161 mediaRegister(form.value).then(res=>{
162 isDone.value = true
163 })
164 })
165 })
166 }
167
168 </script>
169
170 <style scoped lang="scss">
171
172 </style>
1 <template> 1 <template>
2 <div> 2 <div class="syBg">
3 <div class="banner"> 3 <div class="banner">
4 <el-carousel class="forPc" autoplay :interval="2000" height="450px" :autoplay="false" arrow="hover" 4 <el-carousel class="forPc" autoplay :interval="2000" height="450px" :autoplay="false" arrow="hover"
5 @change="carouselChange"> 5 @change="carouselChange">
...@@ -173,34 +173,31 @@ ...@@ -173,34 +173,31 @@
173 <el-row :gutter="20"> 173 <el-row :gutter="20">
174 <el-col :lg="8"> 174 <el-col :lg="8">
175 <a class="liveImgbox" target="_blank" @click="golive(livelist[0])"> 175 <a class="liveImgbox" target="_blank" @click="golive(livelist[0])">
176 <div class="livetimecount" v-if="time>0"> 176 <!-- <div class="livetimecount" v-if="time>0">-->
177 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> 177 <!-- <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">-->
178 <template #default="timeData"> 178 <!-- <template #default="timeData">-->
179 <div class="block">{{ timeData.days }} 179 <!-- <div class="block">{{ timeData.days }}-->
180 </div> 180 <!-- </div>-->
181 <span class="colon"></span> 181 <!-- <span class="colon">天</span>-->
182 <div class="block">{{ timeData.hours }} 182 <!-- <div class="block">{{ timeData.hours }}-->
183 </div> 183 <!-- </div>-->
184 <span class="colon"></span> 184 <!-- <span class="colon">时</span>-->
185 <div class="block">{{ timeData.minutes }} 185 <!-- <div class="block">{{ timeData.minutes }}-->
186 </div> 186 <!-- </div>-->
187 <span class="colon"></span> 187 <!-- <span class="colon">分</span>-->
188 <div class="block">{{ timeData.seconds }} 188 <!-- <div class="block">{{ timeData.seconds }}-->
189 </div> 189 <!-- </div>-->
190 <span class="colon">秒后开播 </span> 190 <!-- <span class="colon">秒后开播 </span>-->
191 </template> 191 <!-- </template>-->
192 </van-count-down> 192 <!-- </van-count-down>-->
193 </div> 193 <!-- </div>-->
194 <i class="ii" v-else-if="etime>0&&time<=0">直播中</i> 194 <!-- <i class="ii" v-else-if="etime>0&&time<=0">直播中</i>-->
195 <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>--> 195 <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>-->
196 <div class="imgBox"> 196 <div class="imgBox">
197 <img v-if="time>0" src="/img/111.jpeg"/> 197 <img :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
198 <img v-else :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
199 </div> 198 </div>
200 <h3 class="esp" v-if="time>0"> 199 <!-- <h3 class="esp" v-if="time>0">世锦赛</h3>-->
201 世锦赛 200 <h3 class="esp">
202 </h3>
203 <h3 class="esp" v-else>
204 {{ livelist[0]?.name }} 201 {{ livelist[0]?.name }}
205 </h3> 202 </h3>
206 </a> 203 </a>
...@@ -529,6 +526,11 @@ const gopicliveUrl = () => { ...@@ -529,6 +526,11 @@ const gopicliveUrl = () => {
529 </script> 526 </script>
530 527
531 <style scoped lang="scss"> 528 <style scoped lang="scss">
529 .syBg{
530 background: url("@/assets/dance/logo_l.png") no-repeat bottom left,
531 url("@/assets/dance/logo_r1.png") no-repeat bottom right;
532 }
533
532 .btabs{display: flex;position: absolute;bottom: 60px;gap: 10px; 534 .btabs{display: flex;position: absolute;bottom: 60px;gap: 10px;
533 div{color: #fff; background-color: rgba(0, 0, 0, 0.5); 535 div{color: #fff; background-color: rgba(0, 0, 0, 0.5);
534 backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px; 536 backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px;
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!