1cf0239b by 杨炀

no message

1 parent aa92ff7d
......@@ -59,7 +59,7 @@
<el-input type="text" v-model="form.orgCode" :placeholder="language==0?'请输入内容':''"/>
</el-form-item>
<el-form-item :label="language==0?'机构证件':'Institutional documents'" required prop="orgCert">
<file-upload v-model="form.orgCert" :button-text="language==0?'上传文件':'Upload'"/>
<file-upload :is-show-tip="false" v-model="form.orgCert" :button-text="language==0?'上传文件':'Upload'"/>
</el-form-item>
</div>
......@@ -71,7 +71,7 @@
<el-input type="text" v-model="form.orgCode" :placeholder="language==0?'请输入内容':''"/>
</el-form-item>
<el-form-item :label="language==0?'法定代表人身份文件':'Identity documents of the legal representative'" required prop="orgCert">
<file-upload v-model="form.orgCert" :button-text="language==0?'上传文件':'Upload'"/>
<file-upload :is-show-tip="false" v-model="form.orgCert" :button-text="language==0?'上传文件':'Upload'"/>
</el-form-item>
</div>
......
<template>
<el-card class="mb20">
<div class="pad20">
<!-- <el-form :model="query" :inline="true">-->
<!-- <el-form-item label="赛事名称">-->
<!-- <el-input v-model="query.name" style="width: 214px;" @change="getBillList"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="赛事时间">-->
<!-- <el-date-picker-->
<!-- v-model="cptPeriodArr"-->
<!-- format="YYYY-MM-DD" type="daterange"-->
<!-- value-format="YYYY-MM-DD" range-separator="至"-->
<!-- start-placeholder="开始时间"-->
<!-- end-placeholder="结束时间"-->
<!-- @change="getBillList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" @click="getBillList">查询</el-button>-->
<!-- <el-button type="info" @click="reset(query)">重置</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<div class="pd20">
<div class="matchItem" v-for="n in billList" :key="n.id" @click="goDetail(n.id)">
<div class="status-po">
<span class="bg-pink" v-if="n.auditStatus=='0'">未提交</span>
<span class="bg-primary" v-if="n.auditStatus=='1'">待审核</span>
<span class="bg-blue" v-if="n.auditStatus=='2'">审核通过</span>
<span class="bg-danger" v-if="n.auditStatus=='3'">审核驳回</span>
</div>
<el-row :gutter="15">
<el-col :lg="6" :md="8" :xl="10">
<img class="mauto w100" :src="fillImgUrl(n.cptCoverPic)">
</el-col>
<el-col :lg="18" :md="16" :xl="14">
<el-row>
<el-col :span="24">
<h3>{{ n.cptName }}</h3>
</el-col>
<el-col :lg="8">
<p class="ppl"><label>赛事类型:</label>{{ n.cptLevel }}</p>
<p class="ppl"><label v-if="n.groupName">参赛队:</label>{{n.groupName}}</p>
</el-col>
<el-col :lg="8">
<p class="ppl"><label>比赛时间:</label>{{ n.cptTimeRange }}
</p>
<p class="ppl"><label>参赛运动员:</label>{{ n.cptAthletesSize }}</p>
</el-col>
<el-col :lg="8">
<p class="ppl"><label>报名时间:</label>{{ n.cptSignTimeRange}}</p>
<div class="btnbox">
<el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">详情</el-button>
<el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'">继续报名</el-button>
<el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'">取消报名</el-button>
<el-button plain round type="primary" v-if="n.auditStatus=='3'">重新报名</el-button>
<el-button plain round type="primary" v-if="n.auditStatus=='2'&&n.payStatus=='0'">缴费</el-button>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</div>
<el-empty :image="`/img/order_no.png`" :image-size="228" v-if="billList?.length == 0"/>
</div>
<paginationPc
v-show="total > 0"
v-model:page="query.pageNum"
v-model:limit="query.pageSize"
:total="total"
@pagination="getBillList"
/>
</div>
<!-- 报项详情-->
<dialogModifySign :props="dialogModifySignProps"/>
<!-- 订单详情-->
<dialogModifyBill :props="dialogModifyBillProps"/>
</el-card>
</template>
<script setup>
import {ref} from 'vue'
import {useRouter} from 'vue-router'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import dialogModifySign from './component/modifySign'
import dialogModifyBill from './component/modifyBill'
import * as match from '@/apiPc/match'
import {ElMessage, ElMessageBox} from 'element-plus'
import _ from 'lodash'
import useUserStore from "@/store/modules/user";
const router = useRouter()
const {proxy} = getCurrentInstance()
const total = ref(0)
const total2 = ref(0)
const dialogPropsBase = {
open: false,
isView: false,
title: '',
data: null
}
const dialogModifySignProps = ref({
...dialogPropsBase
})
const dialogModifyBillProps = ref({
...dialogPropsBase
})
const activeName = ref('first')
const myform = ref({})
const groupList = ref([])
const cptPeriodArr = ref([])
const payTimeArr = ref([])
const commitTimeArr = ref([])
const countryList = ref([])
const tableData = ref([{name: '111'}])
const billList = ref([])
const query = ref({
pageNum: 1,
pageSize: 10
})
const query2 = ref({
pageNum: 1,
pageSize: 10
})
const payType = ref('')
const payPop = ref(false)
const showOrganizerInfo = ref(false)
const showResult = ref(false)
const myBalance = ref('')
const nowBill = ref({})
const org = ref({})
const user = useUserStore().user
const group = useUserStore().group
onMounted(() => {
getBillList()
})
const reset = (form) => {
query.value = {
pageNum: 1,
pageSize: 10
}
query2.value = {
pageNum: 1,
pageSize: 10
}
cptPeriodArr.value = []
payTimeArr.value = []
commitTimeArr.value = []
getBillList()
}
function withDraw(n){
match.withDrawByOrderId(n.id).then(res=>{
getBillList()
})
}
function continueSign(n){
if (user.uType == '1') {
// 个人报名
router.push({
name: 'chooseProject',
query: {
matchId: n.cptId
}
})
}
if (user.uType == '2'){
// 团队报名
router.push({
name: 'chooseSportsman',
query: {
matchId: n.cptId,
groupId: group.id
}
})
}
}
function goDetail(n){
}
function getBillList() {
query2.value.payTimeRange = payTimeArr.value.toString()
query2.value.createTimeRange = commitTimeArr.value.toString()
console.log(query2.value)
match.getMyOrderList(query2.value).then(res => {
billList.value = res.rows
total2.value = res.total
})
}
function signRow(row) {
_.assign(dialogModifySignProps.value, dialogPropsBase, {
open: true,
isView: true,
title: '报项详情',
data: {...row}
})
}
// function getMemberInfoByCptId(cptId) {
// match.getMemberInfoByCptId(cptId).then((res) => {
// myBalance.value = res.data.balance
// })
// }
function goPay(bill) {
console.log(bill)
payPop.value = true
nowBill.value = bill
// getMemberInfoByCptId(bill.cptId)
}
function payBill() {
if (!payType.value) {
ElMessage.error('请选择支付方式')
return
}
match.payMatch({orderId: nowBill.value.id, payType: payType.value}).then(res => {
if (payType.value == 2) {
org.value = res.data.org
showOrganizerInfo.value = true
} else if (payType.value == 1) {
// 微信
proxy.$refs['wePayRef'].open(res.data)
} else {
showResult.value = true
}
})
}
function billDetail(bill) {
_.assign(dialogModifyBillProps.value, dialogPropsBase, {
open: true,
isView: true,
title: '订单详情',
data: {...bill}
})
}
function cancelBill(bill) {
ElMessageBox.confirm('确定取消订单吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
match.cancelMyUnPayedOrder(bill.id).then(Response => {
console.log(Response.data)
// 刷新数据
getBillList()
})
})
}
function downloadVoucher(row) {
proxy.download(
`/ztx-match/pdf/getPayedOrderPdf/${row.id}/${row.groupId || 0}`, {}, '报项凭证.pdf'
)
}
</script>
<style scoped lang="scss">
.matchItem {
cursor: pointer;
margin: 0 0 20px;
padding: 0 0 20px;background: #FBFCFD;
border-radius: 2px;
position: relative;
.status-po{position: absolute;right: 0;top: 0;font-size: 12px;
color: #FFFFFF;
span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;}
.bg-danger{background: #E60012;}
.bg-pink{background: #F740A6;}
.bg-primary{background: var(--el-color-primary)}
}
&:last-child {
border-bottom: none;
}
.el-avatar {
position: absolute;
left: 20px;
top: 30px;
img {
background: #fff;
}
}
.info {
p {
font-size: 14px;
}
}
.typeTag {
position: absolute;
right: 0;
top: 0;
}
h3 {
font-weight: 500;
margin: 0 0 10px;
font-size: 18px;
color: #000000;
text-overflow: ellipsis;
}
&:hover h3 {
color: var(--el-color-primary);
}
}
.centerPrice {
text-align: center;
font-size: 26px;
margin: 20px;
span {
font-size: 40px;
font-weight: bold;
}
}
:deep(.el-tabs__nav-wrap) {
padding: 0 15px;
}
:deep(.el-radio.el-radio--large .el-radio__label) {
display: flex;
align-items: center;
img {
margin-right: 6px;
}
}
.panel-footer .el-button--success {
background: #254385;
border: none;
padding: 0 40px;
font-size: 16px;
}
.orange {
font-size: 16px;
font-style: normal;
font-weight: bold
}
.orgbox {
font-size: 16px;
line-height: 30px;
}
.el-form--inline .el-form-item {
width: auto;
}
.ppl{font-size: 14px;
label{color: #929AA0;}
}
.btnbox{text-align: right;}
</style>
......@@ -5,14 +5,14 @@
<el-button type="primary" plain @click="importSportman">{{ language==0?'导入选手':'Import Player' }}</el-button>
</div>
<div class="from-Card">
<el-form :inline="true" :model="query" class="mt20" label-width="60" size="small">
<el-form :inline="true" :model="query" class="mt20" :label-width="language==0?60:80" size="small">
<el-form-item :label="language==0?'姓名':'Name'">
<el-input v-model="query.realName" style="width: 120px;" clearable/>
</el-form-item>
<el-form-item :label="language==0?'短名':'Nick Name'">
<el-input v-model="query.shortName" style="width: 120px;" clearable/>
</el-form-item>
<el-form-item :label="language==0?'手机号码':'Phone Number'">
<el-form-item :label="language==0?'手机号码':'Phone'">
<el-input v-model="query.phone" style="width: 120px;" clearable/>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'E-mail'">
......
......@@ -68,13 +68,13 @@ const validPwd = (rule, value, callback) => {
}
const rules = ref({
oldPassword: [{required: true, message: '旧密码不能为空', trigger: 'blur'}],
oldPassword: [{required: true, message: language.value==0?'旧密码不能为空':'required', trigger: 'blur'}],
newPassword: [
{required: true, message: '新密码不能为空', trigger: 'blur'},
{required: true, message: language.value==0?'新密码不能为空':'required', trigger: 'blur'},
{validator: validPwd, trigger: 'blur'}
],
confirmPassword: [
{required: true, message: '确认密码不能为空', trigger: 'blur'},
{required: true, message: language.value==0?'确认密码不能为空':'required', trigger: 'blur'},
{required: true, validator: equalToPassword, trigger: 'blur'}
]
})
......@@ -84,7 +84,7 @@ function submit() {
proxy.$refs['pwdRef'].validate(valid => {
if (valid) {
updateUserPwd(user.oldPassword, user.newPassword).then(response => {
proxy.$modal.msgSuccess('修改成功')
proxy.$modal.msgSuccess(language.value==0?'修改成功':'password is changed!')
userStore.logOut().then(() => {
setTimeout(() => {
......@@ -94,7 +94,7 @@ function submit() {
})
}
})
};
}
</script>
......
......@@ -213,16 +213,16 @@ const {
} = toRefs(data)
let matchId = ''
const user = useUserStore().user
const uType = ref('')
const group = useUserStore().group || {}
onMounted(() => {
matchId = route.query.matchId
groupId.value = route.query.groupId || 0
groupId.value = group.id
signType.value = route.query.signType || ''
getList()
})
function getList() {
console.log(user.utype)
if (user.utype == '1') {
geren()
}
......
......@@ -45,7 +45,7 @@
</el-col>
<el-col :lg="12">
<el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId" required>
<el-select v-model="form.countryId" style="width: 100%;" @change="changeCountryId">
<el-select filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId">
<el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>
</el-select>
</el-form-item>
......
......@@ -11,7 +11,7 @@
<el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/>
<el-table-column :label="language==0?'手机号码':'Phone Number'" prop="phone" width="120"/>
<el-table-column :label="language==0?'邮箱':'E-mail'" prop="email" width="150"/>
<el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" :min-width="language==0?'60':'160'"/>
<el-table-column :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" :min-width="language==0?'80':'160'"/>
<el-table-column :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/>
<el-table-column :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin" width="200"/>
<el-table-column :label="language==0?'会员角色':'Role'" width="150">
......
<template>
<el-row :gutter="14" v-if="language==0">
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn04.png"/>
<h4>票务预订</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn01.png"/>
<h4>酒店预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn02.png"/>
<h4>车辆预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn03.png"/>
<h4>餐饮预订</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn05.png"/>
<h4>化妆预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn06.png"/>
<h4>拍照预约</h4>
</div>
</el-col>
</el-row>
<el-row :gutter="14" v-else>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn04.png"/>
<h4>Ticket Booking</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn01.png"/>
<h4>Hotel Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn02.png"/>
<h4>Vehicle Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn03.png"/>
<h4>Dining Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn05.png"/>
<h4>Makeup Appointment</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn06.png"/>
<h4>Photography Appointment</h4>
</div>
</el-col>
</el-row>
</template>
<script setup>
import {ElMessage} from "element-plus";
import cache from "@/plugins/cache";
const language = ref(cache.local.get('language') || 0)
function building() {
ElMessage.warning('Building!')
}
</script>
<style scoped>
</style>
......@@ -38,44 +38,7 @@
</el-row>
</el-card>
<el-row gutter="14">
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn04.png"/>
<h4>票务预订</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn01.png"/>
<h4>酒店预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn02.png"/>
<h4>车辆预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn03.png"/>
<h4>餐饮预订</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn05.png"/>
<h4>化妆预约</h4>
</div>
</el-col>
<el-col :lg="4">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn06.png"/>
<h4>拍照预约</h4>
</div>
</el-col>
</el-row>
<quick-row/>
<el-row :gutter="20" v-if="matchData.type=='0'">
<el-col :lg="18">
......@@ -203,6 +166,7 @@ import * as match from '@/apiPc/match'
import { toRefs } from '@vueuse/shared'
import {dayjs, ElMessage} from 'element-plus'
import useUserStore from "@/store/modules/user";
import QuickRow from "@/viewsPc/match/components/quick-row";
const data = reactive({
matchData: {},
matchId: 0,
......
<template>
<div class="app-container">
<div class="app-container" v-loading="loading">
<div class="mt30" />
<div class="box mb20 ">
<el-card class="mb20">
......@@ -32,51 +32,14 @@
</van-count-down>
<div class="flexCenter">
<el-button type="primary" round size="large" class="btn-lineG mb20 mt30 w100"
<el-button ref="RegisterRef" type="primary" round size="large" class="btn-lineG mb20 mt30 w100"
@click="choseSignType" style="font-size: 16px">Register</el-button>
</div>
</el-col>
</el-row>
</el-card>
<el-row gutter="14">
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn04.png"/>
<h4>Ticket Booking</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn01.png"/>
<h4>Hotel Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn02.png"/>
<h4>Vehicle Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn03.png"/>
<h4>Dining Reservation</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn05.png"/>
<h4>Makeup Appointment</h4>
</div>
</el-col>
<el-col :lg="4" :md="8" :xs="12">
<div class="funcBtn" @click="building">
<img src="@/assets/dance/btn06.png"/>
<h4>Photography Appointment</h4>
</div>
</el-col>
</el-row>
<quick-row/>
<el-row :gutter="20" v-if="matchData.type=='0'">
<el-col :lg="18">
......@@ -198,7 +161,6 @@ import SubstationList from "@/viewsPc/match/components/substation-list";
import { getCurrentInstance, ref } from 'vue'
import { reactive, onMounted } from '@vue/runtime-core'
import { useRoute, useRouter } from 'vue-router'
const route = useRoute()
const router = useRouter()
const { proxy } = getCurrentInstance()
......@@ -206,9 +168,11 @@ import * as match from '@/apiPc/match'
import { toRefs } from '@vueuse/shared'
import {dayjs, ElMessage} from 'element-plus'
import useUserStore from "@/store/modules/user";
import QuickRow from "@/viewsPc/match/components/quick-row";
const user = useUserStore().user || {}
const group = useUserStore().group || {}
const data = reactive({
loading:false,
matchData: {},
matchId: 0,
groupId: '',
......@@ -220,7 +184,7 @@ const data = reactive({
signDoneGroupList: [],
time:''
})
const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList,time} = toRefs(data)
const {loading,matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList,time} = toRefs(data)
onMounted(() => {
if(group){
groupId.value = group.id
......@@ -237,13 +201,12 @@ onMounted(() => {
getGroupListByCptId(matchId.value)
})
})
function building() {
ElMessage.warning('Building!')
}
function getMatch(id) {
if(id!=0)
match.getMatchById({ id: id }).then(res => {
function getMatch() {
loading.value = true
match.getMatchById({ id: matchId.value }).then(res => {
matchData.value = res.data
loading.value = false
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond')
})
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!