19522552 by 华明祺

Merge branch 'dev' of https://code.itechtop.cn/yangyang/dance-pc into dev

2 parents 6332ec8d 36649f49

159 KB | W: | H:

75.6 KB | W: | H:

public/img/code.jpg
public/img/code.jpg
public/img/code.jpg
public/img/code.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -344,6 +344,15 @@ export function getPerPersonList(query, userId) {
})
}
// 选择队友
export function getMate(data) {
return request({
url: `/systemj/personInfo/getMate`,
method: 'post',
data
})
}
// 获取团队报名时已选人员
export function getChooseDoneGroupCoachs(cptId, groupId) {
......@@ -789,10 +798,11 @@ export function getZNList(params) {
}
// 团体报名校验
export function preCheckForGroup(groupId) {
export function preCheckForGroup(groupId, type) {
return request({
url: `/systemj/personInfo/preCheckForGroup/${groupId}`,
method: 'get'
method: 'get',
params: { type }
})
}
......
import { ElMessage, ElMessageBox, ElNotification, ElLoading } from 'element-plus'
import {useStorage} from "@vueuse/core/index";
import { useStorage } from '@vueuse/core/index'
const language= useStorage('language',0)
const language = useStorage('language', 0)
let loadingInstance
export default {
......@@ -23,19 +23,19 @@ export default {
},
// 弹出提示
alert(content) {
return ElMessageBox.alert(content, language.value==0 ? language.value==0 ? '系统提示' :'Tips' :'Tips')
return ElMessageBox.alert(content, language.value == 0 ? language.value == 0 ? '系统提示' : 'Tips' : 'Tips')
},
// 错误提示
alertError(content) {
return ElMessageBox.alert(content, language.value==0 ? language.value==0 ? '系统提示' :'Tips' :'Tips', { type: 'error' })
return ElMessageBox.alert(content, language.value == 0 ? language.value == 0 ? '系统提示' : 'Tips' : 'Tips', { type: 'error' })
},
// 成功提示
alertSuccess(content) {
return ElMessageBox.alert(content, language.value==0 ? '系统提示' :'Tips', { type: 'success' })
return ElMessageBox.alert(content, language.value == 0 ? '系统提示' : 'Tips', { type: 'success' })
},
// 警告提示
alertWarning(content) {
return ElMessageBox.alert(content, language.value==0 ? '系统提示' :'Tips', { type: 'warning' })
return ElMessageBox.alert(content, language.value == 0 ? '系统提示' : 'Tips', { type: 'warning' })
},
// 通知提示
notify(content) {
......@@ -55,17 +55,17 @@ export default {
},
// 确认窗体
confirm(content) {
return ElMessageBox.confirm(content, language.value==0 ? '系统提示' :'Tips', {
confirmButtonText: language.value==0 ? '确定' :'OK',
cancelButtonText: language.value==0 ? '取消' :'Cancel',
return ElMessageBox.confirm(content, language.value == 0 ? '系统提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
})
},
// 提交内容
prompt(content) {
return ElMessageBox.prompt(content, language.value==0 ? '系统提示' :'Tips', {
confirmButtonText: language.value==0 ? '确定' :'OK',
cancelButtonText: language.value==0 ? '取消' :'Cancel',
return ElMessageBox.prompt(content, language.value == 0 ? '系统提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
})
},
......
<template>
<el-dialog v-model="show" title="出行人信息" center append-to-body>
<el-dialog v-model="show" width="500" :title="languageFormat(language, '出行人信息', 'Travelers')" center append-to-body>
<el-button type="primary" plain @click="addPeopl">{{ languageFormat(language, "新增", "Add") }}</el-button>
<el-form>
<el-form-item prop="message">
<div class="p_box">
<div class="people">
<el-radio-group v-model="personId">
<div
v-for="(it, index) in personList" :key="index" class="e_item"
>
<div v-for="(it, index) in personList" :key="index" class="e_item">
<el-radio border :value="it.id" :disabled="hasPersonIds?.indexOf(it.id)!=-1">
<div>
{{ it.name }} {{ it.idCard }}
<div class="name">{{ it.name }}</div>
<div class="code">
<span v-if="it.idcType==0">{{ language == 0 ? '身份证' : 'ID number' }}</span>
<span v-if="it.idcType==1">{{ language == 0 ? '护照' : 'Passport' }}</span>
<span v-if="it.idcType==2">{{ language == 0 ? '其他' : 'Other' }}</span>
{{ it.idCard }}
</div>
</el-radio>
</div>
</el-radio-group>
</div>
</div>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="show = false">取 消</el-button>
<el-button type="primary" @click="addPerson">完成</el-button>
<el-button @click="show = false">{{ languageFormat(language, "取 消", "Cancel") }}</el-button>
<el-button type="primary" @click="addPerson">{{ languageFormat(language, "完 成", "Ok") }}</el-button>
</div>
</template>
</el-dialog>
......@@ -36,17 +32,17 @@
style="margin: 80px"
>
<el-form-item :label="language==0?'姓名':'name'" prop="name" required :show-message="false">
<el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'" />
<el-input v-model="form.name" :placeholder="language==0?'请输入':'Please input'"/>
</el-form-item>
<el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required :show-message="false">
<el-select v-model="form.idcType" :placeholder="language==0?'请选择':'Please choose'">
<el-option :label="language==0?'身份证':'Identity card'" value="0" />
<el-option :label="language==0?'护照':'Passport'" value="1" />
<el-option :label="language==0?'其他':'Other'" value="2" />
<el-option :label="language==0?'身份证':'Identity card'" value="0"/>
<el-option :label="language==0?'护照':'Passport'" value="1"/>
<el-option :label="language==0?'其他':'Other'" value="2"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'证件号':'ID number'" prop="idCard" required :show-message="false">
<el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'" />
<el-input v-model="form.idCard" :placeholder="language==0?'请输入证件号':'Please enter the ID after ah'"/>
</el-form-item>
</el-form>
......@@ -61,15 +57,15 @@
</template>
<script setup>
import { aadSceneCustomer, checkSceneCustomer, getMyFriends } from '/@/apiPc/booking'
import { languageFormat } from '/@/viewsPc/seat/utils/language'
import { onMounted, ref } from 'vue'
import { useStorage } from '@vueuse/core/index'
import {aadSceneCustomer, checkSceneCustomer, getMyFriends} from '/@/apiPc/booking'
import {languageFormat} from '/@/viewsPc/seat/utils/language'
import {onMounted, ref} from 'vue'
import {useStorage} from '@vueuse/core/index'
import _ from 'lodash'
import { getCurrentInstance } from '@vue/runtime-core'
import {getCurrentInstance} from '@vue/runtime-core'
const emit = defineEmits(['addPerson'])
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
const show = ref(false)
const showAdd = ref(false)
......@@ -104,11 +100,11 @@ const addPerson = () => {
gateType: currParams.gateType
}).then((res) => {
if (res.data == 201) {
proxy.$modal.msgError('护照只能购买成人票')
proxy.$modal.msgError(language.value == 0 ? '护照只能购买成人票' : 'Passport can only buy adult tickets')
} else if (res.data == 202) {
proxy.$modal.msgError('此身份证不能购买老人票')
proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买老人票' : 'This ID cannot buy senior tickets')
} else if (res.data == 203) {
proxy.$modal.msgError('此身份证不能购买儿童票')
proxy.$modal.msgError(language.value == 0 ? '此身份证不能购买儿童票' : 'This ID cannot buy child tickets')
} else {
show.value = false
emit('addPerson', Object.assign(currParams, {
......@@ -155,5 +151,28 @@ defineExpose({
</script>
<style scoped lang="scss">
.e_item{margin: 20px 20px 0 0;}
.el-radio-group {
display: block;
}
.e_item {
margin: 20px 0 0 0;
width: 100%;
.el-radio {
width: 100%;
height: auto;
padding: 10px;
}
.name {
font-size: 16px;
}
.code {
font-size: 14px;
margin: 4px 0 0;
color: #999;
}
}
</style>
......
......@@ -14,36 +14,55 @@
<div class="info">
<div class="name">{{ TickForm2.ticketTypeName }}</div>
<div class="address">{{ TickForm2.stadiumName }}</div>
<div class="address">{{ TickForm2.sessionType=='1000'?'日间场':'夜间场' }}</div>
<div class="address">{{ TickForm2.ticketName }}</div>
<div class="address">
{{ TickForm2.stadiumName }}
<span v-if="TickForm2.sessionType=='1000'">{{ language == 0 ? '日间场' : 'Day' }}</span>
<span v-else>{{ language == 0 ? '夜间场' : 'Night' }}</span>
{{ TickForm2.ticketName }}
</div>
<div v-if="TickForm2.ticketType=='0'" class="address">剩余数量{{ leftCount }}</div>
<div v-if="TickForm2.ticketType=='0'" class="address">{{ language==0?'剩余数量':'Remaining Quantity' }}{{ leftCount }}</div>
</div>
<div class="ticket_info mb20">
<div class="tit_box">
<div class="line" />
<div class="line"/>
<div class="txt">
{{ languageFormat(language, "订票信息", "Ticket Info") }}
</div>
</div>
<div class="form">
<el-form ref="formRef" :model="orderForm" :rules="rules" label-width="120px">
<el-form ref="formRef" :model="orderForm" :rules="rules" label-width="140px">
<div v-if="TickForm2.ticketType == '1'">
<el-form-item :label="language == 0 ? '桌号' : 'zuohao'">
<el-form-item :label="language == 0 ? '桌号' : 'Table'">
<el-popover placement="right" :width="400" trigger="hover">
<template #reference>
<div class="text-primary underline pointer" @click="showImg">
{{ language == 0 ? '查看区域布局' : ' View Area Layout' }}
</div>
</template>
<el-image :src="fillImgUrl(tickImg)" style="width: 100%;"
:preview-src-list="[fillImgUrl(tickImg)]"/>
</el-popover>
<el-radio-group v-model="currDesk">
<el-radio-button v-for="(it, index) in deskList" :key="index" :label="it.deskNo" :value="it" :disabled="it.status!=0" />
<el-radio-button v-for="(it, index) in deskList" :key="index" :label="it.deskNo" :value="it"
:disabled="it.status!=0"/>
</el-radio-group>
</el-form-item>
<el-form-item :label="language == 0 ? '座位号' : 'zuoweihao'">
<el-form-item :label="language == 0 ? '座位号' : 'Seat'">
<el-checkbox-group v-model="currSeat">
<el-checkbox-button v-for="(it, index) in currDesk?.seatList" :key="index" :label="it.seatNo" :value="it" :disabled="it.status!=0" />
<el-checkbox-button v-for="(it, index) in currDesk?.seatList" :key="index" :label="it.seatNo"
:value="it" :disabled="it.status!=0"/>
</el-checkbox-group>
</el-form-item>
<el-form-item label="已选座位号">
<el-tag v-for="s in currSeat" :key="s.id">{{ s.deskNo }} - {{ s.seatNo }}</el-tag>
<el-form-item :label="language == 0 ?'已选座位号':'Selected Seat'">
<el-tag class="mr10" v-for="(s,index) in currSeat" :key="s.id" closable @close="delSeat(s,index)">
{{ s.deskNo }} - {{ s.seatNo }}
</el-tag>
</el-form-item>
</div>
<el-form-item
......@@ -68,9 +87,7 @@
<div class="p_box">
<div class="people">
<el-checkbox-group v-model="orderForm.customerIds" @change="changeGroup">
<div
v-for="(it, index) in personnelList" :key="index" class="prople_item"
>
<div v-for="(it, index) in personnelList" :key="index" class="prople_item">
<div>
<div class="name">{{ it.name }}
<!-- <span v-if="it.discount" class="tag_t p-right">{{-->
......@@ -79,10 +96,7 @@
</div>
<div class="idcard">{{ it.idCard }}</div>
</div>
<el-checkbox
:value="it.id"
:disabled="!!it.disabled"
/>
<el-checkbox :value="it.id" :disabled="!!it.disabled"/>
</div>
</el-checkbox-group>
</div>
......@@ -98,7 +112,7 @@
<el-col :lg="8" class="right">
<div class="tit_box">
<div class="line" />
<div class="line"/>
<div class="txt">
{{ languageFormat(language, "订单明细", "Order summary") }}
</div>
......@@ -109,7 +123,7 @@
<div class="time">
{{ language == 0 ? '票价' : 'Cost Ticket' }}
</div>
<p />
<p/>
<div class="ticket">
{{ language == 0 ? TickForm2.price : TickForm2.priceEn }}
<span> {{ language == 0 ? '元' : 'Euro' }}</span>
......@@ -123,7 +137,9 @@
</div>
<div class="price_num">
<span>{{ language == 0 ? "¥" : "€" }}</span>
{{ ((language == 0 ?TickForm2.price:TickForm2.priceEn) * orderForm.customerIds.length).toFixed(2) }}
{{
((language == 0 ? TickForm2.price : TickForm2.priceEn) * orderForm.customerIds.length).toFixed(2)
}}
</div>
</div>
</div>
......@@ -137,7 +153,7 @@
</span>
<span class="value">
<span>{{ language == 0 ? "¥" : "€" }}</span>
{{ ((language == 0 ?TickForm2.price:TickForm2.priceEn) * orderForm.customerIds.length).toFixed(2) }}
{{ ((language == 0 ? TickForm2.price : TickForm2.priceEn) * orderForm.customerIds.length).toFixed(2) }}
</span>
</div>
<div class="pay" @click="paymentHandle">
......@@ -150,7 +166,7 @@
</template>
<script setup>
import { ref, computed, onMounted } from 'vue'
import {ref, computed, onMounted} from 'vue'
import {
customerListApi,
submitOrderTicket,
......@@ -160,12 +176,12 @@ import {
checkPurchasedCustomers,
getDeskInfo
} from '@/apiPc/booking'
import { ElMessage, ElMessageBox } from 'element-plus'
import { languageFormat } from '@/viewsPc/seat/utils/language.js'
import {ElMessage, ElMessageBox} from 'element-plus'
import {languageFormat} from '@/viewsPc/seat/utils/language.js'
import useUserStore from '/@/store/modules/user'
import { useStorage } from '@vueuse/core/index'
import {useStorage} from '@vueuse/core/index'
import _ from 'lodash'
import { useRoute, useRouter } from 'vue-router'
import {useRoute, useRouter} from 'vue-router'
const useStore = useUserStore()
......@@ -211,8 +227,9 @@ const leftCount = ref({})
const deskList = ref([])
const currDesk = ref(null)
const currSeat = ref([])
const tickImg = ref()
onMounted(() => {
tickImg.value = route.query.tickImg
customerList()
getDetail()
......@@ -241,6 +258,10 @@ onMounted(() => {
})
})
function delSeat(item, index) {
currSeat.value.splice(index, 1)
}
function changeGroup(e) {
if (e.length > 0) {
checkPurchasedCustomers({
......@@ -300,7 +321,7 @@ async function paymentHandle() {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(async() => {
}).then(async () => {
try {
const orderCustomerList = []
_.each(orderForm.value.customerIds, (id, index) => {
......@@ -369,7 +390,7 @@ async function paymentHandle() {
}
async function getDetail() {
const res = await getTicketInfoByActivityId({ activityId: orderForm.value.activeId })
const res = await getTicketInfoByActivityId({activityId: orderForm.value.activeId})
TickForm.value = res.data
}
......@@ -379,6 +400,10 @@ function addPeopl() {
path: '/booking/ticket/peopleManage'
})
}
const showImg = () => {
}
</script>
......@@ -503,7 +528,7 @@ div {
.name {
font-size: 16px;
color: #929aa0;
//color: #929aa0;
margin-bottom: 20px;
.tag_t {
......
......@@ -221,8 +221,8 @@
<div class="container bottom">
<div style="display: flex">
<div :class="{'bg':active==1}" class="buBg" @click="active=1">购票说明</div>
<div :class="{'bg' :active==2}" class="buBg" @click="active=2">购票须知</div>
<div :class="{'bg':active==1}" class="buBg" @click="active=1">{{ language==0?'购票说明':'Notice' }}</div>
<div :class="{'bg' :active==2}" class="buBg" @click="active=2">{{ language==0?'购票须知':'Instructions' }}</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" />
......@@ -394,6 +394,9 @@ function toSelectSeat() {
params: {
activeId: activeId.value,
latstId: selectForm.value.latstId
},
query: {
tickImg: currTick.value.images
}
})
} else {
......
......@@ -126,10 +126,11 @@
<div class="text-center mt30">
<el-button
style="color: #fff" :disabled="btnDisable" size="large"
style="color: #fff" size="large"
class="w200px btn-lineG" :class="{'forbid':!(!hotTime[0])}" round @click="goOrder"
>
{{ language==0?'立即预订':'BOOK NOW' }}
<span v-if="btnDisable">{{ language==0?'不在预定时间内':'OUT OF ORDER TIME' }}</span>
<span v-else>{{ language==0?'立即预订':'BOOK NOW' }}</span>
</el-button>
</div>
</el-card>
......@@ -191,6 +192,7 @@ function dateChange() {
}
function selectDate(date) {
query.value.currentDate = date
currentDate1.value = currentDate.value = dayjs(date).toDate()
console.log(date)
}
......@@ -209,7 +211,10 @@ const btnDisable = computed(() => {
})
function goOrder(room) {
function goOrder() {
if(btnDisable.value){
return
}
ElMessageBox.confirm(language.value == 0 ? `你当前选择的出行日期为${dayjs(currentDate.value).format('YYYY-MM-DD')}是否确定?` : `Your current check-in time is ${dayjs(currentDate.value).format('YYYY-MM-DD')} Are you sure?`, { type: 'warning' }).then({}).then(() => {
checkOrderPay(6).then(res => {
if (res.data == -100) {
......
......@@ -58,22 +58,25 @@
<!-- :picker-options="pickerOptions"-->
</el-form-item>
<el-form-item v-for="(n,i) in gateList" :key="i" :label="language==0? n.name:'Rooms'" prop="count">
<el-form-item v-for="(n,i) in gateList" :key="i" :label="language==0? n.name:n.name" prop="count">
<el-input-number v-model="n.count" :min="0" :max="n.leftNum" @change="changeNum(n)" />
<div class="red ml20">
<span v-if="language == 0">单价:{{ n.price }}</span>
<span v-else>{{ n.priceEn }}</span>
<span v-if="language == 0">单价: ¥{{ n.price }}</span>
<span v-else>{{ n.priceEn }} / Ticket</span>
</div>
<div class="red ml20">
<span v-if="language == 0">剩余票数:{{ n.leftNum }}</span>
<span v-else>{{ n.leftNum }} Remaining rooms</span>
<span v-else>{{ n.leftNum }} sheet remaining </span>
</div>
</el-form-item>
<div v-if="needPersonNum>0" class="fakeFormItem">
<label>需填写{{ needPersonNum }}位游客</label>
<label v-if="language == 0">需填写{{ needPersonNum }}位游客</label>
<label v-else>Need {{ needPersonNum }} visitors</label>
<div>
<label class="text-warning" v-show="needPersonNum > hasPersonNum">还需填写{{ needPersonNum-hasPersonNum }}位游客</label>
<label class="text-warning" v-show="needPersonNum > hasPersonNum && language==0">
还需填写{{ needPersonNum-hasPersonNum }}位游客
</label>
</div>
</div>
<div v-for="(n,i) in gateList" :key="i">
......@@ -84,9 +87,12 @@
</label>
<div v-if="p.name" class="mation">
<div>{{ p.name }}</div>
身份证:{{ p.idCard }}
<span v-if="p.idcType==0">{{language==0?'身份证':'ID number'}}</span>
<span v-if="p.idcType==1">{{language==0?'护照':'Passport'}}</span>
<span v-if="p.idcType==2">{{language==0?'其他':'Other'}}</span>
{{ p.idCard }}
</div>
<el-icon @click="showAddPerson(n, j,p)"><Edit /></el-icon>
<el-icon @click="showAddPerson(n, j,p)" color="#453DEA"><Edit /></el-icon>
</div>
</div>
......@@ -107,13 +113,13 @@
<div v-for="(c, index) in gateList" v-show="c.count>0" :key="index" class="ccitem">
{{ c.name }}
<span v-if="language==0">{{ c.count }}*{{ '¥' }}{{ c.price }}</span>
<span v-else>{{ c.count }}*{{ '€' }}{{ c.priceEn }}</span>
<span v-if="language==0">{{ c.count }} * {{ '¥' }}{{ c.price }}</span>
<span v-else>{{ c.count }} * {{ '€' }} {{ c.priceEn }}</span>
</div>
<label>{{ language == 0 ? '共计' : 'Total' }}<span
class="fr bigMoney"
>{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label>
>{{ language == 0 ? '¥' : '€' }} {{ money }}</span></label>
</div>
</el-col>
......@@ -457,7 +463,7 @@ function submit() {
line-height: 32px;flex: 0 0 auto;
display: inline-flex;
justify-content: flex-end;
align-items: center;gap: 10px;}
align-items: center;gap: 10px;white-space: nowrap;}
}
.tip{font-size: 14px;color: #666;padding: 0 10px;}
.personIt{display: flex;align-items: center;
......
......@@ -8,17 +8,17 @@
<!-- <el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'发票开具':'Invoice' }}</el-button>-->
<!-- <el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'我的发票':'My Invoice' }}</el-button>-->
</div>
<el-empty v-if="list?.length == 0" :image="`/img/order_no.png`" :image-size="228" />
<el-empty v-if="list?.length == 0" :image="`/img/order_no.png`" :image-size="228"/>
<div class="pd20">
<div v-for="b in list" class="item">
<div class="title">
<label v-if="b.orderType == 0" class="blueTag"> {{ language == 0 ? '酒店' : 'HOTEL' }} </label>
<label v-if="b.orderType == 1" class="purpleTag"> {{ language == 0 ? '车辆' : 'TRANSPORTATION' }} </label>
<label v-if="b.orderType == 2" class="orangeTag"> {{ language == 0 ? '餐饮' : 'DINING' }} </label>
<label v-if="b.orderType == 3" class="orangeTag"> {{ language == 0 ? '化妆' : 'MakeUp' }} </label>
<label v-if="b.orderType == 2" class="blueTag"> {{ language == 0 ? '餐饮' : 'DINING' }} </label>
<label v-if="b.orderType == 3" class="purpleTag"> {{ language == 0 ? '化妆' : 'MakeUp' }} </label>
<label v-if="b.orderType == 4" class="orangeTag"> {{ language == 0 ? '拍摄' : 'Shooting ' }} </label>
<label v-if="b.orderType == 5" class="orangeTag"> {{ language == 0 ? '票务' : 'TICKETING ' }} </label>
<label v-if="b.orderType == 5" class="greenTag"> {{ language == 0 ? '票务' : 'TICKETING ' }} </label>
<label v-if="b.orderType == 6" class="orangeTag"> {{ language == 0 ? '旅游' : 'Travel ' }} </label>
<span>{{ language == 0 ? '订单编号:' : 'No.' }} {{ b.id }}</span>
......@@ -28,9 +28,8 @@
<span v-if="b.status == '0'&&b.surplus!='0,0'&&b.surplus!='0'" class="bg-warning">
{{ language == 0 ? '待支付' : 'Unpaid' }}
</span>
<span v-if="b.status == '0'&&(b.surplus=='0,0'||b.surplus=='0')" class="bg-warning">{{
language == 0 ? '已取消' : 'Canceled'
}}</span>
<span v-if="b.status == '0'&&(b.surplus=='0,0'||b.surplus=='0')"
class="bg-warning">{{ language == 0 ? '已取消' : 'Canceled' }}</span>
<span v-if="b.status == '1'" class="bg-blue">{{ language == 0 ? '支付成功' : 'successful' }}</span>
<span v-if="b.status == '2'" class="bg-warning">{{ language == 0 ? '已取消' : 'Canceled' }}</span>
<span v-if="b.status == '3'||b.status == '4'" class="bg-danger">{{
......@@ -39,9 +38,7 @@
<span v-if="b.status == '7'" class="bg-danger">{{
language == 0 ? '退款审核中' : 'Refund in review'
}}</span>
<span v-if="b.status == '-1'" class="bg-blue">{{
language == 0 ? '已核销' : 'Completed'
}}</span>
<span v-if="b.status == '-1'" class="bg-blue">{{ language == 0 ? '已核销' : 'Completed' }}</span>
</div>
<el-row align="middle" class="pd20 mt10" justify="space-between">
......@@ -56,7 +53,7 @@
<div v-if="b.orderType == 1">
<h3 class="name">{{ b.name }}</h3>
<div>
<p>{{ b.extJsonObj.pickUpBo.count }} </p>
<p>{{ b.extJsonObj.pickUpBo.count }} {{ language == 0 ? '人' : 'people' }}</p>
<p>{{ b.extJsonObj.pickUpBo.revTime }}</p>
</div>
<!-- <p>{{b.messageObj}}</p>-->
......@@ -84,16 +81,18 @@
<div v-if="b.orderType==5">
<h3 class="name">{{ b.name }}</h3>
<p>
<!-- {{-->
<!-- dayjs(b.deliveryTime).format('YYYY-MM-DD') + ' ' + b.extJsonObj.timePeriod?.split('-')[0] + '-' + dayjs(b.deliveryTime).format('YYYY-MM-DD') + ' ' + b.extJsonObj.timePeriod?.split('-')[1]-->
<!-- }}-->
<p v-if="b.extJsonObj.ticketDate.name">
{{ b.extJsonObj.ticketDate.name }}
</p>
<p>{{ b.extJsonObj.atName }}{{ b.extJsonObj.atsName }}{{ b.extJsonObj.atstName }}</p>
<p v-for="p in b.extJsonObj?.orderCustomerList">
<el-tag class="mr10" v-if="p.deskNo">{{p.deskNo}}-{{p.seatNo}}</el-tag>
{{ p.name }} - {{ p.paymentType == '3' ? '€' : '¥' }}{{ b.extJsonObj.price }}
</p>
</div>
<div v-if="b.orderType == 6">
<h3 class="name">{{ b.name }}</h3>
<p>出行时间{{ b.extJsonObj.dcStart }}</p>
<p>{{ language == 0 ? '出行时间' : 'Travel Time' }}{{ b.extJsonObj.dcStart }}</p>
<p v-for="t in b.extJsonObj.touristList">{{ t.gateName }}{{ t.name }}</p>
</div>
</el-col>
......@@ -102,8 +101,8 @@
<p>{{ b.messageObj?.roomName }}</p>
<p>{{ b.messageObj?.roomInfo }}</p>
</div>
<div v-if="b.orderType == 1" />
<div v-if="b.orderType == 2" />
<div v-if="b.orderType == 1"/>
<div v-if="b.orderType == 2"/>
<div v-if="b.orderType == 3||b.orderType == 4">
<p>{{ b.extJsonObj.packageName }}</p>
</div>
......@@ -167,26 +166,26 @@
</div>
</div>
</el-card>
<div class="pd20" />
<div class="pd20"/>
</div>
</template>
<script setup>
import { onMounted, getCurrentInstance } from '@vue/runtime-core'
import { useStorage } from '@vueuse/core/index'
import { newbilllist } from '@/apiPc/common'
import {onMounted, getCurrentInstance} from '@vue/runtime-core'
import {useStorage} from '@vueuse/core/index'
import {newbilllist} from '@/apiPc/common'
import useUserStore from '@/store/modules/user'
import dayjs from 'dayjs'
import { cancelOrder2, cancelOrder } from '/@/apiPc/booking'
import {cancelOrder2, cancelOrder} from '/@/apiPc/booking'
import { ElMessage } from 'element-plus'
import {ElMessage} from 'element-plus'
const router = useRouter()
const language = useStorage('language', 0)
const list = ref([])
const user = useUserStore().user
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
onMounted(() => {
getList()
......@@ -198,7 +197,7 @@ function finish(bill) {
}
function getList() {
newbilllist({ createById: user.userId }).then(res => {
newbilllist({createById: user.userId}).then(res => {
list.value = res.rows || []
for (const b of list.value) {
b.messageObj = JSON.parse(b.message) || {}
......@@ -386,6 +385,10 @@ function toInvoice() {
}
.blueTag {
background-color: #1e62c8;
}
.greenTag {
background-color: #1EC886;
}
......
......@@ -36,9 +36,14 @@
<p>TRANSPORTATION RESERVATION</p>
</div>
</el-col>
<!-- <el-col :sm="12" :lg="8" :xs="12">-->
<!-- <div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">-->
<!-- <p>DINING RESERVATION</p>-->
<!-- </div>-->
<!-- </el-col>-->
<el-col :sm="12" :lg="8" :xs="12">
<div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">
<p>DINING RESERVATION</p>
<div class="item_en" @click="popRemark(8)"><img src="@/assets/dance/btn08.png">
<p>TRAVEL SERVICE</p>
</div>
</el-col>
<el-col :sm="12" :lg="8" :xs="12">
......
......@@ -8,13 +8,14 @@
<div style="min-height: 300px" v-loading="loading">
<div v-if="!type||type==''">
<div @click="type='0'" class="rItem">{{ language==0?'个人查询':'Personal Query' }}</div>
<div @click="type='1'" class="rItem">{{ language==0?'团队查询':'Team Query' }}</div>
<div @click="type='0'" class="rItem">{{ language == 0 ? '个人查询' : 'Personal Query' }}</div>
<div @click="type='1'" class="rItem">{{ language == 0 ? '团队查询' : 'Team Query' }}</div>
</div>
<div v-if="type=='0'">
<div class="flex mt30">
<el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query" clearable
<el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query"
clearable
@enter="search" @blur="search" @empty="search"/>
<el-button @click="search" class="btn-lineG" style="color: #fff">{{
language == 0 ? '查询' : 'Search'
......@@ -29,19 +30,19 @@
<span class="text-primary">{{ form.number }}</span>
</div>
<div>
<label>{{ language==0?'选手1':'Name1' }}</label>{{ form.maleName }}
<label>{{ language == 0 ? '选手1' : 'Name1' }}</label>{{ form.maleName }}
<span v-if="form.maleWdsf"> - {{ form.maleWdsf }}</span>
</div>
<div>
<label>{{ language==0?'选手2':'Name2' }}</label>{{ form.femaleName }}
<label>{{ language == 0 ? '选手2' : 'Name2' }}</label>{{ form.femaleName }}
<span v-if="form.femaleWdsf"> - {{ form.femaleWdsf }}</span>
</div>
<div>
<label>{{ language==0?'代表队':'Represent' }}</label>
<label>{{ language == 0 ? '代表队' : 'Represent' }}</label>
{{ form.groupName }}
</div>
<div v-if="form.zuInfo">
<label> {{ language==0?'组别':'Event' }}</label>{{ form.zuInfo }}
<label> {{ language == 0 ? '组别' : 'Event' }}</label>{{ form.zuInfo }}
</div>
</div>
</div>
......@@ -52,19 +53,24 @@
</div>
<div v-if="type=='1'">
<div class="flex mt20">
<el-input :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
<el-input
:placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
v-model="query2" clearable
@enter="searchTeam" @blur="searchTeam" @empty="searchTeam"/>
<el-button @click="searchTeam" class="btn-lineG" style="color: #fff">
{{language == 0 ? '查询' : 'Search' }}
{{ language == 0 ? '查询' : 'Search' }}
</el-button>
</div>
<span class="tip">*{{ language == 0 ?'模糊查询':'Fuzzy query' }}</span>
<div class="text-danger text-center" v-if="showGroupList">{{ language == 0 ?'找到多个团体':'Found multiple teams' }}</div>
<span class="tip">*{{ language == 0 ? '模糊查询' : 'Fuzzy query' }}</span>
<div class="text-danger text-center" v-if="showGroupList">
{{ language == 0 ? '找到多个团体' : 'Found multiple teams' }}
</div>
<div class="groupList" v-if="showGroupList">
<ul>
<li v-for="(item, index) in groupList" @click="showDetail(item)" :key="index">{{item}}
<el-icon class="fr"><ArrowRight /></el-icon>
<li v-for="(item, index) in groupList" @click="showDetail(item)" :key="index">{{ item }}
<el-icon class="fr">
<ArrowRight/>
</el-icon>
</li>
</ul>
</div>
......@@ -72,11 +78,11 @@
<el-collapse v-model="activeNames" accordion>
<el-collapse-item :name="index" :title="team[0][0].groupName" v-for="(team,index) in teamlist" :key="index">
<div class="nowteamItem" v-for="(p,jndex) in team" :key="jndex">
<div class="fontSize14 text-bold">{{p[0].zuInfo}}</div>
<div class="fontSize14 text-bold">{{ p[0].zuInfo }}</div>
<div v-for="f in p" :key="f.id">
<span class="nowName text-primary">{{f.number}}</span>
<span class="mr10">{{ language==0?'选手1':'Name1' }}{{f.maleName}} </span>
<span>{{ language==0?'选手2':'Name2' }}{{f.femaleName}} </span>
<span class="nowName text-primary">{{ f.number }}</span>
<span class="mr10">{{ language == 0 ? '选手1' : 'Name1' }}{{ f.maleName }} </span>
<span>{{ language == 0 ? '选手2' : 'Name2' }}{{ f.femaleName }} </span>
</div>
</div>
</el-collapse-item>
......@@ -111,7 +117,7 @@ const search = () => {
return
}
getBackNumber({query: query.value}).then(res => {
if (!res.data||res.data.length==0) {
if (!res.data || res.data.length == 0) {
list.value = []
//提示 '未找到结果,请重新查询'
ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
......@@ -123,24 +129,24 @@ const search = () => {
}
const searchTeam = () => {
teamlist.value = []
if (!query2.value||query2.value.length < 2) {
if (!query2.value || query2.value.length < 2) {
ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters')
return
}
loading.value = true
getTeamBackNumberPre({query: query2.value}).then(res => {
loading.value = false
if (!res.data||res.data.length==0) {
if (!res.data || res.data.length == 0) {
groupList.value = []
//提示 '未找到结果,请重新查询'
ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
return
}
groupList.value = res.data
if(groupList.value.length==1){
if (groupList.value.length == 1) {
showDetail(groupList.value[0])
}
if(groupList.value.length>1){
if (groupList.value.length > 1) {
showGroupList.value = true
}
......@@ -157,6 +163,7 @@ const open = (param) => {
defineExpose({
open
})
function showDetail(name) {
query2.value = name
showGroupList.value = false
......@@ -169,21 +176,40 @@ function showDetail(name) {
</script>
<style scoped lang="scss">
.tip{font-size: 12px;margin: 4px 0 0;display: inline-block;}
.rItem{
.tip {
font-size: 12px;
margin: 4px 0 0;
display: inline-block;
}
.rItem {
height: 130px;
cursor: pointer;border: 1px solid #e1e1e1;border-radius: 4px;
width: 350px;text-align: center;line-height: 130px;
padding: 1px; font-size: 30px;color: #fff;
margin: 20px auto;background:linear-gradient(90deg, #8623FC, #453DEA);
&:hover{
background:linear-gradient(90deg, #453DEA, #8623FC);
box-shadow: 0 4px 10px #453DEA;border: none;
cursor: pointer;
border: 1px solid #e1e1e1;
border-radius: 4px;
width: 350px;
text-align: center;
line-height: 130px;
padding: 1px;
font-size: 30px;
color: #fff;
margin: 20px auto;
background: linear-gradient(90deg, #8623FC, #453DEA);
&:hover {
background: linear-gradient(90deg, #453DEA, #8623FC);
box-shadow: 0 4px 10px #453DEA;
border: none;
}
}
.nowteamItem {
width: 100%;border: 1px solid #c8c5ff; margin-top: 20px;
position: relative;border-radius: 4px;padding: 0 0 20px;
width: 100%;
border: 1px solid #c8c5ff;
margin-top: 20px;
position: relative;
border-radius: 4px;
padding: 0 0 20px;
background: #FFFFFF;
box-sizing: border-box;
......@@ -210,14 +236,38 @@ function showDetail(name) {
}
}
}
.temell {
.nowteamItem{padding: 10px;margin: 0 0 10px;
.nowName{font-size: 15px;font-weight: bold;margin-right: 10px}
.text-bold{font-weight: bold;}
.fontsize14{font-size: 14px;}
.nowteamItem {
padding: 10px;
margin: 0 0 10px;
.nowName {
font-size: 15px;
font-weight: bold;
margin-right: 10px
}
.text-bold {
font-weight: bold;
}
.fontsize14 {
font-size: 14px;
}
}
}
.groupList{max-height: 70vh;overflow: auto;border: 1px solid #e1e1e1;margin-top: 10px;
li{padding: 10px;border-bottom: 1px solid #e1e1e1;cursor: pointer;}
.groupList {
max-height: 70vh;
overflow: auto;
border: 1px solid #e1e1e1;
margin-top: 10px;
li {
padding: 10px;
border-bottom: 1px solid #e1e1e1;
cursor: pointer;
}
}
</style>
......
......@@ -412,6 +412,14 @@
</el-col>
</el-row>
</div>
<!-- 邀请函-->
<div v-if="matchData.leagueId==0" class="fixed_gg_l yaoQing" @click="applyInvitation">
<img v-if="language==0" src="@/assets/logo/Invitation_c.png">
<img v-else src="@/assets/logo/Invitation_e.png">
</div>
<affix-invitation ref="dialogInvitationRef" />
</div>
</template>
<script setup>
......@@ -430,6 +438,11 @@ import { dayjs } from 'element-plus'
import * as match from '@/apiPc/match'
import { getAboutUs, getppInfo, getZNList } from '@/apiPc/match'
import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const modules = [Autoplay, Navigation]
const navigationPic = ref({
nextEl: '.picnext',
......@@ -605,6 +618,15 @@ const handlePickup = () => {
emit('pickup', params)
}
function applyInvitation() {
var obj = {
title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
cptId: matchData.value.id
}
console.log(matchData.value.id)
proxy.$refs['dialogInvitationRef'].open(obj)
}
</script>
<style lang="scss" scoped>
......@@ -1195,4 +1217,11 @@ const handlePickup = () => {
width: 192px;
text-align: center;
}
.yaoQing {
width: 160px;
left: 5px;
top: 40%;
}
</style>
......
......@@ -392,7 +392,13 @@
</el-row>
</div>
<!-- 邀请函-->
<div v-if="matchData.leagueId==0" class="fixed_gg_l yaoQing" @click="applyInvitation">
<img v-if="language==0" src="@/assets/logo/Invitation_c.png">
<img v-else src="@/assets/logo/Invitation_e.png">
</div>
<affix-invitation ref="dialogInvitationRef" />
</div>
</template>
<script setup>
......@@ -409,7 +415,10 @@ import 'swiper/css'
import { dayjs, ElMessage } from 'element-plus'
import * as match from '@/apiPc/match'
import { rankList } from '@/assets/js/data'
import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const modules = [Autoplay, Navigation]
const navigationPic = ref({
nextEl: '.picnext',
......@@ -580,6 +589,15 @@ const handlePickup = () => {
}
emit('pickup', params)
}
function applyInvitation() {
var obj = {
title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
cptId: matchData.value.id
}
console.log(matchData.value.id)
proxy.$refs['dialogInvitationRef'].open(obj)
}
</script>
<style lang="scss" scoped>
......@@ -1321,4 +1339,11 @@ const handlePickup = () => {
height: 60px;
}
}
.yaoQing {
width: 160px;
left: 5px;
top: 40%;
}
</style>
......
......@@ -144,11 +144,12 @@ import AddCoach from '../components/addCoach'
import AddWdsf from '../components/addWdsf'
import Import from '../components/import'
import { useStorage } from '@vueuse/core/index'
import { delPersonForPersonal, getPerPersonList } from '@/apiPc/match'
import { delPersonForPersonal, getPerPersonList, getMate } from '@/apiPc/match'
import useUserStore from '@/store/modules/user'
import { ElMessage, ElMessageBox } from 'element-plus'
import _ from 'lodash'
const dancing = ref(null)// 舞伴
const language = useStorage('language', 0)
const user = useUserStore().user
const { proxy } = getCurrentInstance()
......@@ -194,6 +195,7 @@ const open = (params) => {
show.value = true
isNational.value = params.isNational
choosedList = params.choosedList
tableData.value = []
getList()
}
defineExpose({
......@@ -225,6 +227,7 @@ const selectable = (row) => {
}
}
const getList = () => {
console.log(user.userId)
loading.value = true
getPerPersonList(query.value, user.userId).then(res => {
total.value = res.total
......@@ -245,6 +248,10 @@ function handleSelectionChange(val) {
for (const p of val) {
choosedIds.push(p.id)
}
if (val.length == 1) {
handelTeammate(val[0].id)
}
if (val.length == 0) getList()
// 判断是否队友
if (val.length == 2) {
if (val[0].sex != val[1].sex) {
......@@ -266,6 +273,27 @@ function handleSelectionChange(val) {
}
}
async function handelTeammate(id) {
const res = await getMate({
type: '1',
id
})
dancing.value = res.data
const arr = []
for (const v of tableData.value) {
if (v.id == id || v.id == dancing.value) {
arr.push(v)
}
}
tableData.value = arr
nextTick(() => {
reSetChoosed()
})
console.log(res)
console.log(tableData.value)
}
function checkTwo(a, b) {
match.checkMate({ per1Id: a.id, per2Id: b.id, cptId: matchId }).then(res => {
if (!res.data) {
......
......@@ -588,6 +588,8 @@ function goTeamSign() {
)
return
}
handelPreCheckForGroup(
router.push({
path: `${route.params.id}/teamSignCn`,
query: {
......@@ -598,6 +600,7 @@ function goTeamSign() {
isNational: false
}
})
)
} else {
// 国际赛
if (group?.type != '4' && matchData.value.countryLimit == '1') {
......@@ -612,6 +615,7 @@ function goTeamSign() {
)
return
}
handelPreCheckForGroup(
router.push({
path: `${route.params.id}/teamSign`,
query: {
......@@ -622,6 +626,7 @@ function goTeamSign() {
languageSource: matchData.value.languageSource
}
})
)
}
}
......@@ -754,17 +759,7 @@ function switchSignType() {
switch (matchData.value.signType) {
case '0':// 个人
if (user.utype == '1') {
match.preCheckForPerson().then(res => {
if (res.data == 1) {
goPersonalSign()
} else {
return proxy.$modal.msgError(
language.value == 0
? '您绑定的WDSF会员号已过期,请先到WDSF官网激活您的会员号。'
: 'Your bound WDSF Number has expired. Please activate your WDSF Number on the WDSF official website first.'
)
}
})
handelGeRenNext()
}
if (user.utype == '2') {
ElMessageBox.confirm(
......@@ -796,7 +791,9 @@ function switchSignType() {
)
}
if (user.utype == '2') {
match.preCheckForGroup(groupId.value).then(goTeamSign)
// match.preCheckForGroup(groupId.value).then(goTeamSign)
// handelPreCheckForGroup(goTeamSign)
goTeamSign()
}
if (user.utype == '3') {
// 团队活动 且 游客
......@@ -805,12 +802,14 @@ function switchSignType() {
break
case '2':// 团体队伍
if (user.utype == '1') {
match.preCheckForGroup(groupId.value).then(goPersonalSign)
// match.preCheckForGroup(groupId.value).then(goPersonalSign)
// goPersonalSign()
handelPreCheckForGroup(goPersonalSign)
}
if (user.utype == '2') {
match.preCheckForGroup(groupId.value).then(goTeamSign)
// goTeamSign()
// handelPreCheckForGroup(goTeamSign)
// match.preCheckForGroup(groupId.value).then(goTeamSign)
goTeamSign()
}
if (user.utype == '3') {
// 游客
......@@ -820,8 +819,35 @@ function switchSignType() {
}
}
async function handelGeRenNext() {
const res = await match.preCheckForPerson({ type: '1' })
// 不给报名
if (res.data == 0) {
await proxy.$modal.confirm(
language.value == 0
? '您绑定的WDSF会员号已过期,请先到WDSF官网激活您的会员号。'
: 'Your bound WDSF Number has expired. Please activate your WDSF Number on the WDSF official website first.'
)
return
}
// 正常报名
if (res.data == 1) {
goPersonalSign()
}
// 提示
if (res.data == 2) {
await proxy.$modal.confirm(
language.value == 0
? '运动员的WDSF会员号已变更,是否更新?'
: 'The athlete`s WDSF membership number has been changed. Should it be updated?'
)
await match.preCheckForPerson({ type: '2' })
await goPersonalSign()
}
}
function applyInvitation() {
var obj = {
const obj = {
title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
cptId: matchId.value
}
......@@ -835,6 +861,21 @@ const openPickup = () => {
}
proxy.$refs['pickupRef'].open(obj)
}
async function handelPreCheckForGroup(fn) {
const res = await match.preCheckForGroup(groupId.value, '1')
if (res.data == 1 || res.data == 0) {
await fn()
}
if (res.data == 2) {
await proxy.$modal.confirm(
language.value == 0
? '运动员的WDSF会员号已变更,是否更新?'
: 'The athlete`s WDSF membership number has been changed. Should it be updated?')
await match.preCheckForGroup(groupId.value, '2')
await fn()
}
}
</script>
<style lang="scss" scoped>
......
......@@ -38,7 +38,7 @@
</el-card>
<el-card class="mt20 mb20">
<el-table :data="rank" stripe>
<el-table-column align="center" label="名次" type="index" width="100">
<el-table-column align="center" :label="language==0?'名次':'Rank'" type="index" width="100">
<template #default="scope">
<span v-if="scope.row.mingCi == 1" style="color:#F8A617">{{ scope.row.mingCi }}</span>
<span v-else-if="scope.row.mingCi == 2" style="color:#778B92">{{ scope.row.mingCi }}</span>
......@@ -47,15 +47,15 @@
</template>
</el-table-column>
<el-table-column label="国家" prop="name">
<el-table-column :label="language==0?'国家':'Country'" prop="name">
<template #default="scope">
<div>
<span :class="`flag-icon flag-icon-${scope.row.code}`" />
{{ scope.row.countryName }}
{{ language==0?scope.row.countryName :scope.row.countryShortName }}
</div>
</template>
</el-table-column>
<el-table-column align="center" label="组合">
<el-table-column align="center" :label="language==0?'组合':'Couple'" min-width="200">
<template #default="scope">
<div class="text-primary esp">{{ scope.row.zuHe }}</div>
</template>
......
......@@ -64,32 +64,32 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
'/dev-api/ztx-train': {
target: 'http://192.168.1.243:1896/stage-api',
target: 'http://192.168.1.242: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.243:8081',
target: 'http://192.168.1.242: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.243:8081',
target: 'http://192.168.1.242: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.243:8081',
// target: 'http://192.168.1.242: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.243:8081/',
target: 'http://192.168.1.242:8081/',
// target: 'https://jijin.wtwuxicenter.com/h5/',
// target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
changeOrigin: true,
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!