|
|
@@ -1,12 +1,27 @@
|
|
|
<style lang="scss" scoped>
|
|
|
.preview {
|
|
|
- .el-form-item {
|
|
|
- margin-bottom: 15px;
|
|
|
- }
|
|
|
- label,
|
|
|
- p {
|
|
|
- line-height: 25px !important;
|
|
|
+ .aname{
|
|
|
+ text-align: center;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ color: #333;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ .ainfo{
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ p{
|
|
|
+ width: 60%;
|
|
|
+ margin-left: 15px;
|
|
|
+ line-height: 26px;
|
|
|
}
|
|
|
+ }
|
|
|
+ b{
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ div{
|
|
|
+ line-height: 26px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
.content .title {
|
|
|
height: 32px;
|
|
|
@@ -98,10 +113,10 @@
|
|
|
<template>
|
|
|
<section>
|
|
|
<p><span>活动管理></span>新增活动</p>
|
|
|
- <div class="content">
|
|
|
+ <div class="content" v-loading='loading' element-loading-background="rgba(0, 0, 0, 0)">
|
|
|
<!-- <div class="title">新增会议</div> -->
|
|
|
- <el-form size="small" label-width="140px" class='over_y'>
|
|
|
- <el-form-item label="发布单位:">
|
|
|
+ <el-form size="small" label-width="140px" class='over_y' ref="form" :model="form" :rules="rules">
|
|
|
+ <el-form-item label="发布单位:" prop='journal_id' >
|
|
|
<el-select placeholder="请选择发布单位" v-model="form.journal_id" filterable>
|
|
|
<el-option
|
|
|
v-for="(item, index) in journalList"
|
|
|
@@ -111,7 +126,7 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="活动名称:">
|
|
|
+ <el-form-item label="活动名称:" prop='name' >
|
|
|
<el-input
|
|
|
placeholder="请输入活动名称"
|
|
|
v-model="form.name"
|
|
|
@@ -138,7 +153,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" >
|
|
|
- <el-form-item label="会议时间:">
|
|
|
+ <el-form-item label="会议时间:" prop='time'>
|
|
|
<el-date-picker
|
|
|
v-model="form.time"
|
|
|
type="daterange" value-format="yyyy-MM-dd"
|
|
|
@@ -150,7 +165,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="城市:">
|
|
|
+ <el-form-item label="城市:" prop='citys' >
|
|
|
<el-cascader style="width:100%;"
|
|
|
v-model="form.citys" :props='props'
|
|
|
:options="cityList"
|
|
|
@@ -162,7 +177,7 @@
|
|
|
<el-row>
|
|
|
|
|
|
<el-col :span="24" >
|
|
|
- <el-form-item label="地址">
|
|
|
+ <el-form-item label="地址" prop='address' >
|
|
|
<el-input placeholder="请输入详细地址" v-model="form.address"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -197,11 +212,12 @@
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
- <el-form-item label='封面图:'>
|
|
|
+ <el-form-item label='封面图:' prop='img' >
|
|
|
<el-upload
|
|
|
class="avatar-uploader"
|
|
|
action="/api/admin/uploadfile"
|
|
|
:show-file-list="false"
|
|
|
+ :on-progress='handleAvatarProgress'
|
|
|
:on-success="handleAvatarSuccess">
|
|
|
<img v-if="form.img" :src="form.img" class="avatar">
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
@@ -232,6 +248,7 @@
|
|
|
class="avatar-uploader speaker_avatar"
|
|
|
action="/api/admin/uploadfile"
|
|
|
:show-file-list="false"
|
|
|
+ :on-progress='handleAvatarProgress'
|
|
|
:on-success="(res,file)=>{handleAvatarSuccess1(index,res,file)}">
|
|
|
<img v-if="item.img" :src="item.img" class="avatar">
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
@@ -250,7 +267,7 @@
|
|
|
</el-tabs>
|
|
|
</el-form-item>
|
|
|
<el-form-item style="position:fixed;bottom:20px;right:60px;">
|
|
|
- <!-- <el-button type='primary'>预览</el-button> -->
|
|
|
+ <el-button type="primary" @click="view">预览</el-button>
|
|
|
<el-button @click="save" type='success'>发布</el-button>
|
|
|
<!-- <el-button type='default'>保存并新增</el-button> -->
|
|
|
<!-- <el-button v-if='id' type="danger" plain>删除</el-button> -->
|
|
|
@@ -258,6 +275,27 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
+ <el-dialog
|
|
|
+ title=""
|
|
|
+ :visible.sync="open"
|
|
|
+ width="414px">
|
|
|
+ <div class="preview">
|
|
|
+ <p class="aname">{{form.name}}</p>
|
|
|
+ <div class="ainfo">
|
|
|
+ <img width="100" :src="form.img" alt="">
|
|
|
+ <p>
|
|
|
+ 发布单位:{{journal_name}} <br>
|
|
|
+ 主办方:{{form.the_host}} <br>
|
|
|
+ 承办方:{{form.to_undertake}} <br>
|
|
|
+ 活动时间:{{form.begin_time}}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <b>活动简介</b>
|
|
|
+ <div class="adesc">{{form.desc}}</div>
|
|
|
+ <b>活动内容</b>
|
|
|
+ <div v-html="form.content"></div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</section>
|
|
|
</template>
|
|
|
<script>
|
|
|
@@ -268,6 +306,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ open:false,
|
|
|
signup_fields:[
|
|
|
{ name: "姓名", id: "name" },
|
|
|
{ name: "性别", id: "sex" },
|
|
|
@@ -287,7 +326,8 @@ export default {
|
|
|
speaker:[
|
|
|
{name:'',intruduce:''}
|
|
|
],
|
|
|
- img:''
|
|
|
+ img:'',
|
|
|
+ journal_id:''
|
|
|
},
|
|
|
optionList: [
|
|
|
{ name: "成都交通", id: "1" },
|
|
|
@@ -300,10 +340,36 @@ export default {
|
|
|
imageUrl:"",
|
|
|
props:{
|
|
|
value:'name'
|
|
|
- }
|
|
|
+ },
|
|
|
+ loading:false,
|
|
|
+ journal_name:'',
|
|
|
+ rules: {
|
|
|
+ name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
|
|
+ journal_id: [
|
|
|
+ { required: true, message: "请选择发布单位", trigger: "change" },
|
|
|
+ ],
|
|
|
+ time: [
|
|
|
+ { required: true, message: "请选择会议时间", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ citys: [
|
|
|
+ { required: true, message: "请选择城市", trigger: "change" },
|
|
|
+ ],
|
|
|
+ address: [{ required: true, message: "请输入地址", trigger: "blur" }],
|
|
|
+ img: [{ required: true, message: "请上传封面图", trigger: "blur" }],
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
+ /**预览 */
|
|
|
+ view(){
|
|
|
+ var content=this.$refs.editor.getEditor()
|
|
|
+ this.form.content=content;
|
|
|
+ let journal=this.journalList.filter(item=>item.id == this.form.journal_id)
|
|
|
+ if(journal.length>0){
|
|
|
+ this.journal_name=journal[0].name
|
|
|
+ }
|
|
|
+ this.open=true;
|
|
|
+ },
|
|
|
save(){
|
|
|
var content=this.$refs.editor.getEditor()
|
|
|
var form=this.form;
|
|
|
@@ -314,53 +380,60 @@ export default {
|
|
|
form.end_time=form.time[1]
|
|
|
}
|
|
|
let type = this.$route.query.type;
|
|
|
- form.type = type;
|
|
|
+ form.type = type?type:0;
|
|
|
// form.organizer_name=this.organizerList.filter(item=>item.id==form.organizer_id)[0].name
|
|
|
console.log(form)
|
|
|
- if(this.id){
|
|
|
- this.$api.updateActivity(form).then(res=>{
|
|
|
- if(res.data.code == 0){
|
|
|
- this.$message({
|
|
|
- message: '修改成功',
|
|
|
- type: 'success'
|
|
|
- })
|
|
|
- this.$router.push({path:'/learning/activity'})
|
|
|
- }else{
|
|
|
- this.$message({
|
|
|
- message: res.data.message,
|
|
|
- type: 'error'
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- }else{
|
|
|
- this.$api.addActivity(form).then(res=>{
|
|
|
- if(res.data.code == 0){
|
|
|
- this.$message({
|
|
|
- message: '发布成功',
|
|
|
- type: 'success'
|
|
|
+ this.$refs["form"].validate((valid) => {
|
|
|
+
|
|
|
+ if (valid) {
|
|
|
+ if(this.id){
|
|
|
+ this.$api.updateActivity(form).then(res=>{
|
|
|
+ if(res.data.code == 0){
|
|
|
+ this.$message({
|
|
|
+ message: '修改成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ this.$router.push({path:this.$route.matched[0].path})
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: res.data.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
- this.$router.push({path:'/learning/activity'})
|
|
|
}else{
|
|
|
- this.$message({
|
|
|
- message: res.data.message,
|
|
|
- type: 'error'
|
|
|
+ this.$api.addActivity(form).then(res=>{
|
|
|
+ if(res.data.code == 0){
|
|
|
+ this.$message({
|
|
|
+ message: '发布成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ this.$router.push({path:this.$route.matched[0].path})
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: res.data.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
//封面
|
|
|
+ handleAvatarProgress(){
|
|
|
+ this.loading=true
|
|
|
+ },
|
|
|
handleAvatarSuccess(res, file) {
|
|
|
- this.form.img = file.response.data;
|
|
|
- console.log(this.form.img)
|
|
|
+ this.$set(this.form,'img',file.response.data)
|
|
|
+ this.loading=false
|
|
|
},
|
|
|
//主讲人
|
|
|
handleAvatarSuccess1(index,res, file) {
|
|
|
var speaker=this.form.speaker[index];
|
|
|
- speaker.img = file.response.data;
|
|
|
+ this.$set(speaker,'img',file.response.data)
|
|
|
this.$set(this.form.speaker,index,speaker)
|
|
|
- // console.log(this.form.img)
|
|
|
+ this.loading=false
|
|
|
},
|
|
|
beforeAvatarUpload(){
|
|
|
|
|
|
@@ -407,6 +480,13 @@ export default {
|
|
|
if(this.$route.query.id){
|
|
|
this.id=this.$route.query.id;
|
|
|
this.$api.getActivity({id:this.id}).then(res=>{
|
|
|
+ if(res.data.code != 0){
|
|
|
+ this.$message({
|
|
|
+ message: res.data.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
this.form=res.data.data
|
|
|
this.form.is_popular=Boolean(this.form.is_popular)
|
|
|
this.form.is_recommend=Boolean(this.form.is_recommend)
|