Merge pull request !15 from Sky_ID/lwh
This commit is contained in:
Sky_ID 2022-06-17 03:32:34 +00:00 committed by Gitee
commit 6f9ed8c658
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 302 additions and 86 deletions

View File

@ -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;
},

View File

@ -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;

View File

@ -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/>

View File

@ -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
}