赛事等修复

dev_2022-06-14
yujialong 2 years ago
parent e9cb257741
commit 0e5454378a
  1. 64
      src/components/breadcrumb/index.vue
  2. 2
      src/setting.js
  3. 2
      src/views/join/index.vue
  4. 38
      src/views/match/add/index.vue
  5. 14
      src/views/match/manage/matchSignup.vue
  6. 103
      src/views/match/preview/index.vue
  7. 10
      src/views/order/AddOrder.vue
  8. 2
      src/views/system/manageLog.vue

@ -0,0 +1,64 @@
<template>
<!-- 面包屑 -->
<div class="breadcrumb">
<el-breadcrumb separator=">">
<template v-for="(item, index) in pages">
<el-breadcrumb-item
v-if="index != pages.length - 1"
:key="index"
:to="{ path: route, query }">
{{item}}
</el-breadcrumb-item>
<el-breadcrumb-item
v-else
:key="index">
{{item}}
</el-breadcrumb-item>
</template>
</el-breadcrumb>
</div>
</template>
<script>
export default {
props: {
data: {
type: String,
required: true
},
route: {
type: String,
default: 'list'
},
query: {
type: Object
}
},
data() {
return {
pages: this.data.split('/')
};
},
methods: {
update(data){
this.pages = data.split('/')
}
}
};
</script>
<style lang="scss" scoped>
.breadcrumb {
margin: 4px 0 16px;
/deep/.el-breadcrumb__item {
.is-link, .el-breadcrumb__separator {
font-weight: 400;
color: #007EFF;
}
&:last-child {
.is-link {
color: #0B1D30;
}
}
}
}
</style>

@ -10,7 +10,7 @@ let host = `${location.origin}/`
if (isDev) { if (isDev) {
jumpPath = 'http://192.168.31.125:8087/' // 本地调试-需要启动本地判分点系统 jumpPath = 'http://192.168.31.125:8087/' // 本地调试-需要启动本地判分点系统
host = 'http://121.37.12.51/' host = 'http://121.37.12.51/'
// host = 'http://192.168.31.151:9000/'// 榕 host = 'http://192.168.31.151:9000/'// 榕
// host = 'http://192.168.31.137:9000/'// 赓 // host = 'http://192.168.31.137:9000/'// 赓
} else if (isPro) { } else if (isPro) {
jumpPath = 'https://www.huorantech.cn/judgmentPoint/' jumpPath = 'https://www.huorantech.cn/judgmentPoint/'

@ -18,7 +18,7 @@
<el-input v-model.trim="form.userName" placeholder="请输入姓名" :disabled="repeat"></el-input> <el-input v-model.trim="form.userName" placeholder="请输入姓名" :disabled="repeat"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="account"> <el-form-item prop="account">
<el-input v-model.trim="form.account" placeholder="请输入账号" :disabled="repeat"></el-input> <el-input v-model.trim="form.account" placeholder="请设置你的账号" :disabled="repeat"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="code"> <el-form-item prop="code">
<div class="ver-code"> <div class="ver-code">

@ -149,7 +149,10 @@
:props="props" :props="props"
:show-all-levels="false" :show-all-levels="false"
clearable clearable
filterable></el-cascader> filterable
:before-filter="beforeFilter"
:options="rangeList"
@input.native="rangeSearch"></el-cascader>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" @click="rangeVisible = false"> </el-button> <el-button size="small" @click="rangeVisible = false"> </el-button>
<el-button size="small" type="primary" @click="rangeSubmit"> </el-button> <el-button size="small" type="primary" @click="rangeSubmit"> </el-button>
@ -211,9 +214,10 @@ export default {
checkStrictly: true, checkStrictly: true,
lazy: true, lazy: true,
lazyLoad (node, resolve) { lazyLoad (node, resolve) {
const input = document.querySelector('.el-cascader__search-input')
if (input && input.value) return false
const { level, value } = node const { level, value } = node
// //
console.log('lazy', node, that.range)
if (!level) { if (!level) {
that.$get(that.api.queryProvince).then(({ list }) => { that.$get(that.api.queryProvince).then(({ list }) => {
const data = [] const data = []
@ -265,6 +269,9 @@ export default {
}, },
submiting: false, submiting: false,
updateTime: 0, updateTime: 0,
rangeTimer: null,
schools: [],
rangeList: []
}; };
}, },
components: { components: {
@ -301,6 +308,7 @@ export default {
}, },
mounted() { mounted() {
this.getData() this.getData()
this.getSchool()
}, },
methods: { methods: {
getData() { getData() {
@ -336,7 +344,6 @@ export default {
range.push(item) range.push(item)
}) })
this.range = range this.range = range
console.log("🚀 ~ file: matchDetail.vue ~ line 327 ~ this.$post ~ this.range", this.range)
} }
// name // name
@ -354,13 +361,26 @@ export default {
// //
showRange() { showRange() {
this.rangeVisible = true this.rangeVisible = true
console.log("🚀 ~ file: index.vue ~ line 384 ~ showRange ~ rangeVisible", this.range)
// this.range = this.rangeInit
}, },
// //
rangeFilter(node, keyword) { getSchool() {
console.log("🚀 ~ file: index.vue ~ line 363 ~ rangeFilter ~ node, keyword", node, keyword) this.$get(this.api.querySchoolData).then(({ list }) => {
list.map(e => e.label = e.schoolName)
this.schools = list
}).catch(res => {})
},
//
beforeFilter() {
return false
},
//
rangeSearch(el) {
clearTimeout(this.rangeTimer)
this.rangeTimer = setTimeout(() => {
const val = el.target.value
let result = this.schools.filter(e => e.schoolName.includes(val)) //
this.rangeList = val ? result : []
}, 500)
}, },
// //
rangeSubmit() { rangeSubmit() {

@ -9,13 +9,12 @@
</li> </li>
</ul> </ul>
<div> <div>
<el-button type="primary" round @click="exportAll">全部导出</el-button> <el-button type="primary" round @click="exportAll">导出</el-button>
<el-button type="primary" round @click="exportBatch">批量导出</el-button>
</div> </div>
</div> </div>
<el-table ref="table" :data="listData" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> <el-table ref="table" :data="listData" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id">
<el-table-column type="selection" :selectable="row => row.isDisable!=1" width="80" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="selection" width="80" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="index" width="60" label="序号" align="center"> <el-table-column type="index" width="60" label="序号" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + (page - 1) * pageSize + 1 }} {{ scope.$index + (page - 1) * pageSize + 1 }}
@ -29,7 +28,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="phone" label="手机号"> <el-table-column prop="phone" label="手机号">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="170"> <!-- <el-table-column label="操作" align="center" width="170">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.isDisable" v-model="scope.row.isDisable"
@ -40,7 +39,7 @@
@change="switchOff($event,scope.row,scope.$index)" @change="switchOff($event,scope.row,scope.$index)"
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :total="totals" @current-change="handleCurrentChange" :current-page="page"> <el-pagination background layout="total, prev, pager, next" :total="totals" @current-change="handleCurrentChange" :current-page="page">
@ -131,9 +130,6 @@ export default {
} }
}, },
exportAll() { exportAll() {
location.href = `${this.api.excelExport}?contestId=${this.id}`;
},
exportBatch() {
const data = this.multipleSelection const data = this.multipleSelection
if (data.length) { if (data.length) {
data.map((e, i) => e.id = i + 1) data.map((e, i) => e.id = i + 1)
@ -146,7 +142,7 @@ export default {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => {}) }).catch(res => {})
} else { } else {
util.errorMsg("请先选择数据 !"); location.href = `${this.api.excelExport}?contestId=${this.id}`
} }
} }
} }

@ -1,37 +1,65 @@
<template> <template>
<div class="match"> <div class="match">
<div class="banner" :style="{backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')'}"></div> <div class="banner" :style="{backgroundImage: 'url(' + (form.carouselUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220613/png/1536269450851409920.png') + ')'}"></div>
<div class="match-inner"> <div class="center">
<div class="info"> <breadcrumb ref="breadcrumb" :data="'全部赛事/' + form.name" route="matchPreview"></breadcrumb>
<h6 class="title">{{ form.name }}</h6> <div class="match-inner">
<div class="meta">最近编辑时间{{ form.updateTime }}</div> <div class="flex-between">
</div> <el-tabs v-model="curType">
<el-tab-pane v-for="(item, index) in typeList" :key="index" :label="item.name" :name="item.id"></el-tab-pane>
</el-tabs>
<div class="status wait">等待报名</div>
</div>
<div class="info">
<h6 class="title">{{ form.name }}</h6>
<div class="meta">最近编辑时间{{ form.updateTime }}</div>
</div>
<div class="l-title" id="part1"><img src="@/assets/img/label.png" alt=""> 竞赛信息</div> <div class="l-title" id="part1"><img src="@/assets/img/label.png" alt=""> 竞赛信息</div>
<div v-if="form.description" class="texts ql-editor" v-html="form.description"></div> <div v-if="form.description" class="texts ql-editor" v-html="form.description"></div>
<template v-if="form.contestAnnexList"> <template v-if="form.contestAnnexList && form.contestAnnexList.length">
<h6 class="p-title">附件下载</h6> <h6 class="p-title">附件下载</h6>
<ul class="files"> <ul class="files">
<li v-for="(item, i) in form.contestAnnexList" :key="i"> <li v-for="(item, i) in form.contestAnnexList" :key="i">
<el-link v-if="item.canPreview" class="m-r-10" type="primary" @click="previewFile(item)">{{ item.fileName }}</el-link> <el-link v-if="item.canPreview" class="m-r-10" type="primary" @click="previewFile(item)">{{ item.fileName }}</el-link>
<span v-else class="file-name">{{ item.fileName }}</span> <span v-else class="file-name">{{ item.fileName }}</span>
<el-link type="primary" :underline="false" @click="download(item)">下载</el-link> <el-link type="primary" :underline="false" @click="download(item)">下载</el-link>
</li> </li>
</ul> </ul>
</template> </template>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import util from "@/libs/util"; import util from "@/libs/util";
import breadcrumb from '@/components/breadcrumb'
export default { export default {
name: "match", name: "match",
data() { data() {
return { return {
curType: '1',
typeList: [
{
id: '1',
name: '竞赛信息'
},
{
id: '2',
name: '竞赛进展'
},
{
id: '3',
name: '通知公告'
}
],
form: util.local.get('match') form: util.local.get('match')
}; };
}, },
components: {
breadcrumb
},
mounted() { mounted() {
this.handleAnnex() this.handleAnnex()
}, },
@ -63,6 +91,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.match { .match {
min-height: 100%;
background-color: #F3F6FA;
.banner{ .banner{
width: 100%; width: 100%;
height: 350px; height: 350px;
@ -71,14 +101,27 @@ export default {
background-repeat: no-repeat; background-repeat: no-repeat;
box-sizing: border-box; box-sizing: border-box;
} }
.match-inner { .center {
width: 1000px; width: 1000px;
margin: 40px auto 0;
}
.match-inner {
min-height: calc(100vh - 465px); min-height: calc(100vh - 465px);
padding: 30px 40px 20px; padding: 30px 40px 20px;
margin: 40px auto 0;
background-color: #fff; background-color: #fff;
box-sizing: border-box; box-sizing: border-box;
} }
/deep/.el-tabs {
.el-tabs__item.is-active, .el-tabs__item:hover {
color: #007EFF;
}
.el-tabs__active-bar {
background-color: #007EFF;
}
}
.p-title {
border-left-color: #007EFF;
}
.l-title{ .l-title{
display: flex; display: flex;
align-items: center; align-items: center;
@ -89,6 +132,28 @@ export default {
margin-right: 5px; margin-right: 5px;
} }
} }
.status {
padding: 0 16px;
margin-left: 20px;
line-height: 34px;
font-size: 14px;
color: #fff;
background-color: #52C41A;
border-radius: 4px;
cursor: pointer;
&.wait {
background-color: #FAAD14;
}
&.signing {
background-color: #007EFF;
}
&.signed {
background-color: #52C41A;
}
&.finish {
background-color: #ccc;
}
}
.title{ .title{
width: 67%; width: 67%;
margin: 0 auto; margin: 0 auto;

@ -233,7 +233,7 @@
3处理中的订单显示发货不显示禁用 3处理中的订单显示发货不显示禁用
--> -->
<el-switch <el-switch
v-if="scope.row.status === 1 || dispose || isAdd" v-if="scope.row.status === 1 || !scope.row.ship"
style="margin-right:10px;" style="margin-right:10px;"
v-model="scope.row.ship" v-model="scope.row.ship"
:active-value="1" :active-value="1"
@ -243,7 +243,7 @@
@change="handleDeliver($event,scope.row)"> @change="handleDeliver($event,scope.row)">
</el-switch> </el-switch>
<el-switch <el-switch
v-if="!dispose && (scope.row.status === 2 || scope.row.status === 3)" v-else
:disabled="viewDisabled || scope.row.status === 3" :disabled="viewDisabled || scope.row.status === 3"
v-model="scope.row.isEnable" v-model="scope.row.isEnable"
:active-value="1" :active-value="1"
@ -406,7 +406,7 @@
style="margin-right:10px;" style="margin-right:10px;"
>删除</el-button> >删除</el-button>
<el-switch <el-switch
v-if="scope.row.status === 1 || dispose || isAdd" v-if="scope.row.status === 1 || !scope.row.ship"
style="margin-right:10px;" style="margin-right:10px;"
v-model="scope.row.ship" v-model="scope.row.ship"
:active-value="1" :active-value="1"
@ -415,7 +415,7 @@
@change="handleDeliver($event,scope.row)"> @change="handleDeliver($event,scope.row)">
</el-switch> </el-switch>
<el-switch <el-switch
v-if="!dispose && (scope.row.status === 2 || scope.row.status === 3)" v-else
:disabled="viewDisabled" :disabled="viewDisabled"
v-model="scope.row.isEnable" v-model="scope.row.isEnable"
:active-value="1" :active-value="1"
@ -966,7 +966,7 @@ export default {
if (e.status === 3) e.isEnable = 0 // if (e.status === 3) e.isEnable = 0 //
return e; return e;
});// });//
console.log(33, list)
this.coursePermissions = list.filter(i => i.authority === 1); this.coursePermissions = list.filter(i => i.authority === 1);
this.dataPlatformPermissions = list.filter(i => i.authority === 0); this.dataPlatformPermissions = list.filter(i => i.authority === 0);
}, },

@ -42,7 +42,7 @@
</span> </span>
</div> </div>
<div> <div>
<template v-if="!i && item.withdrawNum !== 1"> <template v-if="!i && item.withdrawNum !== 1 && item.draft !== 1">
<span class="withdraw" v-if="item.withdraw && item.open">已撤回</span> <span class="withdraw" v-if="item.withdraw && item.open">已撤回</span>
<el-button v-else style="margin-right: 10px" type="primary" size="small" @click="revoke(item)">撤销</el-button> <el-button v-else style="margin-right: 10px" type="primary" size="small" @click="revoke(item)">撤销</el-button>
</template> </template>

Loading…
Cancel
Save