90755055 by 杨炀

Merge commit 'f8237179' into dev

2 parents 819f4e2b f8237179
......@@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) {
return request({
url: `/league/sign/recoverMySignFromCancel`,
method: 'post',
data: {cptId: cptId}
data: { cptId: cptId }
})
}
......@@ -402,7 +402,7 @@ export function delPerson(id) {
})
}
//个人账号
// 个人账号
export function delPersonForPersonal(id) {
return request({
url: `/systemj/personInfo/singleDelete/${id}`,
......@@ -506,7 +506,8 @@ export function commitSign(data) {
export function getTotalFee(data) {
return request({
url: `/league/expenseConfig/getTotalFee/${data.cptId}/${data.entryId}`,
method: 'get'
method: 'get',
params: data
})
}
......@@ -639,7 +640,7 @@ export function saveWdsfMin(obj, groupId) {
})
}
//todo
// todo
export function bindWdsf(perId, card) {
return request({
url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`,
......@@ -771,12 +772,14 @@ export function getAboutUs(params) {
params
})
}
export function getppInfo(params) {
return request({
url: `/portal/website/${params}`,
method: 'get'
})
}
export function getZNList(params) {
return request({
url: `/Portal/websiteInfo/list`,
......@@ -785,4 +788,21 @@ export function getZNList(params) {
})
}
// 团体报名校验
export function preCheckForGroup(groupId) {
return request({
url: `/systemj/personInfo/preCheckForGroup/${groupId}`,
method: 'get'
})
}
// 个人报名校验
export function preCheckForPerson(params) {
return request({
url: `/systemj/personInfo/preCheckForPerson`,
method: 'get',
params
})
}
......
......@@ -174,7 +174,7 @@
</el-col>
<el-col>
{{ language == 0 ? '开园时间' : 'Address' }}
{{ formInfo. startTime }} ~ {{ formInfo.workTime }}
{{ formInfo.startTime }} ~ {{ formInfo.workTime }}
</el-col>
</el-row>
</div>
......@@ -408,29 +408,29 @@
</el-col>
<el-col :lg="24">
<div class="text-center">
<el-button
v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG"
round
size="large" type="primary"
@click="exportPdf"
>
<el-icon>
<Upload />
</el-icon>
{{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}
</el-button>
<el-button
v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')"
class="mt20 btn-lineG" round
size="large"
type="primary"
@click="downInvoice"
>
<el-icon>
<Download />
</el-icon>
{{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}
</el-button>
<!-- <el-button-->
<!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&type == 'hotel'" class="mt20 btn-lineG"-->
<!-- round-->
<!-- size="large" type="primary"-->
<!-- @click="exportPdf"-->
<!-- >-->
<!-- <el-icon>-->
<!-- <Upload />-->
<!-- </el-icon>-->
<!-- {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&(type=='makeUp'||type=='hotel'||type=='ticket')"-->
<!-- class="mt20 btn-lineG" round-->
<!-- size="large"-->
<!-- type="primary"-->
<!-- @click="downInvoice"-->
<!-- >-->
<!-- <el-icon>-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}-->
<!-- </el-button>-->
</div>
</el-col>
</el-row>
......@@ -742,6 +742,7 @@ function getData() {
getTravelOrderInfo()
}
}
// 旅游订单详情
const getTravelOrderInfo = () => {
return booking.getScenicOrderInfo({ orderId: orderId.value }).then(res => {
......@@ -756,6 +757,7 @@ const getTravelOrderInfo = () => {
errorBox.value = true
})
}
// 票务订单详情
async function getTicketOrderInfoFN() {
const res = await getTicketOrderInfo({ orderId: orderId.value })
......
......@@ -2,7 +2,7 @@
<div>
<!-- top -->
<div class="container top">
<img :src="fillImgUrl(matchForm.ticketImg)" class="cover_img"/>
<img :src="fillImgUrl(matchForm.ticketImg)" class="cover_img">
<div class="info">
<div class="title">{{ matchForm.name }}</div>
<div class="time">
......@@ -67,8 +67,10 @@
{{ triggerLanguage(language, "票档", "Tickets") }} :
</div>
<div v-if="matchForm.ticketLayout">
<span style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
@click="show=true"> <span style="color: red;font-size: 18px">*</span>
<span
style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
@click="show=true"
> <span style="color: red;font-size: 18px">*</span>
{{
language == 0 ? '点击查看场馆布局' : 'View Venue Layout'
}}
......@@ -141,8 +143,10 @@
</div>
</div>
<div v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
@click="toSelectClosed">
<div
v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
@click="toSelectClosed"
>
{{
triggerLanguage(language, "售票结束", "Sale closed")
}}
......@@ -163,8 +167,8 @@
<div :class="{'bg':active==1}" class="buBg" @click="active=1">购票说明</div>
<div :class="{'bg' :active==2}" class="buBg" @click="active=2">购票须知</div>
</div>
<div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes"/>
<div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice"/>
<div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" />
<div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" />
<el-dialog v-model="show" title="" width="1000px">
<div>
......@@ -177,30 +181,30 @@
<script setup>
import {ref, computed} from "vue";
import {listApi, getTicketInfoByActivityId, getTicketListApi, checkNonPayment} from '@/apiPc/booking'
import { ref, computed } from 'vue'
import { listApi, getTicketInfoByActivityId, getTicketListApi, checkNonPayment } from '@/apiPc/booking'
import {dayjs} from "element-plus";
import {ElMessageBox, ElMessage} from "element-plus";
import {languageFormat, getDayName} from "@/viewsPc/seat/utils/language";
import {fillImgUrl} from "/@/utils/ruoyi";
import useUserStore from "/@/store/modules/user";
import {triggerLanguage} from '@/utils/ruoyi'
import {useStorage} from "@vueuse/core/index";
import { dayjs } from 'element-plus'
import { ElMessageBox, ElMessage } from 'element-plus'
import { languageFormat, getDayName } from '@/viewsPc/seat/utils/language'
import { fillImgUrl } from '/@/utils/ruoyi'
import useUserStore from '/@/store/modules/user'
import { triggerLanguage } from '@/utils/ruoyi'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const useStore = useUserStore()
const user = computed(() => useUserStore().user)
const route = useRoute();
const router = useRouter();
const route = useRoute()
const router = useRouter()
const show = ref(false)
const activeId = ref(route.params.activeId)
const flag = ref(false)
const active = ref(1)
const countDown = ref(false)
const props = defineProps({
activityId: [String, Number],
});
activityId: [String, Number]
})
const timeData = ref()
const endTime = ref()
const matchForm = ref({})
......@@ -209,7 +213,7 @@ const selectForm = ref({
latId: null,
id: null,
price: '--',
priceEn: '--',
priceEn: '--'
})
const tickList = ref([])
......@@ -217,14 +221,14 @@ const tickList = ref([])
getDetail()
async function getDetail() {
const res = await getTicketInfoByActivityId({activityId: activeId.value})
const res = await getTicketInfoByActivityId({ activityId: activeId.value })
matchForm.value = res.data
console.log(res)
const today = dayjs().format('YYYY-MM-DD HH:mm:ss')
timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond')
endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond')
// if (timeData.value <= nowData.value) countDown.value = true
// timeData.value = dayjs('2024-08-10 00:00:00').diff(today, 'millisecond')
// timeData.value = dayjs('2025-08-10 00:00:00').diff(today, 'millisecond')
}
// 根据赛事ID获取票档
......@@ -243,8 +247,8 @@ async function getTicketList() {
// 根据票档获取场次
async function getTicketListType() {
let arr = []
const res = await listApi({latId: selectForm.value.latId})
const arr = []
const res = await listApi({ latId: selectForm.value.latId })
tickList.value = res.rows
for (const v of res.rows) {
if (v.isView == 0) arr.push(v)
......@@ -277,8 +281,8 @@ function selectTick(v) {
}
function toSelectSeat() {
if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? "请选择票档" : 'Please select a ticket file')
if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? "请选择时间" : 'Please select time')
if (!selectForm.value.latId) return ElMessage.error(language.value == 0 ? '请选择票档' : 'Please select a ticket file')
if (!selectForm.value.id) return ElMessage.error(language.value == 0 ? '请选择时间' : 'Please select time')
if (!user.value) {
useStore.setVisitor()
return
......@@ -296,10 +300,7 @@ function toSelectSeat() {
} else {
router.push('/center/myReservation')
}
})
}
function toSelectClosed() {
......
......@@ -15,42 +15,48 @@
<div class="esp mt5">{{ n.name }}</div>
</li>
</ul>
<el-empty v-if="schList.length== 0"
style="--el-empty-padding:0;--el-empty-description-margin-top:0"
:image="`/img/order_no.png`" :image-size="200"/>
<el-empty
v-if="schList.length== 0"
:image="`/img/order_no.png`"
:image-size="200" style="--el-empty-padding:0;--el-empty-description-margin-top:0"
/>
</div>
</div>
</template>
<script setup>
import {ref} from "vue";
import {dayjs} from "element-plus";
import {getIndexScheduleList} from "@/apiPc/common";
import {useRouter} from "vue-router";
import { ref } from 'vue'
import { dayjs } from 'element-plus'
import { getIndexScheduleList } from '@/apiPc/common'
import { useRouter } from 'vue-router'
const router = useRouter()
const currentDate = ref(new Date())
const calendarRange = ref([dayjs('2024-07-17').toDate(), dayjs('2024-07-17').toDate()])
const calendarRange = ref([dayjs('2025-07-17').toDate(), dayjs('2025-07-17').toDate()])
const schList = ref([])
const loading = ref(false)
const query = ref({
// currentDate:dayjs().format('YYYY-MM-DD')
currentDate: '2024-07-17'
currentDate: '2025-07-17'
})
getScheduleList()
function getScheduleList() {
loading.value = true
query.value.currentDate = dayjs(query.value.currentDate).format('YYYY-MM-DD')
getIndexScheduleList(query.value).then(res=>{
getIndexScheduleList(query.value).then(res => {
loading.value = false
schList.value = res.data
})
}
function selectDate(date) {
console.log(dayjs(date).toDate())
console.log(query.value.currentDate)
query.value.currentDate = dayjs(date).toDate()
getScheduleList()
}
function goMatch(n) {
router.push({
name: 'matchDetail',
......@@ -64,7 +70,7 @@ function goMatch(n) {
}
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
.el-calendar {
--el-calendar-border: none;
--el-calendar-cell-width: 40px;
......@@ -119,7 +125,8 @@ function goMatch(n) {
height: 225px;
ul {
li {cursor: pointer;
li {
cursor: pointer;
background: #F6F9FE;
margin: 7px 0 7px 20px;
position: relative;
......
<template>
<el-dialog
v-model="show" :close-on-click-modal="false" :title="language==0?'赛事购买协会':'Event Insurance Procurement Agreement'" append-to-body center
class="pcloginpop"
close-icon="CircleClose" destroy-on-close
width="1100px"
>
<div v-html="data" />
<template #footer>
<div class="dialog-footer text-center">
<el-button class="btn-lineG w200px" round type="primary" @click="submitForm">{{
language == 0 ? '确定' : 'Save'
}}
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { getCurrentInstance, ref } from '@vue/runtime-core'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const { proxy } = getCurrentInstance()
const emit = defineEmits(['submitForm'])
const show = ref(false)
const data = ref()
const open = (row) => {
show.value = true
data.value = row
}
function submitForm() {
show.value = false
}
defineExpose({ open })
</script>
<style lang="scss">
.threeFour {
width: 100%;
.el-upload--picture-card {
width: 120px;
height: 160px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 120px;
height: 160px;
}
}
.tip {
font-size: 13px;
color: #999;
margin: 10px 0;
i {
color: red;
margin: 0 4px 0 0;
}
}
.shenfen {
.el-upload--picture-card {
width: 320px;
height: 200px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 320px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload--picture-card ) {
width: 140px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload-list__item ) {
width: 140px;
height: 200px;
}
}
.el-form--inline .el-form-item {
width: 100%
}
.boxDialog {
.el-dialog__header {
background: linear-gradient(#ed2c22, #fe6d45);
margin-right: 0;
height: 52px;
span {
color: #fff;
}
}
}
</style>
<template>
<div style="padding: 0 20px 20px" v-if="language==0">
<div v-if="language==0" style="padding: 0 20px 20px">
<!--赛事详情-->
<div class="indexTitle">
<h3 class="leftboderTT">组织机构</h3>
</div>
<div class="xzbox" v-html="form.ocOrganizer">
</div>
<div class="indexTitle" v-if="form.languageSource!='100'"><h3 class="leftboderTT">报名须知</h3></div>
<div class="xzbox" v-if="form.languageSource!='100'">
<div v-html="form.signKnow"></div>
<div class="xzbox" v-html="form.ocOrganizer" />
<div v-if="form.languageSource!='100'" class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div>
<div v-if="form.languageSource!='100'" class="xzbox">
<div v-html="form.signKnow" />
<div v-if="form.signKnowUrl">
<el-link v-for="(item,index) in JSON.parse(form.signKnowUrl)" type="primary"
:href="fillImgUrl(item.url)" target="_blank">
<el-link
v-for="(item,index) in JSON.parse(form.signKnowUrl)" :key="index" :href="fillImgUrl(item.url)"
target="_blank" type="primary"
>
<el-icon :size="20">
<Download />
</el-icon>
{{ item.name }}
</el-link>
</div>
</div>
<!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div class="indexTitle" v-if="form.languageSource=='100'"><h3 class="leftboderTT">赛事规程</h3></div>
<div class="xzbox" v-if="form.languageSource=='100'">
<div v-html="form.ruleContent"></div>
<el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">
<!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div v-if="form.languageSource=='100'" class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div>
<div v-if="form.languageSource=='100'" class="xzbox">
<div v-html="form.ruleContent" />
<el-link v-if="form.ruleUrl" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank" type="primary">
<el-icon :size="20">
<Download />
</el-icon>
{{ JSON.parse(form.ruleUrl)[0]?.name }}
</el-link>
</div>
<!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>-->
<!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">-->
<!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>-->
<!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">-->
<!-- </div>-->
<!-- </div>-->
</div>
<div style="padding: 0 20px 20px" v-else>
<div v-else style="padding: 0 20px 20px">
<!--赛事详情-->
<div class="indexTitle">
<h3 class="leftboderTT">Organization</h3>
</div>
<div class="xzbox" v-html="form.ocOrganizer">
</div>
<div class="xzbox" v-html="form.ocOrganizer" />
<div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div>
<div class="xzbox">
<div v-html="form.signKnow"></div>
<el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank">
<div v-html="form.signKnow" />
<el-link
v-if="form.signKnowUrl" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank"
type="primary"
>
<el-icon :size="20">
<Download />
</el-icon>
{{ JSON.parse(form.signKnowUrl)[0]?.name }}
</el-link>
</div>
<!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <div v-html="form.ruleContent">-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <div v-html="form.ruleContent">-->
<!-- </div>-->
<!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div>
<!-- </div>-->
<!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div v-if="form.type==1 && form.cptProjectList?.length > 0" class="indexTitle"><h3 class="leftboderTT">Event
settings</h3></div>
<div v-if="form.type==1 && form.cptProjectList?.length > 0">
<match-info-project-list :match-id="form.id" :is-national="form.languageSource!='100'"/>
<match-info-project-list :is-national="form.languageSource!='100'" :match-id="form.id" />
</div>
</div>
</template>
<script setup>
import {ref} from "vue";
import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList";
import {useStorage} from "@vueuse/core/index";
import {onMounted} from "@vue/runtime-core";
import { ref } from 'vue'
import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList'
import { useStorage } from '@vueuse/core/index'
import { onMounted } from '@vue/runtime-core'
const language= useStorage('language',0)
const language = useStorage('language', 0)
const props = defineProps({
form:{
type:Object,
required:true
form: {
type: Object,
required: true
}
})
</script>
<style scoped lang="scss">
.indexTitle{margin: 20px 0 12px;
h3{
<style lang="scss" scoped>
.indexTitle {
margin: 20px 0 12px;
h3 {
font-size: 20px;
color:var(--el-color-primary);
color: var(--el-color-primary);
}
}
......
......@@ -64,33 +64,33 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
'/dev-api/ztx-train': {
// target: 'http://123.60.96.243:1896/stage-api',
target: 'https://jijin.wtwuxicenter.com/stage-api',
target: 'http://192.168.1.243:1896/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
},
'/dev-api/ztx-match': {
target: 'http://192.168.1.253:8081',
target: 'http://192.168.1.243:8081',
// target: 'https://wdsfwuxicenter.com/stage-api/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
},
'/dev-api/ztx-webSite': {
target: 'http://192.168.1.253:8081',
target: 'http://192.168.1.243:8081',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
target: 'http://192.168.1.118:8081/',
// target: 'http://192.168.1.253:8081',
// target: 'http://192.168.1.118:8081/',
target: 'http://192.168.1.243:8081',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
},
'/ticket': {
// target: 'http://192.168.1.131:8081/',
target: 'https://jijin.wtwuxicenter.com/h5/',
target: 'http://192.168.1.243:8081/',
// target: 'https://jijin.wtwuxicenter.com/h5/',
// target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/ticket/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!