commit
6f9ed8c658
|
@ -40,7 +40,7 @@
|
|||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleEdit(scope.row.compId, scope.row)">编辑</el-button>
|
||||
@click="goToDetails(scope.row.compId)">编辑</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
|
@ -66,6 +66,7 @@
|
|||
|
||||
<script>
|
||||
import {Message} from "element-ui";
|
||||
import PageUtils from "@/utils/pageUtils";
|
||||
|
||||
export default {
|
||||
name: "compTable",
|
||||
|
@ -83,6 +84,9 @@ export default {
|
|||
}
|
||||
},
|
||||
methods:{
|
||||
goToDetails(compId){
|
||||
PageUtils.openPage(this.$parent.$parent.$router,"/admin/compEdit/" + compId)
|
||||
},
|
||||
filterTag(value, row) {
|
||||
return row.online === value;
|
||||
},
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div>
|
||||
<el-form label-position="right" label-width="80px" :model="compInfo" :rules="rules">
|
||||
<el-form-item label="竞赛ID" prop="compId">
|
||||
<el-input v-model="compInfo.compId"></el-input>
|
||||
<el-input disabled v-model="compInfo.compId"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞赛名称" prop="compName">
|
||||
<el-input v-model="compInfo.compName"></el-input>
|
||||
|
@ -21,23 +21,31 @@
|
|||
<el-form-item label="Banner图" prop="compBanner">
|
||||
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
class="upload-banner"
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="bannerData"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过2Mb</div>
|
||||
<img :src="compInfo.compBanner" v-if="compInfo.compBanner" style="width: 800px"/>
|
||||
<i class="el-icon-plus uploader-icon" v-else></i>
|
||||
</el-upload>
|
||||
|
||||
<!-- <el-input v-model="compInfo.compBanner"></el-input>-->
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="是否上线" prop="online">
|
||||
<el-switch v-model="compInfo.online"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="排行榜" prop="rank">
|
||||
<el-switch v-model="compInfo.rank"></el-switch>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="数据统计" prop="rank">
|
||||
<el-switch v-model="compInfo.chart"></el-switch>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('comp')">保存</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
@ -50,16 +58,16 @@
|
|||
<div>
|
||||
<el-form label-position="right" label-width="80px" :model="homeInfo" :rules="rules">
|
||||
|
||||
|
||||
<el-form-item label="首页视频" prop="compBanner">
|
||||
|
||||
<el-input v-model="homeInfo.video"></el-input>
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="videoData"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<el-button size="small" type="primary">点击上传</el-button>
|
||||
<!-- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>-->
|
||||
<!-- <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过2Mb</div>-->
|
||||
</el-upload>
|
||||
|
||||
|
@ -70,7 +78,7 @@
|
|||
<el-switch v-model="homeInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('home')">保存</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
@ -89,7 +97,7 @@
|
|||
<el-switch v-model="guideInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('guide')">保存</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
@ -102,13 +110,8 @@
|
|||
<el-form label-position="right" label-width="80px" :model="guideInfo" :rules="rules">
|
||||
|
||||
|
||||
|
||||
|
||||
<el-form-item label="是否显示" prop="show">
|
||||
<el-switch v-model="noticeInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-switch disabled v-model="noticeInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
@ -133,54 +136,25 @@
|
|||
<div>
|
||||
<h4>提案提交信息</h4>
|
||||
<div>
|
||||
<el-form label-position="right" label-width="80px" :model="submitInfo" :rules="rules">
|
||||
<el-form label-position="right" label-width="80px" :model="submitCust" :rules="rules">
|
||||
|
||||
<el-form-item label="是否显示" prop="show">
|
||||
<el-switch disabled v-model="submitInfo.show"></el-switch>
|
||||
<el-switch disabled v-model="submitCust.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="在线脚本" prop="onlineScript">
|
||||
<el-switch v-model="submitInfo.onlineScript"></el-switch>
|
||||
<el-switch v-model="submitCust.onlineScript"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="脚本接口" prop="onlineInter" v-if="submitInfo.onlineScript">
|
||||
<el-input v-model="submitInfo.onlineInter"></el-input>
|
||||
<el-form-item label="脚本接口" prop="onlineInter" v-if="submitCust.onlineScript">
|
||||
<el-input v-model="submitCust.onlineInter"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('submit')">保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<div>
|
||||
<h4>数据统计信息</h4>
|
||||
<div>
|
||||
<el-form label-position="right" label-width="80px" :model="chartInfo" :rules="rules">
|
||||
|
||||
<el-form-item label="是否显示" prop="show">
|
||||
<el-switch v-model="chartInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<div>
|
||||
<h4>排行榜</h4>
|
||||
<div>
|
||||
<el-form label-position="right" label-width="80px" :model="rankInfo" :rules="rules">
|
||||
|
||||
<el-form-item label="是否显示" prop="show">
|
||||
<el-switch v-model="rankInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider></el-divider>
|
||||
<div>
|
||||
<h4>交流互动信息</h4>
|
||||
<div>
|
||||
|
@ -190,9 +164,12 @@
|
|||
<el-upload
|
||||
class="upload-demo"
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="chatData"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-upload"></i>
|
||||
<img :src="chatInfo.imgUrl" v-if="chatInfo.imgUrl" style="height: 180px">
|
||||
<i class="el-icon-upload" v-else></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
|
@ -205,9 +182,12 @@
|
|||
<el-upload
|
||||
class="upload-icon "
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="chatIconData1"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-plus uploader-icon"></i>
|
||||
<img :src="chatInfo.logoOne" v-if="chatInfo.logoOne">
|
||||
<i class="el-icon-plus uploader-icon" v-else></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="选手交流链接" prop="urlOne" >
|
||||
|
@ -217,9 +197,12 @@
|
|||
<el-upload
|
||||
class="upload-icon "
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="chatIconData2"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-plus uploader-icon"></i>
|
||||
<img :src="chatInfo.logoTwo" v-if="chatInfo.logoTwo">
|
||||
<i class="el-icon-plus uploader-icon" v-else></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="专家答疑链接" prop="urlOne" >
|
||||
|
@ -229,9 +212,12 @@
|
|||
<el-upload
|
||||
class="upload-icon "
|
||||
drag
|
||||
action="https://jsonplaceholder.typicode.com/posts/"
|
||||
action="/api/comp/uploadImg"
|
||||
:data="chatIconData3"
|
||||
:on-success="uploadSuccess"
|
||||
multiple>
|
||||
<i class="el-icon-plus uploader-icon"></i>
|
||||
<img :src="chatInfo.logoThree" v-if="chatInfo.logoThree">
|
||||
<i class="el-icon-plus uploader-icon" v-else></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
|
||||
|
@ -241,7 +227,7 @@
|
|||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('chat')">保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -250,7 +236,7 @@
|
|||
<div>
|
||||
<h4>联系我们信息</h4>
|
||||
<div>
|
||||
<el-form label-position="right" label-width="100px" :model="chatInfo" :rules="rules">
|
||||
<el-form label-position="right" label-width="100px" :model="contactInfo" :rules="rules">
|
||||
|
||||
<el-form-item label="联系我们图" prop="imgUrl">
|
||||
<el-upload
|
||||
|
@ -267,11 +253,11 @@
|
|||
|
||||
|
||||
<el-form-item label="是否显示" prop="show">
|
||||
<el-switch v-model="chatInfo.show"></el-switch>
|
||||
<el-switch v-model="contactInfo.show"></el-switch>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" >保存</el-button>
|
||||
<el-button type="primary" @click="saveData('contact')">保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -286,10 +272,36 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {Message} from "element-ui";
|
||||
|
||||
export default {
|
||||
name: "CompEdit",
|
||||
data(){
|
||||
return{
|
||||
chatIconData1:{
|
||||
fileName : this.$route.params.compId + '-chatImg1-',
|
||||
type: 'chat1'
|
||||
},
|
||||
chatIconData2:{
|
||||
fileName : this.$route.params.compId + '-chatImg2-',
|
||||
type: 'chat2'
|
||||
},
|
||||
chatIconData3:{
|
||||
fileName : this.$route.params.compId + '-chatImg3-',
|
||||
type: 'chat3'
|
||||
},
|
||||
chatData:{
|
||||
fileName : this.$route.params.compId + '-chatImg-',
|
||||
type: 'chat'
|
||||
},
|
||||
videoData:{
|
||||
fileName : this.$route.params.compId + '-video-',
|
||||
type: 'video'
|
||||
},
|
||||
bannerData:{
|
||||
fileName : this.$route.params.compId + '-banner-',
|
||||
type: 'banner'
|
||||
},
|
||||
rules: {
|
||||
compId: [
|
||||
{ required: true, message: '请输入竞赛ID', trigger: 'blur' },
|
||||
|
@ -303,7 +315,9 @@ export default {
|
|||
compId:'',
|
||||
compName:"",
|
||||
compBanner:"",
|
||||
online:false
|
||||
online:false,
|
||||
rank:'',
|
||||
chart:''
|
||||
},
|
||||
homeInfo:{
|
||||
compId:'',
|
||||
|
@ -311,29 +325,27 @@ export default {
|
|||
show:false
|
||||
},
|
||||
guideInfo:{
|
||||
compId:'',
|
||||
content:'',
|
||||
contentMd:'',
|
||||
show: false
|
||||
},
|
||||
noticeInfo:{
|
||||
show: false,
|
||||
},
|
||||
applyInfo:{
|
||||
|
||||
compId:'',
|
||||
show: true,
|
||||
},
|
||||
submitInfo:{
|
||||
applyInfo:{
|
||||
compId:'',
|
||||
show: true,
|
||||
},
|
||||
submitCust:{
|
||||
compId:'',
|
||||
show: true,
|
||||
onlineScript: false,
|
||||
onlineInter:'',
|
||||
},
|
||||
chartInfo:{
|
||||
show: false,
|
||||
},
|
||||
rankInfo:{
|
||||
show: false,
|
||||
},
|
||||
chatInfo:{
|
||||
compId:'',
|
||||
show: true,
|
||||
urlOne:"",
|
||||
urlTwo:"",
|
||||
|
@ -342,14 +354,90 @@ export default {
|
|||
logoTwo:"",
|
||||
logoThree:"",
|
||||
imgUrl:"",
|
||||
},
|
||||
contactInfo:{
|
||||
compId:'',
|
||||
show: false,
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
uploadSuccess(response){
|
||||
if (response.status == 0) {
|
||||
Message.success("上传成功")
|
||||
switch (response.type){
|
||||
case 'banner':
|
||||
this.compInfo.compBanner = response.url
|
||||
break;
|
||||
case 'video':
|
||||
this.homeInfo.video = response.url
|
||||
break;
|
||||
case 'chat':
|
||||
this.chatInfo.imgUrl = response.url
|
||||
break;
|
||||
|
||||
case 'chat1':
|
||||
this.chatInfo.logoOne = response.url
|
||||
break;
|
||||
case 'chat2':
|
||||
this.chatInfo.logoTwo = response.url
|
||||
break;
|
||||
case 'chat3':
|
||||
this.chatInfo.logoThree = response.url
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
saveData(type){
|
||||
var compInfo = this.compInfo
|
||||
var chatInfo = this.chatInfo
|
||||
var guideInfo = this.guideInfo
|
||||
var submitCust = this.submitCust
|
||||
var contactInfo = this.contactInfo
|
||||
var homeInfo = this.homeInfo
|
||||
var updateDataVo ={
|
||||
compInfo,
|
||||
chatInfo,
|
||||
guideInfo,
|
||||
submitCust,
|
||||
contactInfo,
|
||||
homeInfo
|
||||
}
|
||||
this.$api.updateData(type,updateDataVo).then((res) =>{
|
||||
if (res.status == 0) {
|
||||
Message.success("保存成功")
|
||||
}else if (res.status == 10){
|
||||
Message.error("保存失败")
|
||||
}else {
|
||||
Message.error("权限不足或其他错误")
|
||||
}
|
||||
})
|
||||
},
|
||||
initPage(){
|
||||
var compId = this.$route.params.compId
|
||||
var compInfo = {
|
||||
compId
|
||||
}
|
||||
this.$api.getCompById(compInfo).then((res) => {
|
||||
if (res.status == 0) {
|
||||
//正常
|
||||
this.compInfo = res.compInfo
|
||||
this.chatInfo = res.chatInfo
|
||||
this.contactInfo = res.contactInfo
|
||||
this.homeInfo = res.homeInfo
|
||||
this.submitCust = res.submitCust
|
||||
this.guideInfo = res.guideInfo
|
||||
}else if (res.status == 10){
|
||||
Message.error("系统错误")
|
||||
}else {
|
||||
Message.error("权限不足或其他错误")
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initPage()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -359,7 +447,22 @@ export default {
|
|||
.card-style{
|
||||
margin: 20px;
|
||||
}
|
||||
.upload-banner{
|
||||
/deep/.el-upload-dragger{
|
||||
width: 800px;
|
||||
height: 183px;
|
||||
text-align: center;
|
||||
align-items: center; /* 水平居中 */
|
||||
justify-content: center !important; /* 垂直居中 */
|
||||
}
|
||||
.uploader-icon {
|
||||
|
||||
width: 800px;
|
||||
height: 183px;
|
||||
line-height: 183px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.upload-icon {
|
||||
/deep/.el-upload-dragger{
|
||||
width: 100px;
|
||||
|
|
|
@ -6,10 +6,27 @@
|
|||
</el-breadcrumb>
|
||||
|
||||
<div style="margin-bottom: 10px; text-align: right">
|
||||
<el-button plain @click="goToEdit">新增竞赛</el-button>
|
||||
<el-button plain @click="dialogVisible = true">新增竞赛</el-button>
|
||||
</div>
|
||||
<el-dialog
|
||||
title="新增竞赛"
|
||||
:visible.sync="dialogVisible"
|
||||
width="50%"
|
||||
:before-close="handleClose">
|
||||
<el-form label-position="top" label-width="80px" :model="compInfo" :rules="rules" style="text-align: left">
|
||||
<el-form-item label="竞赛ID" prop="compId">
|
||||
<el-input placeholder="竞赛ID (不可修改 请谨慎填写)" v-model="compInfo.compId"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞赛名称" prop="compName">
|
||||
<el-input placeholder="竞赛名称" v-model="compInfo.compName"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitComp">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<div class="card-admin">
|
||||
<comp-table style="margin: 20px;">
|
||||
<comp-table ref="table" style="margin: 20px;">
|
||||
</comp-table>
|
||||
</div>
|
||||
|
||||
|
@ -19,9 +36,61 @@
|
|||
|
||||
<script>
|
||||
import CompTable from "@/components/compTable";
|
||||
import {Message} from "element-ui";
|
||||
|
||||
export default {
|
||||
name: "CompManage",
|
||||
components: {CompTable}
|
||||
components: {CompTable},
|
||||
data(){
|
||||
return{
|
||||
rules: {
|
||||
compId: [
|
||||
{ required: true, message: '请输入竞赛ID', trigger: 'blur' },
|
||||
],
|
||||
compName: [
|
||||
{ required: true, message: '请输入竞赛名称', trigger: 'blur' }
|
||||
],
|
||||
|
||||
},
|
||||
dialogVisible: false,
|
||||
compInfo:{
|
||||
compId:'',
|
||||
compName:"",
|
||||
online:false
|
||||
},
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
|
||||
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
this.compInfo.compName = ''
|
||||
this.compInfo.compId = ''
|
||||
},
|
||||
submitComp(){
|
||||
//检测是否等于有空
|
||||
if (this.compInfo.compId != '' && this.compInfo.compName != '') {
|
||||
//提交数据
|
||||
this.$api.initComp(this.compInfo).then((res) =>{
|
||||
console.log(res)
|
||||
if (res.status == 0) {
|
||||
Message.success("新增竞赛成功")
|
||||
this.dialogVisible = false
|
||||
this.compInfo.compName = ''
|
||||
this.compInfo.compId = ''
|
||||
this.$refs.table.initPage()
|
||||
}else if (res.status == 10){
|
||||
Message.error("系统错误 新增失败")
|
||||
}else {
|
||||
Message.error("权限不足或其他错误")
|
||||
}
|
||||
})
|
||||
}else {
|
||||
Message.warning("请完善内容")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style src="@/assets/css/common.css" scoped/>
|
||||
|
|
|
@ -99,6 +99,43 @@ export const getAllComp = () => {
|
|||
method: 'get'
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
export const initComp = (data) => {
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/admin/initComp',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
export const getCompById = (data) => {
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/admin/getCompById',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
export const updateData = (type,data) => {
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/admin/updateData/' + type,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
};
|
||||
|
||||
// 默认全部倒出
|
||||
// 根据需要进行
|
||||
export default {
|
||||
|
@ -111,5 +148,8 @@ export default {
|
|||
chatContentUpdate,
|
||||
homeContentUpdate,
|
||||
getUserDataByUserId,
|
||||
getAllComp
|
||||
getAllComp,
|
||||
initComp,
|
||||
getCompById,
|
||||
updateData
|
||||
}
|
Loading…
Reference in New Issue