24c59e8d by zhangmeng

旅游

1 parent 82d4fb2e
......@@ -3,8 +3,8 @@
<el-row>
<el-col v-for="(d,i) in listData" :key="i" :lg="24" :sm="24">
<div class="person-item">
<img v-if="d.photo" class="photo" :src="fillImgUrl(d.photo)">
<img v-else class="photo" style="object-fit: contain;background: #fff;" src="@/assets/v1/default.png">
<img v-if="d.photo" :src="fillImgUrl(d.photo)" class="photo">
<img v-else class="photo" src="@/assets/v1/default.png" style="object-fit: contain;background: #fff;">
<div class="info">
<div class="name">{{ d.name }}
<el-image v-if="d.sex=='0'||d.sex=='1'" :src="d.sex=='0'?male:female" />
......@@ -15,7 +15,7 @@
<el-form-item label="所属省份:">{{ d.provinceName }}</el-form-item>
</div>
<div>
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<el-form-item label="有效期结束:">{{ parseTime(d.validityDate, '{y}-{m}-{d}') }}</el-form-item>
</div>
<div>
......@@ -64,22 +64,23 @@ const loading = ref(false)
function handleQuery() {
loading.value = true
queryParams.pageNum++
authentic.query(queryParams).then((res) => {
_.each(res.data.personalList.rows, (r) => {
listData.value.push(r)
})
showMore.value = listData.value.length < res.data.personalList.total
loading.value = false
})
}
function vipDownLoad(perId) {
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf')
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf', {}, 'application/pdf')
}
let queryParams = {}
function init() {
queryParams = {
pageNum: 0,
......@@ -88,7 +89,7 @@ function init() {
name: props.query.name
}
listData.value = []
handleQuery()
}
......@@ -97,7 +98,7 @@ defineExpose({
})
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
.flex {
display: flex;
justify-content: space-between;
......@@ -110,28 +111,28 @@ defineExpose({
background: #F5F7F9;
border-radius: 2px;
padding: 10px 20px;
.photo {
width: 100px;
height: 130px
}
.info {
margin-left: 20px;
width: 90%;
.name {
font-size: 24px;
display: flex;
align-items: center;
margin: 10px 0;
}
.el-form-item--default {
margin-bottom: 0;
}
}
.el-form-item__content {
font-size: 18px;
color: #95A1A6;
......@@ -141,15 +142,15 @@ defineExpose({
@media (max-width: 500px) {
.person-item {
margin: 15px 0;
.photo {
width: 120px;
height: 140px;
}
.info {
margin-left: 15px;
.name {
font-size: 18px
}
......
......@@ -3,13 +3,13 @@
<el-row>
<el-col v-for="(d,i) in listData" :key="i" :lg="24" :sm="24">
<div class="person-item">
<img v-if="d.photo" class="photo" :src="fillImgUrl(d.photo)">
<img v-else class="photo" style="object-fit: contain;background: #fff;" src="@/assets/v1/default.png">
<img v-if="d.photo" :src="fillImgUrl(d.photo)" class="photo">
<img v-else class="photo" src="@/assets/v1/default.png" style="object-fit: contain;background: #fff;">
<div class="info">
<div class="name">{{ d.name }}
<el-image
v-if="d.sex=='0'||d.sex=='1'" style="width: 20px;height: 20px;margin-left: 10px"
:src="d.sex=='0'?male:female"
v-if="d.sex=='0'||d.sex=='1'" :src="d.sex=='0'?male:female"
style="width: 20px;height: 20px;margin-left: 10px"
/>
</div>
<div class="flex">
......@@ -18,12 +18,12 @@
<el-form-item label="所属省份:">{{ d.provinceName }}</el-form-item>
</div>
<div>
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<el-form-item label="有效期结束:">{{ parseTime(d.validityDate, '{y}-{m}-{d}')||'--' }}</el-form-item>
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<el-form-item label="有效期结束:">{{ parseTime(d.validityDate, '{y}-{m}-{d}') || '--' }}</el-form-item>
</div>
<div>
<el-form-item label="考官类型:">{{ d.examinerTypeStr }}</el-form-item>
</div>
<div style="width: 170px">
<div v-if="d.canDownCert=='1'" class="vipDownLoad" @click="vipDownLoad(d.perId)">
......@@ -68,22 +68,23 @@ const loading = ref(false)
function handleQuery() {
loading.value = true
queryParams.pageNum++
authentic.query(queryParams).then((res) => {
_.each(res.data.personalList.rows, (r) => {
listData.value.push(r)
})
showMore.value = listData.value.length < res.data.personalList.total
loading.value = false
})
}
function vipDownLoad(perId) {
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf')
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf', {}, 'application/pdf')
}
let queryParams = {}
function init() {
queryParams = {
pageNum: 0,
......@@ -92,7 +93,7 @@ function init() {
name: props.query.name
}
listData.value = []
handleQuery()
}
......@@ -101,7 +102,7 @@ defineExpose({
})
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
.flex {
display: flex;
justify-content: space-between;
......@@ -114,28 +115,28 @@ defineExpose({
background: #F5F7F9;
border-radius: 2px;
padding: 10px 20px;
.photo {
width: 100px;
height: 130px
}
.info {
margin-left: 20px;
width: 90%;
.name {
font-size: 24px;
display: flex;
align-items: center;
margin: 10px 0;
}
.el-form-item--default {
margin-bottom: 0;
}
}
.el-form-item__content {
font-size: 18px;
color: #95A1A6;
......@@ -145,15 +146,15 @@ defineExpose({
@media (max-width: 500px) {
.person-item {
margin: 15px 0;
.photo {
width: 120px;
height: 140px;
}
.info {
margin-left: 15px;
.name {
font-size: 18px
}
......
......@@ -117,7 +117,7 @@ function handleQuery() {
}
function vipDownLoad(perId) {
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf')
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf', {}, 'application/pdf')
}
let queryParams = {}
......
......@@ -3,8 +3,8 @@
<el-row>
<el-col v-for="(d,i) in listData" :key="i" :lg="24" :sm="24">
<div class="person-item">
<img v-if="d.photo" class="photo" :src="fillImgUrl(d.photo)">
<img v-else class="photo" style="object-fit: contain;background: #fff;" src="@/assets/v1/default.png">
<img v-if="d.photo" :src="fillImgUrl(d.photo)" class="photo">
<img v-else class="photo" src="@/assets/v1/default.png" style="object-fit: contain;background: #fff;">
<div class="info">
<div class="name">{{ d.name }}
<el-image v-if="d.sex=='0'||d.sex=='1'" :src="d.sex=='0'?male:female" />
......@@ -15,7 +15,7 @@
<el-form-item label="所属省份:">{{ d.provinceName }}</el-form-item>
</div>
<div>
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<!-- <el-form-item label="有效期开始:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>-->
<el-form-item label="有效期结束:">{{ parseTime(d.validityDate, '{y}-{m}-{d}') }}</el-form-item>
</div>
<div>
......@@ -26,7 +26,7 @@
<i />会员证
</div>
</div>
</div>
</div>
</div>
......@@ -65,22 +65,23 @@ const loading = ref(false)
function handleQuery() {
loading.value = true
queryParams.pageNum++
authentic.query(queryParams).then((res) => {
_.each(res.data.personalList.rows, (r) => {
listData.value.push(r)
})
showMore.value = listData.value.length < res.data.personalList.total
loading.value = false
})
}
function vipDownLoad(perId) {
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf')
proxy.download(`/person/info/downStuCert/${perId}`, {}, '会员证.pdf', {}, 'application/pdf')
}
let queryParams = {}
function init() {
queryParams = {
pageNum: 0,
......@@ -89,7 +90,7 @@ function init() {
name: props.query.name
}
listData.value = []
handleQuery()
}
......@@ -97,33 +98,59 @@ defineExpose({
init
})
</script>
<style scoped lang="scss">
.flex{display: flex;justify-content: space-between;}
.person-item{position:relative;
display: flex;margin: 30px 0;background: #F5F7F9;
border-radius: 2px;padding: 10px 20px;
.photo{width: 100px; height: 130px}
.info{margin-left: 20px;width: 90%;
.name{font-size: 24px;display: flex;align-items: center;
margin: 10px 0;}
.el-form-item--default{margin-bottom: 0;}
<style lang="scss" scoped>
.flex {
display: flex;
justify-content: space-between;
}
.person-item {
position: relative;
display: flex;
margin: 30px 0;
background: #F5F7F9;
border-radius: 2px;
padding: 10px 20px;
.photo {
width: 100px;
height: 130px
}
.el-form-item__content{
.info {
margin-left: 20px;
width: 90%;
.name {
font-size: 24px;
display: flex;
align-items: center;
margin: 10px 0;
}
.el-form-item--default {
margin-bottom: 0;
}
}
.el-form-item__content {
font-size: 18px;
color: #95A1A6;}
color: #95A1A6;
}
}
@media (max-width: 500px) {
.person-item {
margin: 15px 0;
.photo {
width: 120px;
height: 140px;
}
.info {
margin-left: 15px;
.name {
font-size: 18px
}
......
......@@ -33,7 +33,7 @@
<div class="border-info mt20">
<div class="flex aic">
<h3 class="esp">{{ form.checkIn }}</h3>
<img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/>
<img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;">
<h3 class="esp">{{ form.checkOut }}</h3>
</div>
</div>
......@@ -46,8 +46,8 @@
<el-row>
<el-col :lg="12" :md="12" :sm="12" :xs="24">
<div class="mb10">{{ language == 0 ? '送餐地址' : 'Delivery Address' }}{{
form.address || '-'
}}
form.address || '-'
}}
</div>
</el-col>
<el-col :lg="12" :md="12" :sm="12" :xs="24">
......@@ -67,11 +67,13 @@
</el-col>
<el-col>
{{ language == 0 ? '套餐' : 'Package' }}{{ formInfo.mealName }} <span
style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span
class="price">{{ language == 0 ? '¥' + formInfo.mealPrice : '€' + formInfo.mealPriceEn }}</span>
style="margin-left: 40px"
>{{ language == 0 ? '价格' : 'Price' }}</span><span
class="price"
>{{ language == 0 ? '¥' + formInfo.mealPrice : '€' + formInfo.mealPriceEn }}</span>
<span style="margin-left: 40px">{{
language == 0 ? '工作室电话' : 'Studio phone number'
}}{{ formInfo.contact }}</span>
language == 0 ? '工作室电话' : 'Studio phone number'
}}{{ formInfo.contact }}</span>
</el-col>
<el-col>
<div class="esp_3 s" @click="handleView()">
......@@ -101,8 +103,10 @@
</el-col>
<el-col>
{{ language == 0 ? '套餐' : 'Package' }}{{ formInfo.photoName }} <span
style="margin-left: 40px">{{ language == 0 ? '价格' : 'Price' }}</span><span
class="price">{{ language == 0 ? '¥' + formInfo.photoPrice : '€' + formInfo.photoPriceEn }}</span>
style="margin-left: 40px"
>{{ language == 0 ? '价格' : 'Price' }}</span><span
class="price"
>{{ language == 0 ? '¥' + formInfo.photoPrice : '€' + formInfo.photoPriceEn }}</span>
</el-col>
<el-col>
{{ language == 0 ? '套餐说明' : 'Package Description' }}{{ formInfo.introduction }}
......@@ -155,23 +159,23 @@
<!-- }}{{ language == 0 ? '元' : 'Euro' }} x 1-->
<!-- {{ language == 0 ? '张' : 'Tickets' }}-->
<!-- </el-col>-->
</el-row>
</div>
</div>
<div class="leftboderTT">{{ language == 0 ? '预订信息' : 'Booking information' }}</div>
<div class="border-info mt20">
<el-row v-if="type == 'hotel'">
<el-col :lg="8" :md="12" :sm="12" :xs="24">
<div>{{ language == 0 ? '入住人' : 'Check-in Person' }}{{ form.rzUsers }}</div>
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">{{
language == 0 ? '联系方式' : 'Contact Information'
}}{{ form.phone }}
language == 0 ? '联系方式' : 'Contact Information'
}}{{ form.phone }}
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24"></el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24" />
</el-row>
<el-row v-if="type == 'car'">
<el-col v-if="form.pickUpBo?.revTime" :lg="12" :md="12" :sm="12" :xs="24">
......@@ -184,12 +188,12 @@
<el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag>
<el-tag>{{ car.carColor }}</el-tag>
</div>
<span v-if="car.num > 0"> {{ car.num }}{{
language == 0 ? '辆' : 'Cars'
}} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span>
language == 0 ? '辆' : 'Cars'
}} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span>
</div>
<div>{{ language == 0 ? '人数' : 'People' }} {{ form.pickUpBo.count }}</div>
<div>{{ language == 0 ? '航班/火车班次' : 'Flight/Train' }} {{ form.pickUpBo.no }}</div>
<div>{{ language == 0 ? '接机/接站地点' : 'Pick-up/Drop-off Place' }}
......@@ -211,10 +215,10 @@
<el-tag class="mr10">{{ car.carSeat }} {{ language == 0 ? '座 ' : 'Sets' }}</el-tag>
<el-tag>{{ car.carColor }}</el-tag>
</div>
<span v-if="car.num > 0"> {{ car.num }}{{
language == 0 ? '辆' : 'Cars'
}} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span>
language == 0 ? '辆' : 'Cars'
}} * {{ language == 0 ? '¥' : '€' }}{{ car.price }}</span>
</div>
<div>{{ language == 0 ? '人数' : 'Counts' }}{{ form.dropOffBo.count }}</div>
<div>{{ language == 0 ? '联系人' : 'Contact Person' }}{{ form.dropOffBo.contacts }}</div>
......@@ -234,16 +238,16 @@
</el-col>
<el-col :lg="12" :md="12" :sm="12" :xs="24">
<div class="mb10">{{
language == 0 ? '订餐周期' : 'Check-in date'
}}{{ form.extJsonObj?.dcStart || '-' }} ~ {{ form.extJsonObj?.dcEnd || '-' }}
language == 0 ? '订餐周期' : 'Check-in date'
}}{{ form.extJsonObj?.dcStart || '-' }} ~ {{ form.extJsonObj?.dcEnd || '-' }}
</div>
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">
<div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}{{ form.contacts }}</div>
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">{{
language == 0 ? '联系方式' : 'Contact Phone'
}}{{ form.phone }}
language == 0 ? '联系方式' : 'Contact Phone'
}}{{ form.phone }}
</el-col>
<el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}{{ form.remarks || '-' }}</el-col>
</el-row>
......@@ -261,7 +265,7 @@
<el-col :lg="8" :md="12" :sm="12" :xs="24">
<div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}{{ form.contacts }}</div>
</el-col>
<el-col :lg=12 :md="12" :sm="12" :xs="24">
<el-col :lg="12" :md="12" :sm="12" :xs="24">
<div class="mb10">
{{ language == 0 ? '联系方式' : 'Contact Phone' }}{{ form.phone }}
</div>
......@@ -291,8 +295,8 @@
<div class="mb10">{{ language == 0 ? '联系人' : 'Contact Person' }}{{ form.contacts }}</div>
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">{{
language == 0 ? '联系方式' : 'Contact Phone'
}}{{ form.phone }}
language == 0 ? '联系方式' : 'Contact Phone'
}}{{ form.phone }}
</el-col>
<el-col :span="24">{{ language == 0 ? '备注' : 'Remarks' }}{{ form.remarks }}</el-col>
</el-row>
......@@ -330,13 +334,13 @@
<el-row style="width: 100%">
<el-col :lg="8" :md="12" :sm="12" :xs="24">
<div>{{
language == 0 ? '购票数量' : 'Number of tickets purchased'
}}{{ form.num }}{{ language == 0 ? '张' : 'Tickets' }}
language == 0 ? '购票数量' : 'Number of tickets purchased'
}}{{ form.num }}{{ language == 0 ? '张' : 'Tickets' }}
</div>
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">{{
language == 0 ? '联系方式' : 'Contact Information'
}}{{ form.phone }}
language == 0 ? '联系方式' : 'Contact Information'
}}{{ form.phone }}
</el-col>
<el-col :lg="8" :md="12" :sm="12" :xs="24">
{{ language == 0 ? '共计' : 'total' }}:{{
......@@ -344,11 +348,11 @@
}}{{ Number(totalFee).toFixed(2) }}
</el-col>
</el-row>
</el-row>
</div>
<el-row align="middle" justify="space-between">
<el-col :lg="12">
<div v-if="form.payDate">{{ language == 0 ? '支付时间' : 'Payment Time' }}{{ form.payDate }}</div>
......@@ -377,12 +381,14 @@
</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-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/>
<Upload />
</el-icon>
{{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}
</el-button>
......@@ -391,9 +397,10 @@
class="mt20 btn-lineG" round
size="large"
type="primary"
@click="downInvoice">
@click="downInvoice"
>
<el-icon>
<Download/>
<Download />
</el-icon>
{{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}
</el-button>
......@@ -403,69 +410,85 @@
</div>
</div>
<div v-else class="pd20 skeletonBox">
<el-skeleton :rows="8"/>
<el-button :style="language == 0 ?'width:200px':'width:400px'" class="btn-lineG" round size="large"
type="primary" @click="showLogin">
<el-skeleton :rows="8" />
<el-button
:style="language == 0 ?'width:200px':'width:400px'" class="btn-lineG" round size="large"
type="primary" @click="showLogin"
>
{{ language == 0 ? '登录后查看明细' : 'View detailed information after logging in' }}
</el-button>
</div>
<div v-if="form.viewStatus == '0'&&(form.surplus!='0,0'&&form.surplus!='0')" class="pd20">
<div class="leftboderTT">{{ language == 0 ? '选择支付方式' : 'Choose payment method' }}</div>
<div class="mt20">
<el-radio-group v-model="payType">
<el-radio v-if="language==0" border value="2">
<!-- 微信-->
<svg class="icon" height="40" p-id="24747" t="1709002960407"
version="1.1" viewBox="0 0 3152 1024" width="94" xmlns="http://www.w3.org/2000/svg">
<svg
class="icon" height="40" p-id="24747" t="1709002960407"
version="1.1" viewBox="0 0 3152 1024" width="94" xmlns="http://www.w3.org/2000/svg"
>
<path
d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z"
fill="#09BB07" p-id="24748"></path>
fill="#09BB07" p-id="24748"
/>
<path
d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z"
fill="#595757" p-id="24749"></path>
fill="#595757" p-id="24749"
/>
</svg>
</el-radio>
<el-radio v-if="language==1" border value="3">
<!--paypal-->
<svg class="icon" height="40" p-id="22654" t="1709002828937"
version="1.1" viewBox="0 0 4220 1024" width="94" xmlns="http://www.w3.org/2000/svg">
<svg
class="icon" height="40" p-id="22654" t="1709002828937"
version="1.1" viewBox="0 0 4220 1024" width="94" xmlns="http://www.w3.org/2000/svg"
>
<path
d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z"
fill="#009CDE" p-id="22655"></path>
fill="#009CDE" p-id="22655"
/>
<path
d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z"
fill="#003087" p-id="22656"></path>
fill="#003087" p-id="22656"
/>
<path
d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z"
fill="#009CDE" p-id="22657"></path>
fill="#009CDE" p-id="22657"
/>
<path
d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z"
fill="#003087" p-id="22658"></path>
fill="#003087" p-id="22658"
/>
<path
d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z"
fill="#009CDE" p-id="22659"></path>
fill="#009CDE" p-id="22659"
/>
<path
d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175"
fill="#009CDE" p-id="22660"></path>
fill="#009CDE" p-id="22660"
/>
<path
d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857"
fill="#012169" p-id="22661"></path>
fill="#012169" p-id="22661"
/>
<path
d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z"
fill="#003087" p-id="22662"></path>
fill="#003087" p-id="22662"
/>
</svg>
</el-radio>
</el-radio-group>
<div v-if="payType == '2'&&wePayCodeUrl">
<div class="payImgbox flexCenter">
<div>
<img :src="wePayCodeUrl" class="border" width="260"/>
<img class="mt20" src="@/assets/img/sm.png"/>
<img :src="wePayCodeUrl" class="border" width="260">
<img class="mt20" src="@/assets/img/sm.png">
</div>
<div class="ml20">
<img height="360" src="@/assets/img/rr.jpg"/>
<img height="360" src="@/assets/img/rr.jpg">
</div>
</div>
<div v-if="language==0" class="tip text-center text-danger">
......@@ -474,7 +497,7 @@
</div>
<div v-else class="tip text-center text-danger">
After payment, do not close this window and wait for confirmation of successful payment.
<br/>
<br>
If you have not received a notification of successful payment for a long time,
please refresh the page
</div>
......@@ -483,8 +506,10 @@
</div>
<el-row align="middle" class="mt20 mb60" justify="center">
<el-col :span="24" class="text-center">
<el-button v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary"
@click="goPay">
<el-button
v-if="!hideconfirmbtn&&form.viewStatus == '0'" class="btn-lineG w200px" round type="primary"
@click="goPay"
>
{{ language == 0 ? '确定' : 'Submit' }}
</el-button>
<el-button v-if="form.viewStatus == '5'" round @click="unsubscribe">
......@@ -495,11 +520,11 @@
</el-button>
</el-col>
</el-row>
<div v-if="form.payDate&&form.viewStatus=='1'">
<div class="text-center">
<el-icon color="#32B16C" size="80">
<SuccessFilled/>
<SuccessFilled />
</el-icon>
<p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p>
<h3 class="wePrice">{{ language == 0 ? '¥' : '€' }}{{ totalFee || 0 }}</h3>
......@@ -507,7 +532,7 @@
</div>
</el-card>
</div>
<div v-if="errorBox" class="box">
<el-result
:sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'"
......@@ -521,14 +546,16 @@
</template>
</el-result>
</div>
<Dialog ref="DialogRef"/>
<el-dialog v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false"
:title="language==0?'开收据':'Issue a receipt'" width="460px">
<Dialog ref="DialogRef" />
<el-dialog
v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false"
:title="language==0?'开收据':'Issue a receipt'" width="460px"
>
<div class="flex">
<el-form-item :label="language==0?'开票人':'Name'">
<div class="flex">
<el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'"></el-input>
<el-input v-model="lpName" :placeholder="language==0?'请输入开票人':'Please enter your name'" />
<el-button type="primary" @click="submitSJ">{{ language == 0 ? '提交并下载' : 'Submit' }}</el-button>
</div>
</el-form-item>
......@@ -544,16 +571,16 @@
</template>
<script setup>
import {Search} from "@element-plus/icons-vue"
import {getCurrentInstance, ref} from 'vue'
import {onMounted} from "@vue/runtime-core"
import {useRoute, useRouter} from "vue-router"
import * as booking from "@/apiPc/booking"
import { Search } from '@element-plus/icons-vue'
import { getCurrentInstance, ref } from 'vue'
import { onMounted } from '@vue/runtime-core'
import { useRoute, useRouter } from 'vue-router'
import * as booking from '@/apiPc/booking'
import Dialog from '@/viewsPc/booking/component/dailog.vue'
import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
import MatchInfoRow from '@/viewsPc/match/components/matchInfo-row'
const {proxy} = getCurrentInstance()
const { proxy } = getCurrentInstance()
const route = useRoute()
const router = useRouter()
const matchInfo = ref({})
......@@ -563,19 +590,19 @@ const payType = ref('2')
const orderId = ref(route.query.orderId)
const matchId = ref()
const groupId = ref()
import useUserStore from "@/store/modules/user";
import FileUpload from "@/components/FileUpload";
import {useStorage} from "@vueuse/core/index";
import {ElMessage, ElMessageBox} from "element-plus";
import useUserStore from '@/store/modules/user'
import FileUpload from '@/components/FileUpload'
import { useStorage } from '@vueuse/core/index'
import { ElMessage, ElMessageBox } from 'element-plus'
import {
cancelOrder,
cancelOrder2, getBaseInfoByActiveId,
getCarBilldetailbyId,
getFoodBilldetailbyId,
getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo,
} from "@/apiPc/booking";
getMealOrderInfoByLogex, getPhotoOrderInfo, getPhotoOrderInfoByLogex, getTicketInfoByActivityId, getTicketOrderInfo
} from '@/apiPc/booking'
import dayjs from 'dayjs'
import {delPerson} from "@/api/exam/person";
import { delPerson } from '@/api/exam/person'
const isLogin = ref(false)
const language = useStorage('language', 0)
......@@ -635,7 +662,7 @@ onMounted(() => {
function getData() {
if (type.value == 'car') {
return booking.getCarBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getCarBilldetailbyId({ orderId: orderId.value }).then(res => {
form.value = res.data
if (language.value == 0) {
totalFee.value = res.data.total
......@@ -648,7 +675,7 @@ function getData() {
})
}
if (type.value == 'food') {
return booking.getFoodBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getFoodBilldetailbyId({ orderId: orderId.value }).then(res => {
if (language.value == 0) {
totalFee.value = res.data.total
} else {
......@@ -661,7 +688,7 @@ function getData() {
})
}
if (type.value == 'hotel') {
return booking.getRoomBilldetailbyId({orderId: orderId.value}).then(res => {
return booking.getRoomBilldetailbyId({ orderId: orderId.value }).then(res => {
if (language.value == 0) {
totalFee.value = res.data.total
} else {
......@@ -692,7 +719,7 @@ function getData() {
// 票务订单详情
async function getTicketOrderInfoFN() {
const res = await getTicketOrderInfo({orderId: orderId.value})
const res = await getTicketOrderInfo({ orderId: orderId.value })
form.value = res.data
form.value.extJson = JSON.parse(form.value.extJson)
try {
......@@ -701,19 +728,18 @@ async function getTicketOrderInfoFN() {
form.value.extJson.message = JSON.parse(form.value.extJson.message)
await getDetail(form.value.extJson.ticketDate.activityId)
matchId.value = form.value.extJson.ticketDate.activityId
totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn
} catch (e) {
console.log(e)
} finally {
}
console.log(form.value)
}
async function getDetail(activeId) {
const res = await getTicketInfoByActivityId({activityId: activeId})
const res = await getTicketInfoByActivityId({ activityId: activeId })
matchForm.value = res.data
console.log(matchForm.value)
}
......@@ -725,14 +751,14 @@ function goHome() {
function goPay() {
if (payType.value == '2') {
booking.createWePay({orderId: orderId.value}).then(res => {
booking.createWePay({ orderId: orderId.value }).then(res => {
wePayCodeUrl.value = res.data
hideconfirmbtn.value = true
startforGetData()
})
}
if (payType.value == '3') {
booking.createPalPay({orderId: orderId.value}).then(res => {
booking.createPalPay({ orderId: orderId.value }).then(res => {
if (res.data) {
location.href = res.data
}
......@@ -740,7 +766,7 @@ function goPay() {
}
}
let handle;
let handle
function startforGetData() {
handle = setTimeout(() => {
......@@ -798,7 +824,7 @@ function showLogin() {
function MakeUpOrder() {
return booking.getMealOrderInfo({orderId: orderId.value}).then(res => {
return booking.getMealOrderInfo({ orderId: orderId.value }).then(res => {
form.value = res.data
totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn
matchId.value = form.value.activeId
......@@ -811,10 +837,10 @@ function MakeUpOrder() {
}
function MakeUpIno() {
booking.getMealOrderInfoByLogex({asmId: form.value.asmId}).then(res => {
formInfo.value = res.data
console.log(res)
})
booking.getMealOrderInfoByLogex({ asmId: form.value.asmId }).then(res => {
formInfo.value = res.data
console.log(res)
})
.catch((e) => {
console.log(e)
errorBox.value = true
......@@ -823,7 +849,7 @@ function MakeUpIno() {
function photographyOrder() {
return booking.getPhotoOrderInfo({orderId: orderId.value}).then(res => {
return booking.getPhotoOrderInfo({ orderId: orderId.value }).then(res => {
form.value = res.data
totalFee.value = language.value == 0 ? form.value.total : form.value.totalEn
photographyInfo()
......@@ -834,7 +860,7 @@ function photographyOrder() {
}
function photographyInfo() {
booking.getPhotoOrderInfoByLogex({aspId: form.value.aspId}).then(res => {
booking.getPhotoOrderInfoByLogex({ aspId: form.value.aspId }).then(res => {
formInfo.value = res.data
})
// .catch((e) => {
......@@ -844,7 +870,7 @@ function photographyInfo() {
}
const cancel = () => {
//取消订单
// 取消订单
proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' : `Are you sure to cancel the order?`).then(() => {
return cancelOrder2(orderId.value).then(res => {
getData()
......@@ -874,13 +900,12 @@ function exportPdf() {
if (language.value == 0) {
proxy.download('/ota/orderRoom/downRoomConfirmation', {
...obj
}, `订房确认书.pdf`)
}, `订房确认书.pdf`, {}, 'application/pdf')
} else {
proxy.download('/ota/orderRoom/downRoomConfirmation', {
...obj
}, `Hotel Reservation.pdf`)
}, `Hotel Reservation.pdf`, {}, 'application/pdf')
}
}
// 套餐详情
......@@ -934,11 +959,11 @@ const showSJ = () => {
// proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, {
// ...obj
// }, `Receipt_${new Date().getTime()}.pdf`)
// 报名
proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, {
...obj
}, `Receipt_${new Date().getTime()}.pdf`)
}, `Receipt_${new Date().getTime()}.pdf`, {}, 'application/pdf')
showSJDialog.value = false
getData()
}
......@@ -985,27 +1010,27 @@ const showSJ = () => {
width: 100%;
max-width: 1000px;
margin: 20px auto;
.head {
background: #EFF2F7;
height: 50px;
font-size: 16px;
font-weight: 400;
}
th {
background: #FAFBFD;
font-size: 14px;
border-bottom: 1px solid #E5E5E5;
border-right: 1px solid #E5E5E5;
}
td {
border-bottom: 1px solid #E5E5E5;
border-right: 1px solid #E5E5E5;
padding: 10px;
}
&.table-border {
border-top: 1px solid #E5E5E5;
border-left: 1px solid #E5E5E5;
......@@ -1024,23 +1049,23 @@ const showSJ = () => {
.result {
font-size: 22px;
.flex {
display: flex;
align-items: center;
font-weight: 500;
img {
margin-right: 10px
}
}
.priceb {
color: #7B7F83;
font-size: 16px;
text-align: right;
line-height: 50px;
span {
font-weight: bold;
font-size: 22px;
......@@ -1053,7 +1078,7 @@ const showSJ = () => {
.skeletonBox {
position: relative;
overflow: hidden;
.btn-lineG {
position: absolute;
left: 0;
......@@ -1063,7 +1088,7 @@ const showSJ = () => {
bottom: 0;
width: 200px;
box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5);
}
}
......@@ -1075,26 +1100,26 @@ const showSJ = () => {
.priceBar {
padding: 0 0 20px;
.flex {
display: flex;
justify-content: right;
align-items: baseline;
.item {
font-size: 16px;
margin-right: 15px;
label {
color: #95A1A6;
}
span {
font-family: DIN Alternate;
}
}
}
.size26 {
font-size: 26px;
}
......
......@@ -40,7 +40,7 @@
<span>{{ b.id }}</span>
<span class="fr text-warning status">{{ b.invoiceStr }}</span>
</div>
<el-row align="middle" class="pd20 mt10" justify="space-between">
<el-col :lg="9" :md="12" :sm="12" :xs="24">
<h3 class="m0">{{ b.name }}</h3>
......@@ -48,7 +48,9 @@
<!-- b.messageObj.ticketDate.name-->
<!-- }}</p>-->
<p class="common">
{{ language == 0 ? "张数" : "Location" }}{{ b.messageObj.touristList.length }}{{ language == 0 ? "张" : "tickets" }}
{{ language == 0 ? "张数" : "Location" }}{{
b.messageObj.touristList.length
}}{{ language == 0 ? "张" : "tickets" }}
</p>
</el-col>
<el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center">
......@@ -81,7 +83,7 @@
<span>{{ b.id }}</span>
<span class="fr text-warning status">{{ b.invoiceStr }}</span>
</div>
<el-row align="middle" class="pd20 mt10" justify="space-between">
<el-col :lg="9" :md="12" :sm="12" :xs="24">
<h3 class="m0">{{ b.name }}</h3>
......@@ -89,7 +91,9 @@
b.messageObj.atName
}}</p>
<p class="common">
{{ language == 0 ? "张数" : "Location" }}{{ b.messageObj.orderCustomerList.length }}{{ language == 0 ? "张" : "tickets" }}
{{ language == 0 ? "张数" : "Location" }}{{
b.messageObj.orderCustomerList.length
}}{{ language == 0 ? "张" : "tickets" }}
</p>
</el-col>
<el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center">
......@@ -174,7 +178,7 @@
<span>{{ language == 0 ? '订单编号:' : 'No.' }} {{ b.id }}</span>
<span class="fr text-warning status">{{ b.invoiceStr }}</span>
</div>
<el-row align="middle" class="pd20 mt10" justify="space-between">
<el-col :lg="9" :md="12" :sm="12" :xs="24">
<div v-if="b.orderType == 0">
......@@ -239,7 +243,7 @@
</div>
</div>
</el-card>
<el-dialog
v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false"
:title="language==0?'开收据':'Issue a receipt'" width="460px"
......@@ -258,7 +262,7 @@
{{ remark }}
</div>
</div>
</el-dialog>
</div>
</template>
......@@ -313,10 +317,12 @@ onMounted(() => {
getList()
route.query.orderSn && getDataInfo()
})
async function getDataInfo() {
const res = await getOrderDetail({ orderSn: route.query.orderSn })
formDate.value = res.data
}
const getList = () => {
loading.value = true
if (query.value.orderType == '5') {
......@@ -489,12 +495,12 @@ const showSJ = (item) => {
// 预约
proxy.download(`/ota/norder/getReceipt/${obj.orderId}`, {
...obj
}, `Receipt_${new Date().getTime()}.pdf`)
}, `Receipt_${new Date().getTime()}.pdf`, {}, 'application/pdf')
} else {
// 报名
proxy.download(`/ota/signOrder/getReceipt/${obj.orderId}`, {
...obj
}, `Receipt_${new Date().getTime()}.pdf`)
}, `Receipt_${new Date().getTime()}.pdf`, {}, 'application/pdf')
}
}
const submitSJ = () => {
......@@ -559,11 +565,11 @@ const downloadAndSend = () => {
overflow: visible;
padding: 0 20px 15px;
border-bottom: 1px solid #e5e5e5;
.fr {
margin: -8px 0 0
}
h3 {
display: inline-block;
font-size: 16px;
......@@ -587,28 +593,28 @@ const downloadAndSend = () => {
top: 0;
font-size: 12px;
color: #FFFFFF;
span {
border-radius: 0px 10px 0px 10px;
padding: 4px 10px;
}
.bg-danger {
background: #E60012;
}
.bg-warning {
background: #e89f39;
}
.bg-pink {
background: #F740A6;
}
.bg-primary {
background: var(--el-color-primary)
}
.bg-blue {
background: #00a0e9
}
......@@ -620,38 +626,38 @@ const downloadAndSend = () => {
color: #000000;
margin: 0 0 10px;
}
p {
margin: 8px 0 0;
color: #707070;
font-size: 14px;
}
margin: 0 0 20px;
border: 1px solid #E5E5E5;
border-radius: 10px;
position: relative;
.bbody {
padding: 0 15px 20px;
}
.title {
background: #F7F7F7;
border-bottom: 1px solid #E5E5E5;
span {
font-size: 14px;
color: #4C5359;
}
.status {
font-size: 12px;
font-weight: bold;
padding: 2px 10px;
}
}
.title label {
border-radius: 5px 0 5px 0;
font-size: 12px;
......@@ -659,15 +665,15 @@ const downloadAndSend = () => {
padding: 4px 10px;
margin-right: 10px;
}
.blueTag {
background-color: #1EC886;
}
.purpleTag {
background-color: #717bef;
}
.orangeTag {
background-color: #ff8124;
}
......
......@@ -3,90 +3,100 @@
<!-- 个人报名-国外-->
<div class="box ph-30">
<el-card class="mb20">
<single-sign-step :activeStep="1" :language="language"/>
<single-sign-step :active-step="1" :language="language" />
</el-card>
<el-card :body-style="{'padding': '0'}">
<match-info-row :match-id="matchId"/>
<match-info-row :match-id="matchId" />
<div class="pd20">
<el-row :gutter="20">
<el-col :lg="6">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">完善我的信息</h3>
<h3 class="panel-title" v-else>My Information</h3>
<h3 v-if="language==0" class="panel-title">完善我的信息</h3>
<h3 v-else class="panel-title">My Information</h3>
</div>
<div class="panel-body">
<div v-if="form.danceMate">
<div class="text-danger fontsize14 mb10" v-if="language==0">*如果您报名双人舞项目,请勾选您的舞伴</div>
<div class="text-danger fontsize14 mb10" v-else>
<div v-if="language==0" class="text-danger fontsize14 mb10">*如果您报名双人舞项目,请勾选您的舞伴
</div>
<div v-else class="text-danger fontsize14 mb10">
*Please select your dance partner if you are registering for a couple event
</div>
</div>
<div class="chooseForm" style="display: flex;flex-wrap: wrap;">
<div @click="editPerson" class="mb20" style="width: 50%;text-align: center;">
<el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/>
<div class="mb20" style="width: 50%;text-align: center;" @click="editPerson">
<el-avatar v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)" fit="cover" />
<div v-else>
<el-avatar fit="cover" v-if="form.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-if="form.sex == 1" :size="60" src="/img/head0.png"/>
<el-avatar v-if="form.sex == 0" :size="60" fit="cover" src="/img/head1.png" />
<el-avatar v-if="form.sex == 1" :size="60" fit="cover" src="/img/head0.png" />
</div>
<div class="text-center mt10">
<span class="mName">{{ form.realName }}</span>
<el-icon size="20">
<Edit/>
<Edit />
</el-icon>
</div>
</div>
<!--舞伴-->
<div style="width:50%;text-align: center;" v-if="form.danceMate">
<div v-if="form.danceMate" style="width:50%;text-align: center;">
<el-checkbox-group v-model="mateChosed" @change="changeMate">
<el-checkbox :label="form.danceMate.id">
<div>
<el-avatar fit="cover" v-if="form.danceMate.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"/>
<el-avatar fit="cover" v-else-if="form.danceMate.sex == 0" :size="60"
src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="form.danceMate.sex == 1" :size="60"
src="/img/head0.png"/>
<el-avatar
v-if="form.danceMate.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"
fit="cover"
/>
<el-avatar
v-else-if="form.danceMate.sex == 0" :size="60" fit="cover"
src="/img/head1.png"
/>
<el-avatar
v-else-if="form.danceMate.sex == 1" :size="60" fit="cover"
src="/img/head0.png"
/>
<div class="text-center mt10" @click="editMate(form.danceMate)">
<span class="mName">{{ form.danceMate.realName }}</span>
<el-icon @click.stop="editMate(form.danceMate)" size="20">
<Edit/>
<el-icon size="20" @click.stop="editMate(form.danceMate)">
<Edit />
</el-icon>
<!-- <el-icon @click.stop="delMate(form.danceMate)">-->
<!-- <Delete/>-->
<!-- </el-icon>-->
<!-- <el-icon @click.stop="delMate(form.danceMate)">-->
<!-- <Delete/>-->
<!-- </el-icon>-->
</div>
</div>
</el-checkbox>
</el-checkbox-group>
</div>
<!-- <div style="min-width:50%;" v-else @click="addMate" hidden>-->
<!-- <div class="addBttn" style="margin: 0 auto">+</div>-->
<!-- <div class="text-center mt10 text-primary text-sm">-->
<!-- Please add your partner-->
<!-- <el-icon>-->
<!-- <Edit/>-->
<!-- </el-icon>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="min-width:50%;" v-else @click="addMate" hidden>-->
<!-- <div class="addBttn" style="margin: 0 auto">+</div>-->
<!-- <div class="text-center mt10 text-primary text-sm">-->
<!-- Please add your partner-->
<!-- <el-icon>-->
<!-- <Edit/>-->
<!-- </el-icon>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>
</el-col>
<el-col :lg="18">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
<h3 class="panel-title" v-else>Search Events</h3>
<h3 v-if="language==0" class="panel-title">可参与报名的项目</h3>
<h3 v-else class="panel-title">Search Events</h3>
<div class="fr">
<el-input size="small" v-model="projectQuery.name" :prefix-icon="Search" @change="getProjectList"
clearable/>
<el-input
v-model="projectQuery.name" :prefix-icon="Search" clearable size="small"
@change="getProjectList"
/>
</div>
</div>
<div v-loading="loadingProject" style="height: 55vh;overflow: auto;">
<el-checkbox-group v-model="projectIds">
<el-checkbox class="flexBetweenBox" v-for="c in projectList" :label="c.id" :key="c.id">
<el-checkbox v-for="c in projectList" :key="c.id" :label="c.id" class="flexBetweenBox">
<div class="flexBetween w100">
<div class="l">
{{ c.code }}:{{ c.name }}
......@@ -96,8 +106,10 @@
</div>
</el-checkbox>
</el-checkbox-group>
<el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228"
:description="language==0?'无可选项目':''"/>
<el-empty
v-if="projectList.length==0" :description="language==0?'无可选项目':''" :image="`/img/order_no.png`"
:image-size="228"
/>
</div>
</div>
</el-col>
......@@ -106,13 +118,13 @@
<el-row class="mt20">
<el-col :span="24">
<div class="text-center">
<el-button type="primary" class="btn-lineG w200px" round @click="signUp">
<el-button class="btn-lineG w200px" round type="primary" @click="signUp">
{{ language == 0 ? '确定' : 'Confirm' }}
</el-button>
</div>
</el-col>
</el-row>
<div class="m20">
<!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>-->
<!-- <el-button type="success" @click="addCoach">新增运动员</el-button>-->
......@@ -124,27 +136,29 @@
{{ language == 0 ? '按人员查看报项' : 'Check Registrations by Participant' }}
</div>
</div>
<sign-info-table v-if="tableType==0" :match-id="matchId"
:extraform="extraform" :language="language" :list="signInfoList"
@editExtra="goPersonInfo"/>
<zu-table v-else :list="zuTableList" :language="language" @delete="removeThis"/>
<sign-info-table
v-if="tableType==0" :extraform="extraform"
:language="language" :list="signInfoList" :match-id="matchId"
@editExtra="goPersonInfo"
/>
<zu-table v-else :language="language" :list="zuTableList" @delete="removeThis" />
<div v-if="showPersonList||myMemberTable.length>0">
<el-row class="mt20">
<el-col :span="24">
<el-button @click="addAccompany" type="primary" plain>
<el-button plain type="primary" @click="addAccompany">
{{ language == 0 ? '添加随行人员' : 'Add accompanying personnel' }}
</el-button>
</el-col>
</el-row>
<el-table class="mt20" :data="myMemberTable" border>
<el-table-column type="index" :label="language==0?'序号':'Index'" width="70" align="center"/>
<el-table-column :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/>
<el-table-column :label="language==0?'名':'Name'" prop="ming" min-width="100"/>
<el-table-column :label="language==0?'国家/地区':'Nationality'" prop="countryName" min-width="100"/>
<!-- <el-table-column :label="language==0?'证件号':'Valid Documents'" prop="idcCode" min-width="120"/>-->
<!-- <el-table-column label="Birthday" prop="birth"/>-->
<el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/>
<el-table :data="myMemberTable" border class="mt20">
<el-table-column :label="language==0?'序号':'Index'" align="center" type="index" width="70" />
<el-table-column :label="language==0?'姓氏':'Surname'" min-width="100" prop="xing" />
<el-table-column :label="language==0?'名':'Name'" min-width="100" prop="ming" />
<el-table-column :label="language==0?'国家/地区':'Nationality'" min-width="100" prop="countryName" />
<!-- <el-table-column :label="language==0?'证件号':'Valid Documents'" prop="idcCode" min-width="120"/>-->
<!-- <el-table-column label="Birthday" prop="birth"/>-->
<el-table-column :label="language==0?'性别':'Gender'" prop="sexStr" />
<el-table-column :label="language==0?'会员角色':'Role'" min-width="160">
<template #default="scope">
<div class="roletd">
......@@ -169,59 +183,59 @@
</el-table-column>
</el-table>
</div>
<div class="text-center mt20">
<el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">
<el-button class="btn-lineG w200px" round type="primary" @click="submitForm()">
{{ language == 0 ? '预览报名信息' : 'Preview Registration Information' }}
</el-button>
</div>
<!-- <div class="text-center mt20">-->
<!-- <el-button type="primary" class="" plain round @click="submitForm(0)">-->
<!-- {{ language == 0 ? '保存暂不提交审核' : 'Save, Do Not Submit for Review Yet' }}-->
<!-- </el-button>-->
<!-- <el-button type="primary" class="btn-lineG w200px" round @click="submitForm(1)">-->
<!-- {{ language == 0 ? '提交审核' : 'Submit for review' }}-->
<!-- </el-button>-->
<!-- </div>-->
<!-- <div class="text-center mt20">-->
<!-- <el-button type="primary" class="" plain round @click="submitForm(0)">-->
<!-- {{ language == 0 ? '保存暂不提交审核' : 'Save, Do Not Submit for Review Yet' }}-->
<!-- </el-button>-->
<!-- <el-button type="primary" class="btn-lineG w200px" round @click="submitForm(1)">-->
<!-- {{ language == 0 ? '提交审核' : 'Submit for review' }}-->
<!-- </el-button>-->
<!-- </div>-->
</div>
</el-card>
</div>
<dialogEditWdsf ref="dialogEditWdsfRef" @submitForm="changeMeDone"/>
<dialogEditAccompany ref="dialogEditAccompanyRef" @submitForm="getMyMemberTable"/>
<addCoachEn ref="dialogAddCoachEnRef" @submitForm="getMyMemberTable"/>
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
<dialogEditWdsf ref="dialogEditWdsfRef" @submitForm="changeMeDone" />
<dialogEditAccompany ref="dialogEditAccompanyRef" @submitForm="getMyMemberTable" />
<addCoachEn ref="dialogAddCoachEnRef" @submitForm="getMyMemberTable" />
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList" />
</div>
</template>
<script setup>
import {ref, reactive, toRefs} from 'vue'
import { ref, reactive, toRefs } from 'vue'
import * as match from '@/apiPc/match'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import { getCurrentInstance, onMounted } from '@vue/runtime-core'
import DialogEditWdsf from './components/addWdsf'
import DialogEditAccompany from './components/addAccompany'
import AddCoachEn from './components/addCoach_en'
import DialogAllSportsmanList from './components/allSportsmanList'
import DialogExtraForm from './components/extraForm'
import {Search, Switch} from "@element-plus/icons-vue";
import { Search, Switch } from '@element-plus/icons-vue'
const {proxy} = getCurrentInstance()
const { proxy } = getCurrentInstance()
const router = useRouter()
const route = useRoute()
import _ from 'lodash'
import {ElMessage, ElMessageBox} from 'element-plus'
import cache from "@/plugins/cache"
import TeamSignStep from "@/viewsPc/match/components/teamSignStep"
import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
import { ElMessage, ElMessageBox } from 'element-plus'
import cache from '@/plugins/cache'
import TeamSignStep from '@/viewsPc/match/components/teamSignStep'
import CoachInfoRow from '@/viewsPc/match/components/coachInfo-row'
import SignInfoTable from '@/viewsPc/match/components/signInfo-table'
import ZuTable from '@/viewsPc/match/components/zu-table'
import SingleSignStep from "@/viewsPc/match/components/singleSignStep";
import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
import useUserStore from "@/store/modules/user";
import {getPerPersonList} from "@/apiPc/match";
import {useStorage} from "@vueuse/core/index";
import SingleSignStep from '@/viewsPc/match/components/singleSignStep'
import MatchInfoRow from '@/viewsPc/match/components/matchInfo-row'
import useUserStore from '@/store/modules/user'
import { getPerPersonList } from '@/apiPc/match'
import { useStorage } from '@vueuse/core/index'
const language= useStorage('language',0)
const language = useStorage('language', 0)
const data = reactive({
coachForm: {}, activeStep: 2,
......@@ -247,7 +261,7 @@ const data = reactive({
mateChosed: [],
projectIds: [],
projectList: [],
choosed2List: [], projectQuery: {}, tableType: 1,
choosed2List: [], projectQuery: {}, tableType: 1
})
const {
activeTeam,
......@@ -303,15 +317,15 @@ function getMyInfo() {
myId.value = res.data.id
getProjectList()
}).catch(err => {
router.push({name: 'home'})
router.push({ name: 'home' })
})
}
function getMyMemberTable() {
//
match.getPerPersonList({cptId: matchId.value, searchLabels: '1,2,3,4,5,6'}, userId.value).then(res => {
match.getPerPersonList({ cptId: matchId.value, searchLabels: '1,2,3,4,5,6' }, userId.value).then(res => {
myMemberTable.value = res.rows
if(res.rows.length > 0){
if (res.rows.length > 0) {
showPersonList.value = true
}
})
......@@ -376,15 +390,15 @@ function submitForm(n) {
}
return
}
if (signInfoType == '1') {
ElMessageBox.confirm(language.value==0?'已报项,前往我的报项':'Reported items, go to my submission',
language.value==0?'提示':'Tips', {
confirmButtonText: language.value==0?'确定':'OK',
cancelButtonText: language.value==0?'取消':'Cancel',
type: 'warning'
}).then(() => {
router.push({name: 'myMatch'})
ElMessageBox.confirm(language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
router.push({ name: 'myMatch' })
})
return
}
......@@ -406,12 +420,12 @@ function submitForm(n) {
if (showPersonList.value) {
if (myMemberTable.value.length == 0) {
ElMessageBox.confirm(language.value == 0 ? '是否继续添加随行人员?' : 'Do you want to add casual personnel?',
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '是' : 'Yes',
cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
type: 'warning'
}).then(() => {
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '是' : 'Yes',
cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
type: 'warning'
}).then(() => {
}).catch(() => {
commit()
})
......@@ -420,11 +434,11 @@ function submitForm(n) {
}
} else {
ElMessageBox.confirm(language.value == 0 ? '是否添加随行人员?' : 'Do you want to add casual personnel?',
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '是' : 'Yes',
cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
type: 'warning'
}).then(() => {
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '是' : 'Yes',
cancelButtonText: language.value == 0 ? '否,进入下一步' : 'NO,Go Next',
type: 'warning'
}).then(() => {
showPersonList.value = true
}).catch(() => {
commit()
......@@ -473,13 +487,12 @@ function commit() {
// })
// })}
// )
}
function getProjectList() {
projectIds.value = []
loadingProject.value = true
//根据已选人员id 获取项目列表
// 根据已选人员id 获取项目列表
var obj = {}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj = {
......@@ -532,7 +545,7 @@ function addCoach() {
}
function delperson(p) {
//删除团队下的人
// 删除团队下的人
let text = ''
let t = '提示'
let s = '确定'
......@@ -562,21 +575,21 @@ function delperson(p) {
function signUp() {
if (projectIds.value.length == 0) {
if (language.value == 0) {
ElMessage.warning('请选择项目')
} else {
ElMessage.warning('Please select project')
}
if (language.value == 0) {
ElMessage.warning('请选择项目')
} else {
ElMessage.warning('Please select project')
}
return
}
let obj = {
const obj = {
projectIds: projectIds.value.toString(),
groupId: 0
}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj.athleteIds= `${myId.value},${form.value.danceMate?.id}`
obj.athleteIds = `${myId.value},${form.value.danceMate?.id}`
} else {
obj.athleteIds= myId.value
obj.athleteIds = myId.value
}
match.sportsmanDone(obj).then(res => {
getSignInfoList()
......@@ -586,11 +599,11 @@ function signUp() {
function removeThis(id) {
ElMessageBox.confirm(language.value == 0 ? '确定移除这条报项吗?' : 'Are you sure to remove this report item',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
match.deleteSign(id).then(res => {
// 重新获取已报名信息
ElMessage.success(language.value == 0 ? '已移除该报项' : 'success')
......@@ -620,13 +633,13 @@ function goMySign() {
const goPersonInfo = (row) => {
if (signInfoType == '1') {
ElMessageBox.alert(
language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
}
})
language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({ name: 'myMatch' })
}
})
return
}
// 完善补充信息
......@@ -634,12 +647,12 @@ const goPersonInfo = (row) => {
// debugger
const params = {
matchId: matchId.value,
title: language.value==0?'完善补充信息':'Complete the supplementary information',
title: language.value == 0 ? '完善补充信息' : 'Complete the supplementary information',
participantsInfoArr: extraform.value,
personId: row.personInfo.id,
extraId: row.extraPersonInfo?.id || 0,
isNational:true
isNational: true
}
proxy.$refs['popExtraForm'].open(_.cloneDeep(params))
}
......@@ -647,7 +660,7 @@ const goPersonInfo = (row) => {
function downloadVoucher() {
// 下载凭证
proxy.download(
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf', {}, 'application/pdf'
)
}
......@@ -662,16 +675,17 @@ function addMate() {
proxy.$refs['dialogEditWdsfRef'].open({
title: language.value == 0 ? '添加舞伴' : 'Add My Mate',
isMe: false,
cptId:matchId.value,
cptId: matchId.value,
id: 0
})
}
function editMate(obj) {
proxy.$refs['dialogEditWdsfRef'].open({
title: language.value == 0 ? '编辑舞伴' : 'Edit My Mate',
isMe: false,
form: obj || {},
cptId:matchId.value,
cptId: matchId.value,
id: obj?.id || 0
})
}
......@@ -689,19 +703,18 @@ function delMate(mate) {
}
function changeMate(e) {
console.log(e, mateChosed.value,form.value.danceMate.passportUrl)
if(form.value.danceMate.passportUrl==''||!form.value.danceMate.passportUrl){
console.log(e, mateChosed.value, form.value.danceMate.passportUrl)
if (form.value.danceMate.passportUrl == '' || !form.value.danceMate.passportUrl) {
mateChosed.value = []
ElMessageBox.confirm(language.value == 0 ? '请先上传舞伴的有效证件' : 'Please upload the valid certificate of the teammate',
language.value == 0 ? '提示' : 'Tip',
{
confirmButtonText: language.value == 0 ? '确定' : 'Yes',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
}).then(()=>{
editMate(form.value.danceMate)
return
}).catch(()=>{
return
language.value == 0 ? '提示' : 'Tip',
{
confirmButtonText: language.value == 0 ? '确定' : 'Yes',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel'
}).then(() => {
editMate(form.value.danceMate)
}).catch(() => {
})
}
getProjectList()
......@@ -716,13 +729,14 @@ function switchTabletype() {
}
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
:deep(.el-checkbox__label) {
flex: 1 1 auto;
}
.flexBetweenBox {
width: 100%;margin-right: 0;
width: 100%;
margin-right: 0;
height: auto;
border-bottom: 1px solid #eee;
padding: 0 10px;
......@@ -735,7 +749,7 @@ function switchTabletype() {
.flexBetween {
padding: 10px;
border-left: 1px solid #eee;
.l {
div {
margin: 4px 0 0;
......@@ -766,16 +780,16 @@ function switchTabletype() {
margin: 0 0 20px;
display: flex;
justify-content: space-between;
button {
position: relative;
margin: 10px;
}
.choseItem {
margin: 10px;
position: relative;
.poClose {
position: absolute;
right: -6px;
......@@ -790,18 +804,18 @@ function switchTabletype() {
background: rgba(245, 247, 249, 0.38);
padding: 20px 40px 10px;
}
.el-checkbox {
height: auto;
margin-right: 20px;
}
:deep(.el-checkbox__input) {
position: absolute;
right: 0;
top: 0;
}
.name {
text-align: center;
}
......@@ -820,7 +834,7 @@ function switchTabletype() {
margin: 5px 0;
color: #4C5359;
font-size: 14px;
label {
font-size: 14px;
margin-right: 14px
......@@ -833,13 +847,13 @@ function switchTabletype() {
color: #4C5359;
display: flex;
justify-content: center;
div {
padding: 20px;
position: relative;
cursor: pointer;
}
div:first-child::after {
content: '';
position: absolute;
......@@ -851,10 +865,10 @@ function switchTabletype() {
bottom: 0;
margin: auto;
}
.active {
color: var(--el-color-primary);
&::before {
width: 33px;
content: '';
......@@ -875,6 +889,13 @@ function switchTabletype() {
display: inline-block
}
}
.mName{color: #000;font-size: 15px;display: inline-block;max-width: 6.5em;text-overflow: ellipsis;
overflow: hidden;}
.mName {
color: #000;
font-size: 15px;
display: inline-block;
max-width: 6.5em;
text-overflow: ellipsis;
overflow: hidden;
}
</style>
......
......@@ -711,7 +711,7 @@ const goPersonInfo = (row) => {
function downloadVoucher() {
// 下载凭证
proxy.download(
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf', {}, 'application/pdf'
)
}
......
......@@ -2,32 +2,37 @@
<div>
<div class="box ph-30">
<el-card class="mb20">
<team-sign-step :activeStep="activeStep" :language="language"/>
<team-sign-step :active-step="activeStep" :language="language" />
</el-card>
<el-card :body-style="{'padding-top': '0'}">
<el-row class="mt20" :gutter="20">
<el-row :gutter="20" class="mt20">
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3>
<h3 class="panel-title" v-else>Select list of participating athletes</h3>
<h3 v-if="language==0" class="panel-title">选择参赛运动员清单</h3>
<h3 v-else class="panel-title">Select list of participating athletes</h3>
<a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
</div>
<div class="panel-body" style="padding: 10px">
<div style="margin: 0 4px 10px">
<el-input size="small" v-model="athletesQuery.name" :prefix-icon="Search"
@change="queryAthletes"
clearable/>
<el-input
v-model="athletesQuery.name" :prefix-icon="Search" clearable
size="small"
@change="queryAthletes"
/>
</div>
<div class="noPicChooseForm" id="chooseArr">
<div id="chooseArr" class="noPicChooseForm">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<el-button id="addRef" plain @click="chooseSportman">+{{ language == 0 ? '选择' : 'add' }}</el-button>
<el-button id="addRef" plain @click="chooseSportman">+{{
language == 0 ? '选择' : 'add'
}}
</el-button>
<el-checkbox v-for="c in choosedListBak" :value="c.id" border>
<p class="name">{{ c.realName }}
<!-- ({{ c.sexStr }})-->
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
<img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
<img v-if="c.sex=='0'" src="@/assets/img/female.png">
<img v-if="c.sex=='1'" src="@/assets/img/male.png">
</p>
</el-checkbox>
</el-checkbox-group>
......@@ -38,25 +43,27 @@
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择一个参赛组合</h3>
<h3 class="panel-title" v-else>Select a Participating team</h3>
<h3 v-if="language==0" class="panel-title">选择一个参赛组合</h3>
<h3 v-else class="panel-title">Select a Participating team</h3>
<a class="fr" @click="emptyChangechoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
</div>
<div class="panel-body" style="padding: 10px">
<div class="mb20">
<el-input size="small" v-model="zuQuery.name" :prefix-icon="Search"
@change="queryTeam" clearable/>
<el-input
v-model="zuQuery.name" :prefix-icon="Search" clearable
size="small" @change="queryTeam"
/>
</div>
<div class="chooseForm">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<!-- v-show="choosedchoosed.indexOf(c.id) !== -1"-->
<el-checkbox v-for="c in choosed2Listbak" :value="c.id" checked>
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<el-avatar v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)" fit="cover" />
<el-avatar v-else-if="c.sex == 0" :size="60" fit="cover" src="/img/head1.png" />
<el-avatar v-else-if="c.sex == 1" :size="60" fit="cover" src="/img/head0.png" />
<p class="name">{{ c.realName }}
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
<img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
<img v-if="c.sex=='0'" src="@/assets/img/female.png">
<img v-if="c.sex=='1'" src="@/assets/img/male.png">
<!-- <el-icon @click.stop="editPerson(c.id)">-->
<!-- <Edit/>-->
<!-- </el-icon>-->
......@@ -70,17 +77,19 @@
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
<h3 class="panel-title" v-else>Search Events</h3>
<h3 v-if="language==0" class="panel-title">可参与报名的项目</h3>
<h3 v-else class="panel-title">Search Events</h3>
<div class="fr">
<el-input size="small" v-model="projectQuery.name" :prefix-icon="Search"
@change="getProjectList"
clearable/>
<el-input
v-model="projectQuery.name" :prefix-icon="Search" clearable
size="small"
@change="getProjectList"
/>
</div>
</div>
<div v-loading="loadingProject" id="projectbox" style="height: 60vh;overflow: auto;">
<div id="projectbox" v-loading="loadingProject" style="height: 60vh;overflow: auto;">
<el-checkbox-group v-model="projectIds" @change="changeProject">
<el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id">
<el-checkbox v-for="c in projectList" :key="c.id" :value="c.id" class="flexBetweenBox">
<div class="flexBetween w100">
<div class="l">
{{ c.code }}:{{ c.name }}
......@@ -90,8 +99,10 @@
</div>
</el-checkbox>
</el-checkbox-group>
<el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228"
:description="language==0?'无可选项目':''"/>
<el-empty
v-if="projectList.length==0" :description="language==0?'无可选项目':''" :image="`/img/order_no.png`"
:image-size="228"
/>
</div>
</div>
</el-col>
......@@ -99,17 +110,19 @@
<el-row class="mt20">
<el-col :span="24">
<div class="text-center">
<el-button type="primary" class="btn-lineG w200px" id="signUpBtn"
:disabled="projectIds.length==0||choosedchoosed.length==0" round @click="signUp">
<el-button
id="signUpBtn" :disabled="projectIds.length==0||choosedchoosed.length==0" class="btn-lineG w200px"
round type="primary" @click="signUp"
>
{{ language == 0 ? '确定' : 'Confirm' }}
</el-button>
</div>
</el-col>
</el-row>
</el-card>
<el-card class="mt20" :body-style="{'padding': '0'}">
<coach-info-row :match-id="matchId" :group-id="groupId" :language="language"/>
<el-card :body-style="{'padding': '0'}" class="mt20">
<coach-info-row :group-id="groupId" :language="language" :match-id="matchId" />
<div class="m20">
<!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>-->
<!-- <el-button type="success" @click="addCoach">新增运动员</el-button>-->
......@@ -129,71 +142,75 @@
<!-- {{ language == 0 ? '按组别查看报项' : 'Check Registrations by Group' }}-->
<!-- </el-button>-->
<!-- </div>-->
<sign-info-table v-if="tableType==0" :match-id="matchId"
:extraform="extraform" :list="signInfoList"
@editExtra="goPersonInfo"/>
<zu-table v-else :list="zuTableList" @delete="removeThis"/>
<sign-info-table
v-if="tableType==0" :extraform="extraform"
:list="signInfoList" :match-id="matchId"
@editExtra="goPersonInfo"
/>
<zu-table v-else :list="zuTableList" @delete="removeThis" />
<div class="text-center mt20">
<el-button type="primary" class="w200px" plain round @click="goPrev()">
<el-button class="w200px" plain round type="primary" @click="goPrev()">
{{ language == 0 ? "上一步" : 'Go back' }}
</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">
<el-button class="btn-lineG w200px" round type="primary" @click="submitForm()">
{{ language == 0 ? '预览报名信息' : 'Preview registration information' }}
</el-button>
</div>
</div>
</el-card>
</div>
<dialogAddCoach ref="dialogAddCoachRef"/>
<dialogAllSportsmanList ref="dialogAllSportsmanListRef" @transfer="getChoosed" @submitForm="getSignInfoList"/>
<dialogImport ref="dialogImportProps" @submitForm="getMySignInfo"/>
<dialogAddCoach ref="dialogAddCoachRef" />
<dialogAllSportsmanList ref="dialogAllSportsmanListRef" @submitForm="getSignInfoList" @transfer="getChoosed" />
<dialogImport ref="dialogImportProps" @submitForm="getMySignInfo" />
<el-dialog v-model="showResult" :close-on-click-modal="false" :show-close="false">
<el-result icon="success" :title="language==0?'报名成功':'Sign up successful'">
<el-result :title="language==0?'报名成功':'Sign up successful'" icon="success">
<template #extra>
<el-button type="primary" @click="downloadVoucher">下载凭证</el-button>
<el-button type="primary" @click="goMySign">{{ language == 0 ? '查看报项' : 'View Entries' }}</el-button>
</template>
</el-result>
</el-dialog>
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
<dialogWdsf ref="popWdsf" @submitForm="getSignInfoList"/>
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList" />
<dialogWdsf ref="popWdsf" @submitForm="getSignInfoList" />
<el-tour v-model="openTour" :current="tourCurrent">
<el-tour-step target="#addRef" title="第一步" description="点击选择运动员" :next-button-props="nextButtonProps"/>
<el-tour-step v-if="choosedList.length>0" target="#chooseArr" title="第二步" description="勾选报项运动员"/>
<el-tour-step v-if="projectList.length>0" target="#projectbox" title="第三步" description="选择报名项目"/>
<el-tour-step v-if="projectIds.length>0" target="#signUpBtn" title="第四步" description="点击报项"/>
<el-tour-step :next-button-props="nextButtonProps" description="点击选择运动员" target="#addRef" title="第一步" />
<el-tour-step v-if="choosedList.length>0" description="勾选报项运动员" target="#chooseArr" title="第二步" />
<el-tour-step v-if="projectList.length>0" description="选择报名项目" target="#projectbox" title="第三步" />
<el-tour-step v-if="projectIds.length>0" description="点击报项" target="#signUpBtn" title="第四步" />
</el-tour>
</div>
</template>
<script setup>
import {ref, reactive, toRefs, watch} from 'vue'
import { ref, reactive, toRefs, watch } from 'vue'
import * as match from '@/apiPc/match'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import { getCurrentInstance, onMounted } from '@vue/runtime-core'
import DialogAddCoach from './components/addCoach'
import DialogAllSportsmanList from './components/allSportsmanList'
import DialogImport from './components/import'
import DialogExtraForm from './components/extraForm'
import DialogWdsf from './components/wdsfForm'
import {Search, Switch} from "@element-plus/icons-vue";
const {proxy} = getCurrentInstance()
import { Search, Switch } from '@element-plus/icons-vue'
const { proxy } = getCurrentInstance()
const router = useRouter()
const route = useRoute()
import _ from 'lodash'
import {ElMessage, ElMessageBox} from 'element-plus'
import cache from "@/plugins/cache"
import TeamSignStep from "@/viewsPc/match/components/teamSignStep"
import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
import { ElMessage, ElMessageBox } from 'element-plus'
import cache from '@/plugins/cache'
import TeamSignStep from '@/viewsPc/match/components/teamSignStep'
import CoachInfoRow from '@/viewsPc/match/components/coachInfo-row'
import SignInfoTable from '@/viewsPc/match/components/signInfo-table'
import ZuTable from '@/viewsPc/match/components/zu-table'
import {signgetSignInfoConflict} from "@/apiPc/match";
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
import { signgetSignInfoConflict } from '@/apiPc/match'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const data = reactive({
coachForm: {}, activeStep: 2,
tourCurrent:0,
tourCurrent: 0,
tableData: [],
signInfoList: [],
zuTableList: [],
......@@ -223,12 +240,35 @@ const data = reactive({
choosed2List: [],
choosed2Listbak: [],
projectQuery: {}, tableType: 1,
openTour:false
openTour: false
})
const {
activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,
extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject,
projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent
activeTeam,
names,
tableData,
signInfoList,
zuTableList,
choosedList,
choosedListBak,
extraform,
groupId,
signType,
coachOrLeaderFlag,
showResult,
noPhotoCanSign,
projectIds,
choosedchoosed,
activeStep,
projectList,
choosed2List,
choosed2Listbak,
loadingProject,
projectQuery,
tableType,
athletesQuery,
zuQuery,
openTour,
tourCurrent
} = toRefs(data)
const nextButtonProps = ref({})
const matchId = ref(route.query.matchId)
......@@ -278,12 +318,12 @@ function getSignInfoList() {
function submitForm() {
if (signInfoType == '1') {
ElMessageBox.confirm(language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
router.push({name: 'myMatch'})
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
router.push({ name: 'myMatch' })
})
return
}
......@@ -346,7 +386,7 @@ function changechoosed(e) {
// console.log(e)
choosed2List.value = []
choosed2Listbak.value = []
for (var c of choosedList.value) {
if (choosedchoosed.value.indexOf(c.id) > -1) {
choosed2List.value.push(c)
......@@ -362,13 +402,13 @@ function getProjectList() {
return
}
loadingProject.value = true
//根据已选人员id 获取项目列表
// 根据已选人员id 获取项目列表
projectQuery.value.cptId = matchId.value
projectQuery.value.perIds = choosedchoosed.value.toString()
match.getProjectPageByPerIds(projectQuery.value).then(res => {
projectList.value = res.rows
loadingProject.value = false
if(choosed2Listbak.value.length>0 && projectList.value.length>0){
if (choosed2Listbak.value.length > 0 && projectList.value.length > 0) {
tourCurrent.value = 2
}
}).catch(err => {
......@@ -378,32 +418,32 @@ function getProjectList() {
}
function queryAthletes() {
choosedListBak.value = []
for (var t of choosedList.value) {
if (t.realName.indexOf(athletesQuery.value.name) > -1) {
// 筛选
choosedListBak.value.push(t)
}
choosedListBak.value = []
for (var t of choosedList.value) {
if (t.realName.indexOf(athletesQuery.value.name) > -1) {
// 筛选
choosedListBak.value.push(t)
}
}
}
function queryTeam() {
choosed2Listbak.value = []
choosedchoosed.value = []
for (var t of choosed2List.value) {
if (t.realName.indexOf(zuQuery.value.name) > -1) {
// 筛选
choosed2Listbak.value.push(t)
choosedchoosed.value.push(t.id)
}
choosed2Listbak.value = []
choosedchoosed.value = []
for (var t of choosed2List.value) {
if (t.realName.indexOf(zuQuery.value.name) > -1) {
// 筛选
choosed2Listbak.value.push(t)
choosedchoosed.value.push(t.id)
}
}
}
function getChoosed(list) {
console.log(list)
choosedList.value = list
choosedListBak.value = list
if(list.length>0){
if (list.length > 0) {
// openTour.value = false
tourCurrent.value = 1
}
......@@ -516,7 +556,7 @@ const goPersonInfo = (row) => {
ElMessageBox.alert('已报项,前往我的报项', '提示', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
router.push({ name: 'myMatch' })
}
})
return
......@@ -525,7 +565,7 @@ const goPersonInfo = (row) => {
console.log(row)
// debugger
const params = {
matchId:matchId.value,
matchId: matchId.value,
title: language.value == 0 ? '完善补充信息' : 'Complete the supplementary information',
participantsInfoArr: extraform.value,
personId: row.personInfo.id,
......@@ -537,7 +577,7 @@ const goPersonInfo = (row) => {
function downloadVoucher() {
// 下载凭证
proxy.download(
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf', {}, 'application/pdf'
)
}
......@@ -558,45 +598,45 @@ function switchTabletype() {
}
function changeProject(e) {
console.log(projectIds.value,e)
var obj
obj = _.find(projectList.value, (c) => {
return e.indexOf(c.id)>-1
})
// if(obj.majorFlag==1){
// 需要填wdsf
const params = {
title: '验证WDSF',
list:choosed2Listbak.value
}
proxy.$refs['popWdsf'].open(_.cloneDeep(params))
// }
console.log(projectIds.value, e)
var obj
obj = _.find(projectList.value, (c) => {
return e.indexOf(c.id) > -1
})
// if(obj.majorFlag==1){
// 需要填wdsf
const params = {
title: '验证WDSF',
list: choosed2Listbak.value
}
proxy.$refs['popWdsf'].open(_.cloneDeep(params))
// }
}
watch(choosedchoosed, (newVal, oldVal) => {
// console.log(choosedchoosed.value)
if(newVal.length>oldVal.length){
if (newVal.length > oldVal.length) {
match.signgetSignInfoConflict({
cptId: matchId.value,
perId: _.last(newVal),
groupId: groupId.value
}).then(res => {
if(!res.data){
ElMessage.warning(language.value==0?'该人员已在其他团队中报名,请重新选择':'This person has already registered in another team, please select again')
choosedchoosed.value = _.without(choosedchoosed.value,_.last(newVal))
for(var c of choosed2List.value){
if(c.id == _.last(newVal)){
choosed2List.value = _.without(choosed2List.value,c)
}
if (!res.data) {
ElMessage.warning(language.value == 0 ? '该人员已在其他团队中报名,请重新选择' : 'This person has already registered in another team, please select again')
choosedchoosed.value = _.without(choosedchoosed.value, _.last(newVal))
for (var c of choosed2List.value) {
if (c.id == _.last(newVal)) {
choosed2List.value = _.without(choosed2List.value, c)
}
for(var c of choosed2Listbak.value){
if(c.id == _.last(newVal)){
choosed2Listbak.value = _.without(choosed2Listbak.value,c)
}
}
for (var c of choosed2Listbak.value) {
if (c.id == _.last(newVal)) {
choosed2Listbak.value = _.without(choosed2Listbak.value, c)
}
projectList.value = []
console.log(choosedchoosed.value,choosed2List.value,choosed2Listbak.value)
return
}
projectList.value = []
console.log(choosedchoosed.value, choosed2List.value, choosed2Listbak.value)
} else {
getProjectList()
}
......@@ -607,14 +647,15 @@ watch(choosedchoosed, (newVal, oldVal) => {
})
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
:deep(.el-checkbox__label) {
flex: 1 1 auto;
}
.flexBetweenBox {
width: 100%;
height: auto;margin-right: 0;
height: auto;
margin-right: 0;
border-bottom: 1px solid #eee;
padding: 0 10px;
}
......@@ -623,10 +664,11 @@ watch(choosedchoosed, (newVal, oldVal) => {
background: #FAFBFD;
}
.flexBetween {white-space: normal;
.flexBetween {
white-space: normal;
padding: 10px;
border-left: 1px solid #eee;
.l {
div {
margin: 4px 0 0;
......@@ -657,16 +699,16 @@ watch(choosedchoosed, (newVal, oldVal) => {
margin: 0 0 20px;
display: flex;
justify-content: space-between;
button {
position: relative;
margin: 10px;
}
.choseItem {
margin: 10px;
position: relative;
.poClose {
position: absolute;
right: -6px;
......@@ -681,18 +723,18 @@ watch(choosedchoosed, (newVal, oldVal) => {
background: rgba(245, 247, 249, 0.38);
padding: 20px 40px 10px;
}
.el-checkbox {
height: auto;
margin-right: 20px;
}
:deep(.el-checkbox__input) {
position: absolute;
right: 0;
top: 0;
}
.name {
text-align: center;
}
......@@ -711,7 +753,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
margin: 5px 0;
color: #4C5359;
font-size: 14px;
label {
font-size: 14px;
margin-right: 14px
......@@ -724,13 +766,13 @@ watch(choosedchoosed, (newVal, oldVal) => {
color: #4C5359;
display: flex;
justify-content: center;
div {
padding: 20px;
position: relative;
cursor: pointer;
}
div:first-child::after {
content: '';
position: absolute;
......@@ -742,10 +784,10 @@ watch(choosedchoosed, (newVal, oldVal) => {
bottom: 0;
margin: auto;
}
.active {
color: var(--el-color-primary);
&::before {
width: 33px;
content: '';
......@@ -764,23 +806,23 @@ watch(choosedchoosed, (newVal, oldVal) => {
.noPicChooseForm {
overflow: auto;
//height: 70vh;
.el-checkbox-group {
display: flex;
flex-wrap: wrap;
text-align: justify;
.el-button {
width: 31%;
margin: 1%;
}
.el-checkbox {
margin: 1%;
width: 31%;
overflow: hidden;
}
.name {
justify-content: left;
}
......@@ -791,7 +833,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
display: flex;
align-items: center;
justify-content: center;
img {
height: 20px;
margin-left: 4px;
......
......@@ -713,7 +713,7 @@ function exportPdf() {
fileName = '设项报名清单'
proxy.download('/pdf/exportMySignInfoList', {
...obj
}, `${fileName}_${new Date().getTime()}.pdf`, {}, 'application/pdf')
}, `${fileName}_${new Date().getTime()}.pdf`, {}, 'application/pdf', {}, 'application/pdf')
} else {
fileName = 'LIST OF REGISTERED COMPETITIONS'
proxy.download('/pdf/exportMySignInfoList', {
......
......@@ -317,7 +317,7 @@ function exportSignList(n) {
}
proxy.download('/league/sign/exportCn', {
...obj
}, `${fileName}_${new Date().getTime()}.xlsx`)
}, `${fileName}_${new Date().getTime()}.xlsx`, {}, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
} else {
if (n == 1) {
fileName = 'Participant List'
......@@ -326,7 +326,7 @@ function exportSignList(n) {
}
proxy.download('/league/sign/exportEn', {
...obj
}, `${fileName}_${new Date().getTime()}.xlsx`)
}, `${fileName}_${new Date().getTime()}.xlsx`, {}, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
}
}
......@@ -341,12 +341,12 @@ function exportPdf() {
fileName = '设项报名清单'
proxy.download('/pdf/exportMySignInfoList', {
...obj
}, `${fileName}_${new Date().getTime()}.pdf`)
}, `${fileName}_${new Date().getTime()}.pdf`, {}, 'application/pdf', {}, 'application/pdf')
} else {
fileName = 'LIST OF REGISTERED COMPETITIONS'
proxy.download('/pdf/exportMySignInfoList', {
...obj
}, `${fileName}_${new Date().getTime()}.pdf`)
}, `${fileName}_${new Date().getTime()}.pdf`, {}, 'application/pdf')
}
}
</script>
......
......@@ -84,8 +84,8 @@ export default defineConfig(({ mode, command }) => {
},
'/dev-api': {
// target: 'http://192.168.1.213:8081/',
// target: 'http://192.168.1.118:8081',
target: 'https://jijin.wtwuxicenter.com/stage-api',
target: 'http://192.168.1.169:8081',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!