Merge commit 'f8237179' into dev
Showing
27 changed files
with
291 additions
and
143 deletions
| ... | @@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) { | ... | @@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) { |
| 257 | return request({ | 257 | return request({ |
| 258 | url: `/league/sign/recoverMySignFromCancel`, | 258 | url: `/league/sign/recoverMySignFromCancel`, |
| 259 | method: 'post', | 259 | method: 'post', |
| 260 | data: {cptId: cptId} | 260 | data: { cptId: cptId } |
| 261 | }) | 261 | }) |
| 262 | } | 262 | } |
| 263 | 263 | ||
| ... | @@ -402,7 +402,7 @@ export function delPerson(id) { | ... | @@ -402,7 +402,7 @@ export function delPerson(id) { |
| 402 | }) | 402 | }) |
| 403 | } | 403 | } |
| 404 | 404 | ||
| 405 | //个人账号 | 405 | // 个人账号 |
| 406 | export function delPersonForPersonal(id) { | 406 | export function delPersonForPersonal(id) { |
| 407 | return request({ | 407 | return request({ |
| 408 | url: `/systemj/personInfo/singleDelete/${id}`, | 408 | url: `/systemj/personInfo/singleDelete/${id}`, |
| ... | @@ -506,7 +506,8 @@ export function commitSign(data) { | ... | @@ -506,7 +506,8 @@ export function commitSign(data) { |
| 506 | export function getTotalFee(data) { | 506 | export function getTotalFee(data) { |
| 507 | return request({ | 507 | return request({ |
| 508 | url: `/league/expenseConfig/getTotalFee/${data.cptId}/${data.entryId}`, | 508 | url: `/league/expenseConfig/getTotalFee/${data.cptId}/${data.entryId}`, |
| 509 | method: 'get' | 509 | method: 'get', |
| 510 | params: data | ||
| 510 | }) | 511 | }) |
| 511 | } | 512 | } |
| 512 | 513 | ||
| ... | @@ -639,7 +640,7 @@ export function saveWdsfMin(obj, groupId) { | ... | @@ -639,7 +640,7 @@ export function saveWdsfMin(obj, groupId) { |
| 639 | }) | 640 | }) |
| 640 | } | 641 | } |
| 641 | 642 | ||
| 642 | //todo | 643 | // todo |
| 643 | export function bindWdsf(perId, card) { | 644 | export function bindWdsf(perId, card) { |
| 644 | return request({ | 645 | return request({ |
| 645 | url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`, | 646 | url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`, |
| ... | @@ -771,12 +772,14 @@ export function getAboutUs(params) { | ... | @@ -771,12 +772,14 @@ export function getAboutUs(params) { |
| 771 | params | 772 | params |
| 772 | }) | 773 | }) |
| 773 | } | 774 | } |
| 775 | |||
| 774 | export function getppInfo(params) { | 776 | export function getppInfo(params) { |
| 775 | return request({ | 777 | return request({ |
| 776 | url: `/portal/website/${params}`, | 778 | url: `/portal/website/${params}`, |
| 777 | method: 'get' | 779 | method: 'get' |
| 778 | }) | 780 | }) |
| 779 | } | 781 | } |
| 782 | |||
| 780 | export function getZNList(params) { | 783 | export function getZNList(params) { |
| 781 | return request({ | 784 | return request({ |
| 782 | url: `/Portal/websiteInfo/list`, | 785 | url: `/Portal/websiteInfo/list`, |
| ... | @@ -785,4 +788,21 @@ export function getZNList(params) { | ... | @@ -785,4 +788,21 @@ export function getZNList(params) { |
| 785 | }) | 788 | }) |
| 786 | } | 789 | } |
| 787 | 790 | ||
| 791 | // 团体报名校验 | ||
| 792 | export function preCheckForGroup(groupId) { | ||
| 793 | return request({ | ||
| 794 | url: `/systemj/personInfo/preCheckForGroup/${groupId}`, | ||
| 795 | method: 'get' | ||
| 796 | }) | ||
| 797 | } | ||
| 798 | |||
| 799 | // 个人报名校验 | ||
| 800 | export function preCheckForPerson(params) { | ||
| 801 | return request({ | ||
| 802 | url: `/systemj/personInfo/preCheckForPerson`, | ||
| 803 | method: 'get', | ||
| 804 | params | ||
| 805 | }) | ||
| 806 | } | ||
| 807 | |||
| 788 | 808 | ... | ... |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
| ... | @@ -174,7 +174,7 @@ | ... | @@ -174,7 +174,7 @@ |
| 174 | </el-col> | 174 | </el-col> |
| 175 | <el-col> | 175 | <el-col> |
| 176 | {{ language == 0 ? '开园时间' : 'Address' }}: | 176 | {{ language == 0 ? '开园时间' : 'Address' }}: |
| 177 | {{ formInfo. startTime }} ~ {{ formInfo.workTime }} | 177 | {{ formInfo.startTime }} ~ {{ formInfo.workTime }} |
| 178 | </el-col> | 178 | </el-col> |
| 179 | </el-row> | 179 | </el-row> |
| 180 | </div> | 180 | </div> |
| ... | @@ -408,29 +408,29 @@ | ... | @@ -408,29 +408,29 @@ |
| 408 | </el-col> | 408 | </el-col> |
| 409 | <el-col :lg="24"> | 409 | <el-col :lg="24"> |
| 410 | <div class="text-center"> | 410 | <div class="text-center"> |
| 411 | <el-button | 411 | <!-- <el-button--> |
| 412 | v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG" | 412 | <!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG"--> |
| 413 | round | 413 | <!-- round--> |
| 414 | size="large" type="primary" | 414 | <!-- size="large" type="primary"--> |
| 415 | @click="exportPdf" | 415 | <!-- @click="exportPdf"--> |
| 416 | > | 416 | <!-- >--> |
| 417 | <el-icon> | 417 | <!-- <el-icon>--> |
| 418 | <Upload /> | 418 | <!-- <Upload />--> |
| 419 | </el-icon> | 419 | <!-- </el-icon>--> |
| 420 | {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }} | 420 | <!-- {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}--> |
| 421 | </el-button> | 421 | <!-- </el-button>--> |
| 422 | <el-button | 422 | <!-- <el-button--> |
| 423 | v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')" | 423 | <!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')"--> |
| 424 | class="mt20 btn-lineG" round | 424 | <!-- class="mt20 btn-lineG" round--> |
| 425 | size="large" | 425 | <!-- size="large"--> |
| 426 | type="primary" | 426 | <!-- type="primary"--> |
| 427 | @click="downInvoice" | 427 | <!-- @click="downInvoice"--> |
| 428 | > | 428 | <!-- >--> |
| 429 | <el-icon> | 429 | <!-- <el-icon>--> |
| 430 | <Download /> | 430 | <!-- <Download />--> |
| 431 | </el-icon> | 431 | <!-- </el-icon>--> |
| 432 | {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }} | 432 | <!-- {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}--> |
| 433 | </el-button> | 433 | <!-- </el-button>--> |
| 434 | </div> | 434 | </div> |
| 435 | </el-col> | 435 | </el-col> |
| 436 | </el-row> | 436 | </el-row> |
| ... | @@ -742,6 +742,7 @@ function getData() { | ... | @@ -742,6 +742,7 @@ function getData() { |
| 742 | getTravelOrderInfo() | 742 | getTravelOrderInfo() |
| 743 | } | 743 | } |
| 744 | } | 744 | } |
| 745 | |||
| 745 | // 旅游订单详情 | 746 | // 旅游订单详情 |
| 746 | const getTravelOrderInfo = () => { | 747 | const getTravelOrderInfo = () => { |
| 747 | return booking.getScenicOrderInfo({ orderId: orderId.value }).then(res => { | 748 | return booking.getScenicOrderInfo({ orderId: orderId.value }).then(res => { |
| ... | @@ -756,6 +757,7 @@ const getTravelOrderInfo = () => { | ... | @@ -756,6 +757,7 @@ const getTravelOrderInfo = () => { |
| 756 | errorBox.value = true | 757 | errorBox.value = true |
| 757 | }) | 758 | }) |
| 758 | } | 759 | } |
| 760 | |||
| 759 | // 票务订单详情 | 761 | // 票务订单详情 |
| 760 | async function getTicketOrderInfoFN() { | 762 | async function getTicketOrderInfoFN() { |
| 761 | const res = await getTicketOrderInfo({ orderId: orderId.value }) | 763 | const res = await getTicketOrderInfo({ orderId: orderId.value }) | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | <div> | 2 | <div> |
| 3 | <!-- top --> | 3 | <!-- top --> |
| 4 | <div class="container top"> | 4 | <div class="container top"> |
| 5 | <img :src="fillImgUrl(matchForm.ticketImg)" class="cover_img"/> | 5 | <img :src="fillImgUrl(matchForm.ticketImg)" class="cover_img"> |
| 6 | <div class="info"> | 6 | <div class="info"> |
| 7 | <div class="title">{{ matchForm.name }}</div> | 7 | <div class="title">{{ matchForm.name }}</div> |
| 8 | <div class="time"> | 8 | <div class="time"> |
| ... | @@ -67,8 +67,10 @@ | ... | @@ -67,8 +67,10 @@ |
| 67 | {{ triggerLanguage(language, "票档", "Tickets") }} : | 67 | {{ triggerLanguage(language, "票档", "Tickets") }} : |
| 68 | </div> | 68 | </div> |
| 69 | <div v-if="matchForm.ticketLayout"> | 69 | <div v-if="matchForm.ticketLayout"> |
| 70 | <span style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px" | 70 | <span |
| 71 | @click="show=true"> <span style="color: red;font-size: 18px">*</span> | 71 | style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px" |
| 72 | @click="show=true" | ||
| 73 | > <span style="color: red;font-size: 18px">*</span> | ||
| 72 | {{ | 74 | {{ |
| 73 | language == 0 ? '点击查看场馆布局' : 'View Venue Layout' | 75 | language == 0 ? '点击查看场馆布局' : 'View Venue Layout' |
| 74 | }} | 76 | }} |
| ... | @@ -141,8 +143,10 @@ | ... | @@ -141,8 +143,10 @@ |
| 141 | </div> | 143 | </div> |
| 142 | </div> | 144 | </div> |
| 143 | 145 | ||
| 144 | <div v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px" | 146 | <div |
| 145 | @click="toSelectClosed"> | 147 | v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px" |
| 148 | @click="toSelectClosed" | ||
| 149 | > | ||
| 146 | {{ | 150 | {{ |
| 147 | triggerLanguage(language, "售票结束", "Sale closed") | 151 | triggerLanguage(language, "售票结束", "Sale closed") |
| 148 | }} | 152 | }} |
| ... | @@ -163,8 +167,8 @@ | ... | @@ -163,8 +167,8 @@ |
| 163 | <div :class="{'bg':active==1}" class="buBg" @click="active=1">购票说明</div> | 167 | <div :class="{'bg':active==1}" class="buBg" @click="active=1">购票说明</div> |
| 164 | <div :class="{'bg' :active==2}" class="buBg" @click="active=2">购票须知</div> | 168 | <div :class="{'bg' :active==2}" class="buBg" @click="active=2">购票须知</div> |
| 165 | </div> | 169 | </div> |
| 166 | <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes"/> | 170 | <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" /> |
| 167 | <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice"/> | 171 | <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" /> |
| 168 | 172 | ||
| 169 | <el-dialog v-model="show" title="" width="1000px"> | 173 | <el-dialog v-model="show" title="" width="1000px"> |
| 170 | <div> | 174 | <div> |
| ... | @@ -177,30 +181,30 @@ | ... | @@ -177,30 +181,30 @@ |
| 177 | 181 | ||
| 178 | 182 | ||
| 179 | <script setup> | 183 | <script setup> |
| 180 | import {ref, computed} from "vue"; | 184 | import { ref, computed } from 'vue' |
| 181 | import {listApi, getTicketInfoByActivityId, getTicketListApi, checkNonPayment} from '@/apiPc/booking' | 185 | import { listApi, getTicketInfoByActivityId, getTicketListApi, checkNonPayment } from '@/apiPc/booking' |
| 182 | 186 | ||
| 183 | import {dayjs} from "element-plus"; | 187 | import { dayjs } from 'element-plus' |
| 184 | import {ElMessageBox, ElMessage} from "element-plus"; | 188 | import { ElMessageBox, ElMessage } from 'element-plus' |
| 185 | import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language"; | 189 | import { languageFormat, getDayName } from '@/viewsPc/seat/utils/language' |
| 186 | import {fillImgUrl} from "/@/utils/ruoyi"; | 190 | import { fillImgUrl } from '/@/utils/ruoyi' |
| 187 | import useUserStore from "/@/store/modules/user"; | 191 | import useUserStore from '/@/store/modules/user' |
| 188 | import {triggerLanguage} from '@/utils/ruoyi' | 192 | import { triggerLanguage } from '@/utils/ruoyi' |
| 189 | import {useStorage} from "@vueuse/core/index"; | 193 | import { useStorage } from '@vueuse/core/index' |
| 190 | 194 | ||
| 191 | const language = useStorage('language', 0) | 195 | const language = useStorage('language', 0) |
| 192 | const useStore = useUserStore() | 196 | const useStore = useUserStore() |
| 193 | const user = computed(() => useUserStore().user) | 197 | const user = computed(() => useUserStore().user) |
| 194 | const route = useRoute(); | 198 | const route = useRoute() |
| 195 | const router = useRouter(); | 199 | const router = useRouter() |
| 196 | const show = ref(false) | 200 | const show = ref(false) |
| 197 | const activeId = ref(route.params.activeId) | 201 | const activeId = ref(route.params.activeId) |
| 198 | const flag = ref(false) | 202 | const flag = ref(false) |
| 199 | const active = ref(1) | 203 | const active = ref(1) |
| 200 | const countDown = ref(false) | 204 | const countDown = ref(false) |
| 201 | const props = defineProps({ | 205 | const props = defineProps({ |
| 202 | activityId: [String, Number], | 206 | activityId: [String, Number] |
| 203 | }); | 207 | }) |
| 204 | const timeData = ref() | 208 | const timeData = ref() |
| 205 | const endTime = ref() | 209 | const endTime = ref() |
| 206 | const matchForm = ref({}) | 210 | const matchForm = ref({}) |
| ... | @@ -209,7 +213,7 @@ const selectForm = ref({ | ... | @@ -209,7 +213,7 @@ const selectForm = ref({ |
| 209 | latId: null, | 213 | latId: null, |
| 210 | id: null, | 214 | id: null, |
| 211 | price: '--', | 215 | price: '--', |
| 212 | priceEn: '--', | 216 | priceEn: '--' |
| 213 | }) | 217 | }) |
| 214 | const tickList = ref([]) | 218 | const tickList = ref([]) |
| 215 | 219 | ||
| ... | @@ -217,14 +221,14 @@ const tickList = ref([]) | ... | @@ -217,14 +221,14 @@ const tickList = ref([]) |
| 217 | getDetail() | 221 | getDetail() |
| 218 | 222 | ||
| 219 | async function getDetail() { | 223 | async function getDetail() { |
| 220 | const res = await getTicketInfoByActivityId({activityId: activeId.value}) | 224 | const res = await getTicketInfoByActivityId({ activityId: activeId.value }) |
| 221 | matchForm.value = res.data | 225 | matchForm.value = res.data |
| 222 | console.log(res) | 226 | console.log(res) |
| 223 | const today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 227 | const today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 224 | timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond') | 228 | timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond') |
| 225 | endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond') | 229 | endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond') |
| 226 | // if (timeData.value <= nowData.value) countDown.value = true | 230 | // if (timeData.value <= nowData.value) countDown.value = true |
| 227 | // timeData.value = dayjs('2024-08-10 00:00:00').diff(today, 'millisecond') | 231 | // timeData.value = dayjs('2025-08-10 00:00:00').diff(today, 'millisecond') |
| 228 | } | 232 | } |
| 229 | 233 | ||
| 230 | // 根据赛事ID获取票档 | 234 | // 根据赛事ID获取票档 |
| ... | @@ -243,8 +247,8 @@ async function getTicketList() { | ... | @@ -243,8 +247,8 @@ async function getTicketList() { |
| 243 | 247 | ||
| 244 | // 根据票档获取场次 | 248 | // 根据票档获取场次 |
| 245 | async function getTicketListType() { | 249 | async function getTicketListType() { |
| 246 | let arr = [] | 250 | const arr = [] |
| 247 | const res = await listApi({latId: selectForm.value.latId}) | 251 | const res = await listApi({ latId: selectForm.value.latId }) |
| 248 | tickList.value = res.rows | 252 | tickList.value = res.rows |
| 249 | for (const v of res.rows) { | 253 | for (const v of res.rows) { |
| 250 | if (v.isView == 0) arr.push(v) | 254 | if (v.isView == 0) arr.push(v) |
| ... | @@ -277,8 +281,8 @@ function selectTick(v) { | ... | @@ -277,8 +281,8 @@ function selectTick(v) { |
| 277 | } | 281 | } |
| 278 | 282 | ||
| 279 | function toSelectSeat() { | 283 | function toSelectSeat() { |
| 280 | if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? "请选择票档" : 'Please select a ticket file') | 284 | if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? '请选择票档' : 'Please select a ticket file') |
| 281 | if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? "请选择时间" : 'Please select time') | 285 | if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? '请选择时间' : 'Please select time') |
| 282 | if (!user.value) { | 286 | if (!user.value) { |
| 283 | useStore.setVisitor() | 287 | useStore.setVisitor() |
| 284 | return | 288 | return |
| ... | @@ -296,10 +300,7 @@ function toSelectSeat() { | ... | @@ -296,10 +300,7 @@ function toSelectSeat() { |
| 296 | } else { | 300 | } else { |
| 297 | router.push('/center/myReservation') | 301 | router.push('/center/myReservation') |
| 298 | } | 302 | } |
| 299 | |||
| 300 | }) | 303 | }) |
| 301 | |||
| 302 | |||
| 303 | } | 304 | } |
| 304 | 305 | ||
| 305 | function toSelectClosed() { | 306 | function toSelectClosed() { | ... | ... |
| ... | @@ -15,42 +15,48 @@ | ... | @@ -15,42 +15,48 @@ |
| 15 | <div class="esp mt5">{{ n.name }}</div> | 15 | <div class="esp mt5">{{ n.name }}</div> |
| 16 | </li> | 16 | </li> |
| 17 | </ul> | 17 | </ul> |
| 18 | <el-empty v-if="schList.length== 0" | 18 | <el-empty |
| 19 | style="--el-empty-padding:0;--el-empty-description-margin-top:0" | 19 | v-if="schList.length== 0" |
| 20 | :image="`/img/order_no.png`" :image-size="200"/> | 20 | :image="`/img/order_no.png`" |
| 21 | :image-size="200" style="--el-empty-padding:0;--el-empty-description-margin-top:0" | ||
| 22 | /> | ||
| 21 | </div> | 23 | </div> |
| 22 | </div> | 24 | </div> |
| 23 | </template> | 25 | </template> |
| 24 | 26 | ||
| 25 | <script setup> | 27 | <script setup> |
| 26 | import {ref} from "vue"; | 28 | import { ref } from 'vue' |
| 27 | import {dayjs} from "element-plus"; | 29 | import { dayjs } from 'element-plus' |
| 28 | import {getIndexScheduleList} from "@/apiPc/common"; | 30 | import { getIndexScheduleList } from '@/apiPc/common' |
| 29 | import {useRouter} from "vue-router"; | 31 | import { useRouter } from 'vue-router' |
| 32 | |||
| 30 | const router = useRouter() | 33 | const router = useRouter() |
| 31 | const currentDate = ref(new Date()) | 34 | const currentDate = ref(new Date()) |
| 32 | const calendarRange = ref([dayjs('2024-07-17').toDate(), dayjs('2024-07-17').toDate()]) | 35 | const calendarRange = ref([dayjs('2025-07-17').toDate(), dayjs('2025-07-17').toDate()]) |
| 33 | const schList = ref([]) | 36 | const schList = ref([]) |
| 34 | const loading = ref(false) | 37 | const loading = ref(false) |
| 35 | const query = ref({ | 38 | const query = ref({ |
| 36 | // currentDate:dayjs().format('YYYY-MM-DD') | 39 | // currentDate:dayjs().format('YYYY-MM-DD') |
| 37 | currentDate: '2024-07-17' | 40 | currentDate: '2025-07-17' |
| 38 | }) | 41 | }) |
| 39 | getScheduleList() | 42 | getScheduleList() |
| 43 | |||
| 40 | function getScheduleList() { | 44 | function getScheduleList() { |
| 41 | loading.value = true | 45 | loading.value = true |
| 42 | query.value.currentDate = dayjs(query.value.currentDate).format('YYYY-MM-DD') | 46 | query.value.currentDate = dayjs(query.value.currentDate).format('YYYY-MM-DD') |
| 43 | getIndexScheduleList(query.value).then(res=>{ | 47 | getIndexScheduleList(query.value).then(res => { |
| 44 | loading.value = false | 48 | loading.value = false |
| 45 | schList.value = res.data | 49 | schList.value = res.data |
| 46 | }) | 50 | }) |
| 47 | } | 51 | } |
| 52 | |||
| 48 | function selectDate(date) { | 53 | function selectDate(date) { |
| 49 | console.log(dayjs(date).toDate()) | 54 | console.log(dayjs(date).toDate()) |
| 50 | console.log(query.value.currentDate) | 55 | console.log(query.value.currentDate) |
| 51 | query.value.currentDate = dayjs(date).toDate() | 56 | query.value.currentDate = dayjs(date).toDate() |
| 52 | getScheduleList() | 57 | getScheduleList() |
| 53 | } | 58 | } |
| 59 | |||
| 54 | function goMatch(n) { | 60 | function goMatch(n) { |
| 55 | router.push({ | 61 | router.push({ |
| 56 | name: 'matchDetail', | 62 | name: 'matchDetail', |
| ... | @@ -64,7 +70,7 @@ function goMatch(n) { | ... | @@ -64,7 +70,7 @@ function goMatch(n) { |
| 64 | } | 70 | } |
| 65 | </script> | 71 | </script> |
| 66 | 72 | ||
| 67 | <style scoped lang="scss"> | 73 | <style lang="scss" scoped> |
| 68 | .el-calendar { | 74 | .el-calendar { |
| 69 | --el-calendar-border: none; | 75 | --el-calendar-border: none; |
| 70 | --el-calendar-cell-width: 40px; | 76 | --el-calendar-cell-width: 40px; |
| ... | @@ -119,7 +125,8 @@ function goMatch(n) { | ... | @@ -119,7 +125,8 @@ function goMatch(n) { |
| 119 | height: 225px; | 125 | height: 225px; |
| 120 | 126 | ||
| 121 | ul { | 127 | ul { |
| 122 | li {cursor: pointer; | 128 | li { |
| 129 | cursor: pointer; | ||
| 123 | background: #F6F9FE; | 130 | background: #F6F9FE; |
| 124 | margin: 7px 0 7px 20px; | 131 | margin: 7px 0 7px 20px; |
| 125 | position: relative; | 132 | position: relative; | ... | ... |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
| 1 | <template> | ||
| 2 | <el-dialog | ||
| 3 | v-model="show" :close-on-click-modal="false" :title="language==0?'赛事购买协会':'Event Insurance Procurement Agreement'" append-to-body center | ||
| 4 | class="pcloginpop" | ||
| 5 | close-icon="CircleClose" destroy-on-close | ||
| 6 | width="1100px" | ||
| 7 | > | ||
| 8 | <div v-html="data" /> | ||
| 9 | <template #footer> | ||
| 10 | <div class="dialog-footer text-center"> | ||
| 11 | <el-button class="btn-lineG w200px" round type="primary" @click="submitForm">{{ | ||
| 12 | language == 0 ? '确定' : 'Save' | ||
| 13 | }} | ||
| 14 | </el-button> | ||
| 15 | </div> | ||
| 16 | </template> | ||
| 17 | </el-dialog> | ||
| 18 | </template> | ||
| 19 | |||
| 20 | <script setup> | ||
| 21 | import { getCurrentInstance, ref } from '@vue/runtime-core' | ||
| 22 | import { useStorage } from '@vueuse/core/index' | ||
| 23 | |||
| 24 | const language = useStorage('language', 0) | ||
| 25 | const { proxy } = getCurrentInstance() | ||
| 26 | const emit = defineEmits(['submitForm']) | ||
| 27 | const show = ref(false) | ||
| 28 | const data = ref() | ||
| 29 | |||
| 30 | const open = (row) => { | ||
| 31 | show.value = true | ||
| 32 | data.value = row | ||
| 33 | } | ||
| 34 | |||
| 35 | function submitForm() { | ||
| 36 | show.value = false | ||
| 37 | } | ||
| 38 | |||
| 39 | |||
| 40 | defineExpose({ open }) | ||
| 41 | |||
| 42 | </script> | ||
| 43 | |||
| 44 | <style lang="scss"> | ||
| 45 | .threeFour { | ||
| 46 | width: 100%; | ||
| 47 | |||
| 48 | .el-upload--picture-card { | ||
| 49 | width: 120px; | ||
| 50 | height: 160px; | ||
| 51 | } | ||
| 52 | |||
| 53 | .el-upload-list--picture-card .el-upload-list__item { | ||
| 54 | width: 120px; | ||
| 55 | height: 160px; | ||
| 56 | } | ||
| 57 | } | ||
| 58 | |||
| 59 | .tip { | ||
| 60 | font-size: 13px; | ||
| 61 | color: #999; | ||
| 62 | margin: 10px 0; | ||
| 63 | |||
| 64 | i { | ||
| 65 | color: red; | ||
| 66 | margin: 0 4px 0 0; | ||
| 67 | } | ||
| 68 | } | ||
| 69 | |||
| 70 | .shenfen { | ||
| 71 | .el-upload--picture-card { | ||
| 72 | width: 320px; | ||
| 73 | height: 200px; | ||
| 74 | } | ||
| 75 | |||
| 76 | .el-upload-list--picture-card .el-upload-list__item { | ||
| 77 | width: 320px; | ||
| 78 | height: 200px; | ||
| 79 | } | ||
| 80 | } | ||
| 81 | |||
| 82 | .touxiang { | ||
| 83 | :deep(.el-upload--picture-card ) { | ||
| 84 | width: 140px; | ||
| 85 | height: 200px; | ||
| 86 | } | ||
| 87 | } | ||
| 88 | |||
| 89 | .touxiang { | ||
| 90 | :deep(.el-upload-list__item ) { | ||
| 91 | width: 140px; | ||
| 92 | height: 200px; | ||
| 93 | } | ||
| 94 | |||
| 95 | } | ||
| 96 | |||
| 97 | .el-form--inline .el-form-item { | ||
| 98 | width: 100% | ||
| 99 | } | ||
| 100 | |||
| 101 | |||
| 102 | .boxDialog { | ||
| 103 | .el-dialog__header { | ||
| 104 | background: linear-gradient(#ed2c22, #fe6d45); | ||
| 105 | margin-right: 0; | ||
| 106 | height: 52px; | ||
| 107 | |||
| 108 | span { | ||
| 109 | color: #fff; | ||
| 110 | } | ||
| 111 | } | ||
| 112 | } | ||
| 113 | |||
| 114 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <div style="padding: 0 20px 20px" v-if="language==0"> | 2 | <div v-if="language==0" style="padding: 0 20px 20px"> |
| 3 | <!--赛事详情--> | 3 | <!--赛事详情--> |
| 4 | <div class="indexTitle"> | 4 | <div class="indexTitle"> |
| 5 | <h3 class="leftboderTT">组织机构</h3> | 5 | <h3 class="leftboderTT">组织机构</h3> |
| 6 | </div> | 6 | </div> |
| 7 | <div class="xzbox" v-html="form.ocOrganizer"> | 7 | <div class="xzbox" v-html="form.ocOrganizer" /> |
| 8 | </div> | 8 | <div v-if="form.languageSource!='100'" class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div> |
| 9 | <div class="indexTitle" v-if="form.languageSource!='100'"><h3 class="leftboderTT">报名须知</h3></div> | 9 | <div v-if="form.languageSource!='100'" class="xzbox"> |
| 10 | <div class="xzbox" v-if="form.languageSource!='100'"> | 10 | <div v-html="form.signKnow" /> |
| 11 | <div v-html="form.signKnow"></div> | ||
| 12 | <div v-if="form.signKnowUrl"> | 11 | <div v-if="form.signKnowUrl"> |
| 13 | <el-link v-for="(item,index) in JSON.parse(form.signKnowUrl)" type="primary" | 12 | <el-link |
| 14 | :href="fillImgUrl(item.url)" target="_blank"> | 13 | v-for="(item,index) in JSON.parse(form.signKnowUrl)" :key="index" :href="fillImgUrl(item.url)" |
| 14 | target="_blank" type="primary" | ||
| 15 | > | ||
| 15 | <el-icon :size="20"> | 16 | <el-icon :size="20"> |
| 16 | <Download /> | 17 | <Download /> |
| 17 | </el-icon> | 18 | </el-icon> |
| 18 | {{ item.name }} | 19 | {{ item.name }} |
| 19 | </el-link> | 20 | </el-link> |
| 20 | </div> | 21 | </div> |
| 21 | |||
| 22 | </div> | 22 | </div> |
| 23 | <!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>--> | 23 | <!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>--> |
| 24 | <!-- <div class="xzbox">--> | 24 | <!-- <div class="xzbox">--> |
| 25 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> | 25 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> |
| 26 | <!-- <el-icon :size="20">--> | 26 | <!-- <el-icon :size="20">--> |
| 27 | <!-- <Download />--> | 27 | <!-- <Download />--> |
| 28 | <!-- </el-icon>--> | 28 | <!-- </el-icon>--> |
| 29 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> | 29 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> |
| 30 | <!-- </el-link>--> | 30 | <!-- </el-link>--> |
| 31 | <!-- </div>--> | 31 | <!-- </div>--> |
| 32 | <div class="indexTitle" v-if="form.languageSource=='100'"><h3 class="leftboderTT">赛事规程</h3></div> | 32 | <div v-if="form.languageSource=='100'" class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div> |
| 33 | <div class="xzbox" v-if="form.languageSource=='100'"> | 33 | <div v-if="form.languageSource=='100'" class="xzbox"> |
| 34 | <div v-html="form.ruleContent"></div> | 34 | <div v-html="form.ruleContent" /> |
| 35 | <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> | 35 | <el-link v-if="form.ruleUrl" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank" type="primary"> |
| 36 | <el-icon :size="20"> | 36 | <el-icon :size="20"> |
| 37 | <Download /> | 37 | <Download /> |
| 38 | </el-icon> | 38 | </el-icon> |
| 39 | {{ JSON.parse(form.ruleUrl)[0]?.name }} | 39 | {{ JSON.parse(form.ruleUrl)[0]?.name }} |
| 40 | </el-link> | 40 | </el-link> |
| 41 | </div> | 41 | </div> |
| 42 | <!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>--> | 42 | <!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>--> |
| 43 | <!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">--> | 43 | <!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">--> |
| 44 | 44 | ||
| 45 | <!-- </div>--> | 45 | <!-- </div>--> |
| 46 | 46 | ||
| 47 | </div> | 47 | </div> |
| 48 | <div style="padding: 0 20px 20px" v-else> | 48 | <div v-else style="padding: 0 20px 20px"> |
| 49 | <!--赛事详情--> | 49 | <!--赛事详情--> |
| 50 | <div class="indexTitle"> | 50 | <div class="indexTitle"> |
| 51 | <h3 class="leftboderTT">Organization</h3> | 51 | <h3 class="leftboderTT">Organization</h3> |
| 52 | </div> | 52 | </div> |
| 53 | <div class="xzbox" v-html="form.ocOrganizer"> | 53 | <div class="xzbox" v-html="form.ocOrganizer" /> |
| 54 | </div> | ||
| 55 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> | 54 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> |
| 56 | <div class="xzbox"> | 55 | <div class="xzbox"> |
| 57 | <div v-html="form.signKnow"></div> | 56 | <div v-html="form.signKnow" /> |
| 58 | <el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank"> | 57 | <el-link |
| 58 | v-if="form.signKnowUrl" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank" | ||
| 59 | type="primary" | ||
| 60 | > | ||
| 59 | <el-icon :size="20"> | 61 | <el-icon :size="20"> |
| 60 | <Download /> | 62 | <Download /> |
| 61 | </el-icon> | 63 | </el-icon> |
| 62 | {{ JSON.parse(form.signKnowUrl)[0]?.name }} | 64 | {{ JSON.parse(form.signKnowUrl)[0]?.name }} |
| 63 | </el-link> | 65 | </el-link> |
| 64 | </div> | 66 | </div> |
| 65 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>--> | 67 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>--> |
| 66 | <!-- <div class="xzbox">--> | 68 | <!-- <div class="xzbox">--> |
| 67 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> | 69 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> |
| 68 | <!-- <el-icon :size="20">--> | 70 | <!-- <el-icon :size="20">--> |
| 69 | <!-- <Download />--> | 71 | <!-- <Download />--> |
| 70 | <!-- </el-icon>--> | 72 | <!-- </el-icon>--> |
| 71 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> | 73 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> |
| 72 | <!-- </el-link>--> | 74 | <!-- </el-link>--> |
| 73 | <!-- </div>--> | 75 | <!-- </div>--> |
| 74 | 76 | ||
| 75 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>--> | 77 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>--> |
| 76 | <!-- <div class="xzbox">--> | 78 | <!-- <div class="xzbox">--> |
| 77 | <!-- <div v-html="form.ruleContent">--> | 79 | <!-- <div v-html="form.ruleContent">--> |
| 78 | 80 | ||
| 79 | <!-- </div>--> | 81 | <!-- </div>--> |
| 80 | <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">--> | 82 | <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">--> |
| 81 | <!-- <el-icon :size="20">--> | 83 | <!-- <el-icon :size="20">--> |
| 82 | <!-- <Download />--> | 84 | <!-- <Download />--> |
| 83 | <!-- </el-icon>--> | 85 | <!-- </el-icon>--> |
| 84 | <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}--> | 86 | <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}--> |
| 85 | <!-- </el-link>--> | 87 | <!-- </el-link>--> |
| 86 | <!-- </div>--> | 88 | <!-- </div>--> |
| 87 | <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div> | 89 | <div v-if="form.type==1 && form.cptProjectList?.length > 0" class="indexTitle"><h3 class="leftboderTT">Event |
| 90 | settings</h3></div> | ||
| 88 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> | 91 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> |
| 89 | <match-info-project-list :match-id="form.id" :is-national="form.languageSource!='100'"/> | 92 | <match-info-project-list :is-national="form.languageSource!='100'" :match-id="form.id" /> |
| 90 | </div> | 93 | </div> |
| 91 | </div> | 94 | </div> |
| 92 | </template> | 95 | </template> |
| 93 | 96 | ||
| 94 | <script setup> | 97 | <script setup> |
| 95 | import {ref} from "vue"; | 98 | import { ref } from 'vue' |
| 96 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; | 99 | import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList' |
| 97 | import {useStorage} from "@vueuse/core/index"; | 100 | import { useStorage } from '@vueuse/core/index' |
| 98 | import {onMounted} from "@vue/runtime-core"; | 101 | import { onMounted } from '@vue/runtime-core' |
| 99 | 102 | ||
| 100 | const language= useStorage('language',0) | 103 | const language = useStorage('language', 0) |
| 101 | 104 | ||
| 102 | const props = defineProps({ | 105 | const props = defineProps({ |
| 103 | form:{ | 106 | form: { |
| 104 | type:Object, | 107 | type: Object, |
| 105 | required:true | 108 | required: true |
| 106 | } | 109 | } |
| 107 | }) | 110 | }) |
| 108 | 111 | ||
| 109 | 112 | ||
| 110 | |||
| 111 | </script> | 113 | </script> |
| 112 | 114 | ||
| 113 | <style scoped lang="scss"> | 115 | <style lang="scss" scoped> |
| 114 | .indexTitle{margin: 20px 0 12px; | 116 | .indexTitle { |
| 115 | h3{ | 117 | margin: 20px 0 12px; |
| 118 | |||
| 119 | h3 { | ||
| 116 | font-size: 20px; | 120 | font-size: 20px; |
| 117 | color:var(--el-color-primary); | 121 | color: var(--el-color-primary); |
| 118 | } | 122 | } |
| 119 | } | 123 | } |
| 120 | 124 | ... | ... |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
| ... | @@ -64,33 +64,33 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -64,33 +64,33 @@ export default defineConfig(({ mode, command }) => { |
| 64 | proxy: { | 64 | proxy: { |
| 65 | // https://cn.vitejs.dev/config/#server-proxy | 65 | // https://cn.vitejs.dev/config/#server-proxy |
| 66 | '/dev-api/ztx-train': { | 66 | '/dev-api/ztx-train': { |
| 67 | // target: 'http://123.60.96.243:1896/stage-api', | 67 | target: 'http://192.168.1.243:1896/stage-api', |
| 68 | target: 'https://jijin.wtwuxicenter.com/stage-api', | 68 | // target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 69 | changeOrigin: true, | 69 | changeOrigin: true, |
| 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') | 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') |
| 71 | }, | 71 | }, |
| 72 | '/dev-api/ztx-match': { | 72 | '/dev-api/ztx-match': { |
| 73 | target: 'http://192.168.1.253:8081', | 73 | target: 'http://192.168.1.243:8081', |
| 74 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 74 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 75 | changeOrigin: true, | 75 | changeOrigin: true, |
| 76 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') | 76 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') |
| 77 | }, | 77 | }, |
| 78 | '/dev-api/ztx-webSite': { | 78 | '/dev-api/ztx-webSite': { |
| 79 | target: 'http://192.168.1.253:8081', | 79 | target: 'http://192.168.1.243:8081', |
| 80 | changeOrigin: true, | 80 | changeOrigin: true, |
| 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 82 | }, | 82 | }, |
| 83 | '/dev-api': { | 83 | '/dev-api': { |
| 84 | target: 'http://192.168.1.118:8081/', | 84 | // target: 'http://192.168.1.118:8081/', |
| 85 | // target: 'http://192.168.1.253:8081', | 85 | target: 'http://192.168.1.243:8081', |
| 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | 86 | // target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 87 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 88 | changeOrigin: true, | 88 | changeOrigin: true, |
| 89 | rewrite: (p) => p.replace(/^\/dev-api/, '') | 89 | rewrite: (p) => p.replace(/^\/dev-api/, '') |
| 90 | }, | 90 | }, |
| 91 | '/ticket': { | 91 | '/ticket': { |
| 92 | // target: 'http://192.168.1.131:8081/', | 92 | target: 'http://192.168.1.243:8081/', |
| 93 | target: 'https://jijin.wtwuxicenter.com/h5/', | 93 | // target: 'https://jijin.wtwuxicenter.com/h5/', |
| 94 | // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', | 94 | // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', |
| 95 | changeOrigin: true, | 95 | changeOrigin: true, |
| 96 | rewrite: (p) => p.replace(/^\/ticket/, '') | 96 | rewrite: (p) => p.replace(/^\/ticket/, '') | ... | ... |
-
Please register or sign in to post a comment