瀏覽代碼

Merge branch 'master' of http://118.190.145.217:3000/xiaojincai/zky-admin

xjc 4 年之前
父節點
當前提交
de1e41cbc9

+ 72 - 1
src/api.js

@@ -70,6 +70,9 @@ export default {
 	getAllSysUserList: params => {
 		return axios.get(`${baseURL}/api/admin/user/all`, { params: params })
 	},
+	getUserinfoList: params => {
+		return axios.get(`${baseURL}/api/admin/userinfo/list`, { params: params })
+	},
 	// 获取用户待选期刊列表
 	getUserJournals: () => {
 		return axios.get(`${baseURL}/api/admin/user/journals`)
@@ -255,9 +258,18 @@ export default {
 	getConferenceList: params => {
 		return axios.get(`${baseURL}/api/admin/conference/list`, { params: params });
 	},
+	addConference: params => {
+		return axios.post(`${baseURL}/api/admin/conference`, params);
+	},
+	getConference: params => {
+		return axios.get(`${baseURL}/api/admin/conference`, {params:params});
+	},
 	putConference: params => {
 		return axios.put(`${baseURL}/api/admin/conference`, params);
 	},
+	deleteConference: params => {
+		return axios.delete(`${baseURL}/api/admin/conference`, {params:params});
+	},
 	getSignupList: params => {
 		return axios.get(`${baseURL}/api/admin/signup/list`, { params: params });
 	},
@@ -267,6 +279,15 @@ export default {
 	getVerifierList: params => {
 		return axios.get(`${baseURL}/api/admin/verifier/list`, { params: params });
 	},
+	addVerifier: params => {
+		return axios.post(`${baseURL}/api/admin/verifier`, params);
+	},
+	deleteVerifier: params => {
+		return axios.delete(`${baseURL}/api/admin/verifier`, {params:params});
+	},
+	addConferenceHotel: params => {
+		return axios.post(`${baseURL}/api/admin/conference/hotel`, params);
+	},
 	getHotelList: params => {
 		return axios.get(`${baseURL}/api/admin/hotel/list`, { params: params });
 	},
@@ -286,6 +307,15 @@ export default {
 	getActivityList: params => {
 		return axios.get(`${baseURL}/api/admin/activity/list`, { params: params });
 	},
+	addActivity: params => {
+		return axios.post(`${baseURL}/api/admin/activity`, params);
+	},
+	getActivity: params => {
+		return axios.get(`${baseURL}/api/admin/activity`, {params:params});
+	},
+	putActivity: params => {
+		return axios.put(`${baseURL}/api/admin/activity`, params);
+	},
 	// 期刊管理相关
 	getJournalList: params => {
 		return axios.get(`${baseURL}/api/admin/journal/list`, { params: params });
@@ -293,10 +323,51 @@ export default {
 	getJournal: params => {
 		return axios.get(`${baseURL}/api/admin/journal`, { params: params });
 	},
+	addJournal: params => {
+		return axios.post(`${baseURL}/api/admin/journal`, params);
+	},
+	updateJournal: params => {
+		return axios.put(`${baseURL}/api/admin/journal`, params);
+	},
+	delJournal: params => {
+		return axios.delete(`${baseURL}/api/admin/journal`, { params: params });
+	},
 	searchSubjectList: params => {
 		return axios.get(`${baseURL}/api/admin/subject/search`, { params: params });
 	},
 	searchOrganizerList: params => {
 		return axios.get(`${baseURL}/api/admin/organizer/search`, { params: params });
-	}
+	},
+	// 主办单位
+	getOrganizerList: params => {
+		return axios.get(`${baseURL}/api/admin/organizer/list`, { params: params });
+	},
+	addOrganizer: params => {
+		return axios.post(`${baseURL}/api/admin/organizer`, params);
+	},
+	updateOrganizer: params => {
+		return axios.put(`${baseURL}/api/admin/organizer`, params);
+	},
+	delOrganizer: params => {
+		return axios.delete(`${baseURL}/api/admin/organizer`, { params: params });
+	},
+	getOrganizer: params => {
+		return axios.get(`${baseURL}/api/admin/organizer`, { params: params });
+	},
+	// 学科
+	getSubjectList: params => {
+		return axios.get(`${baseURL}/api/admin/subject/list`, { params: params });
+	},
+	addSubject: params => {
+		return axios.post(`${baseURL}/api/admin/subject`, params);
+	},
+	updateSubject: params => {
+		return axios.put(`${baseURL}/api/admin/subject`, params);
+	},
+	delSubject: params => {
+		return axios.delete(`${baseURL}/api/admin/subject`, { params: params });
+	},
+	getSubject: params => {
+		return axios.get(`${baseURL}/api/admin/subject`, { params: params });
+	},
 }

+ 6 - 1
src/components/fuEditor/index.vue

@@ -41,8 +41,10 @@ export default {
       }
     },
     value: function(value) {
+      console.log(value)
       if (value !== this.editor.txt.html()) {
         this.editor.txt.html(this.value);
+        
       }
     }
     //value为编辑框输入的内容,这里我监听了一下值,当父组件调用得时候,如果给value赋值了,子组件将会显示父组件赋给的值
@@ -52,6 +54,9 @@ export default {
     this.editor.txt.html(this.value);
   },
   methods: {
+    getEditor(){
+      return this.editor.txt.html();
+    },
     seteditor() {
 
       // http://192.168.2.125:8080/admin/storage/create
@@ -111,7 +116,7 @@ export default {
           //循环插入图片
           // for (let i = 0; i < 1; i++) {
           // console.log(result)
-          let url = result.data.url;
+          let url = result.data;
           console.log(result)
           insertImg(url);
           // }

+ 66 - 23
src/components/hotel.vue

@@ -20,17 +20,18 @@
         .img_list{
             li{
                 display: inline-block;
-                width: 148px;
-                height: 148px;
+                min-width: 140px;
+                height: 100px;
                 margin: 10px;
                 position: relative;
                 overflow: hidden;
                 img{
-                    width: 100%;
+                    height: 100%;
                 }
                 .el-icon-delete{
                     color: red;
                     font-size: 18px;
+                    cursor: pointer;
                 }
                 .move{
                     position: absolute;
@@ -40,9 +41,15 @@
                     text-align: center;
                     background: rgba(0, 0, 0, 0.527);
                     color: #fff;
+                    cursor: pointer;
                 }
             }
         }
+        .el-upload--picture-card{
+            width: 100px;
+            height: 100px;
+            line-height: 110px;
+        }
         #map {
             overflow: hidden;
             width: 100%;
@@ -62,7 +69,7 @@
                 </el-col>                
                 <el-col :span="10">
                    <el-form-item label="选择历史酒店">
-                        <el-select placeholder="请选择酒店" @change="getData" v-model="cur_id" clearable filterable>
+                        <el-select placeholder="请选择酒店" @change="id=h_id,getData()" v-model="h_id" clearable filterable>
                             <el-option
                                 v-for="(item, index) in organizerList"
                                 :key="index"
@@ -103,7 +110,7 @@
                                     <i @click="left_right(index,1)">右移<i class="el-icon-caret-right"></i> </i></p>
                                 </li>
                                 <li>
-                                    <el-upload  :on-success='imgchange'  
+                                    <el-upload  :on-success='imgchange'   style="height:100px;"
                                         action="/api/admin/uploadfile" :show-file-list='false'
                                         list-type="picture-card">
                                         <i class="el-icon-plus"></i>
@@ -279,6 +286,7 @@ export default {
     data(){
         return{
             id:'',
+            h_id:'',
             dialogVisible:false,
             h_status:'view',
             organizerList:[],
@@ -300,10 +308,18 @@ export default {
         }
     },
     methods:{
+        getList(){
+            this.$api.getHotelList().then(res=>{
+                this.organizerList=res.data.data.list;
+            })
+        },
         getData() {
-            this.$api.getHotel({id:this.cur_id}).then((res) => {
-                this.form = res.data.data;
-                this.type=res.data.data.rooms
+            this.$api.getHotel({id:this.id}).then((res) => {
+                if(res.data.data){
+                    this.form = res.data.data;
+                    this.type=res.data.data.rooms
+                }
+                
             });
         },
         //添加房型
@@ -400,28 +416,44 @@ export default {
         save(type){
             var form=this.form;
             form.rooms=this.type;
-            if(this.h_status == 'add' || this.h_status == 'bind'){
-                this.$api.addHotel(form).then(res=>{
+            
+            //会议添加酒店
+            if(this.h_status == 'bind'){
+                form.conference_id=this.huiyi_id;
+                this.$api.addConferenceHotel(form).then(res=>{
                     if(res.data.code == 0){
                         this.$message({
                                     message: '添加成功',
                                     type: 'success'
                         })
-                        if(this.h_status == 'add'){
-                            if(type==1){
+                        if(type==1){
                                 this.form={imgs:[]};
                                 this.type=[{imgs:[]}];
-                            }else{
+                        }else{
                                 this.$emit('addSuccess')
-                            }
+                        }
+                    }else{
+                        this.$message({
+                                    message: res.data.message,
+                                    type: 'error'
+                        })
+                    }
+                })
+            }
+            //添加酒店
+            if(this.h_status == 'add'){
+                this.$api.addHotel(form).then(res=>{
+                    if(res.data.code == 0){
+                        this.$message({
+                                    message: '添加成功',
+                                    type: 'success'
+                        })
+                        if(type==1){
+                                this.form={imgs:[]};
+                                this.type=[{imgs:[]}];
                         }else{
-                            //绑定酒店
-                            this.$api.putConference().then(res=>{
-                                
-                            })
+                                this.$emit('addSuccess')
                         }
-                        
-                        
                     }else{
                         this.$message({
                                     message: res.data.message,
@@ -429,7 +461,8 @@ export default {
                         })
                     }
                 })
-            }else{
+            }
+            if(this.h_status == 'edit'){
                 this.$api.editHotel(form).then(res=>{
                     if(res.data.code == 0){
                         this.$message({
@@ -482,21 +515,31 @@ export default {
     },
     watch:{
         status(curVal,oldVal){
+            //类型变化,下拉框id清空,添加时:数据清空,修改时:获取数据
             this.h_status=curVal
+            this.h_id='';
+            this.getList()
             if(curVal!='add' && curVal!='bind'){
                 this.getData();
             }
+            if(curVal=='add'){
+                this.form={imgs:[]};
+                this.type=[{imgs:[]}];
+            }
         },
-        cur_id(){
+        cur_id(curVal){
+            //id变化时,赋值给id
+            this.id=curVal;
             this.getData();
+            this.getList()
         }
     },
     created(){
-        console.log(this.huiyi_id,this.huiyi_name)
         this.$api.getHotelList().then(res=>{
                 this.organizerList=res.data.data.list;
         })
         this.h_status=this.status;
+        this.id=this.cur_id;
         if(this.h_status!='add'&&this.h_status!='bind'){
                 this.getData();
         }

+ 2 - 2
src/views/Home.vue

@@ -10,8 +10,8 @@
 	<el-container>
 		<el-header>
 			<div class="header">
-				<img class="logo" src="../assets/logo.png" alt="">
-				<div class="siteTitle">中科院期刊微信公众号集中管理平台</div>
+				<!-- <img class="logo" src="../assets/logo.png" alt=""> -->
+				<!-- <div class="siteTitle">中科院期刊微信公众号集中管理平台</div> -->
 			</div>	
 			<div class="nav">
 				<!-- <router-link :class="act?'active':''" to="/index/index" @click.native='active(1)'>首页</router-link>

+ 16 - 4
src/views/activity/Activity.vue

@@ -74,6 +74,14 @@ a {
         font-weight: 600;
     }
 }
+  .desc{
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 3;
+        -webkit-box-orient: vertical;
+        white-space: normal;
+    }
 </style>
 <template>
   <section>
@@ -122,8 +130,12 @@ a {
         <el-table-column prop="" label="承办方"></el-table-column>
         <el-table-column prop="begin_time" label="活动时间"></el-table-column>
         <el-table-column prop="address" label="活动地址"></el-table-column>
-        <el-table-column prop="desc" label="活动简介" width="500"></el-table-column>
-        <el-table-column prop="zip" width="150" label="操作">
+        <el-table-column prop="desc" label="活动简介" width="500">
+                    <template slot-scope="scope">
+                        <div class="desc">{{scope.row.desc}}</div>
+                    </template>
+        </el-table-column>
+        <el-table-column prop="zip" width="150" label="操作" fixed="right">
           <template slot-scope="scope">
             <el-button class="edit" type="text" @click="edit(scope.row)"
               >编辑</el-button
@@ -186,7 +198,7 @@ export default {
     getData() {
       var parm = this.form;
       this.loading = true;
-      this.$api.getActivityList().then((res) => {
+      this.$api.getActivityList(parm).then((res) => {
         this.list = res.data.data.list;
         this.loading = false;
       });
@@ -205,7 +217,7 @@ export default {
       });
     },
     edit(row) {
-      this.$router.push({path:'/article/article/add',query:{id:row.id}})
+      this.$router.push({path:'/learning/activity/add',query:{id:row.id}})
     },
     save() {
       this.$refs["form1"].validate((valid) => {

+ 384 - 264
src/views/activity/AddActivity.vue

@@ -1,300 +1,420 @@
 <style lang="scss" scoped>
 .preview {
-  .el-form-item {
-    margin-bottom: 15px;
-  }
-  label,
-  p {
-    line-height: 25px !important;
-  }
+    .el-form-item {
+        margin-bottom: 15px;
+    }
+    label,
+    p {
+        line-height: 25px !important;
+    }
 }
 .content .title {
-  height: 32px;
-  font-size: 14px;
-  font-weight: bold;
-  color: #333333;
-  border-bottom: 1px solid #d8d8d8;
-  margin-bottom: 25px;
+    height: 32px;
+    font-size: 14px;
+    font-weight: bold;
+    color: #333333;
+    border-bottom: 1px solid #d8d8d8;
+    margin-bottom: 25px;
 }
-.el-form {
-  font-size: 14px;
-  font-weight: 400;
-  color: #666666;
-  .el-select,
-  .el-range-editor--small.el-input__inner {
-    width: 100%;
-  }
+.el-form{
+    font-size: 14px;
+    font-weight: 400;
+    color: #666666;
+    .el-select,.el-range-editor--small.el-input__inner{
+        width:100%;
+    }
 }
-/deep/.el-tabs__header {
-  margin: 0;
-  .el-tabs__active-bar {
-    height: 0px;
-  }
-  .el-tabs__item {
-    width: 160px;
-    height: 40px;
-    text-align: center;
-    border-radius: 8px 8px 0px 0px;
-    color: #333333;
-    background: #ececec;
-    margin-right: 10px;
-  }
-  .el-tabs__item.is-active {
-    background: #3895fe;
-
-    color: #ffffff;
-  }
+/deep/.el-tabs__header{
+    margin:0;
+    .el-tabs__active-bar{
+        height:0px;
+    }
+    .el-tabs__item{
+        width: 160px;
+        height: 40px;
+        text-align: center;
+        border-radius: 8px 8px 0px 0px;
+        color:#333333;
+        background: #ECECEC;
+        margin-right:10px;
+    }
+    .el-tabs__item.is-active{
+        background: #3895FE;
+        
+        color:#ffffff;
+        
+    }
 }
-.el-button {
-  width: 120px;
-  height: 36px;
+.el-button{
+    width:120px;
+    height:36px;
 }
 // 上传
 
 /deep/.avatar-uploader .el-upload {
-  width: 148px;
-  height: 148px;
-  line-height: 148px;
-  border: 1px dashed #d9d9d9;
-  border-radius: 6px;
-  cursor: pointer;
-  position: relative;
-  overflow: hidden;
-  .avatar {
-    width: 100%;
-    height: auto;
-  }
+    width: 148px;
+    height: 148px;
+    line-height: 148px;
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+    .avatar{
+        width: 100%;
+        height: auto;
+    }
 }
 .avatar-uploader .el-upload:hover {
-  border-color: #409eff;
+    border-color: #409EFF;
 }
 .avatar-uploader-icon {
-  font-size: 28px;
-  color: #8c939d;
-  width: 68px;
-  height: 68px;
-  line-height: 68px;
-  text-align: center;
+    font-size: 28px;
+    color: #8c939d;
+    width: 68px;
+    height: 68px;
+    line-height: 68px;
+    text-align: center;
 }
 .avatar {
-  width: 68px;
-  height: 68px;
-  display: block;
+    width: 68px;
+    height: 68px;
+    display: block;
 }
-/deep/.speaker_avatar .el-upload {
-  width: 80px;
-  height: 80px;
-  line-height: 80px;
+/deep/.speaker_avatar .el-upload{
+    width: 80px;
+    height: 80px;
+    line-height: 80px;
 }
 .hotel_imgs {
-  /deep/.el-upload--picture-card {
-    width: 79px;
+    /deep/.el-upload--picture-card{
+    width:79px;
     height: 79px;
     line-height: 79px;
-  }
+    }   
 }
+
 </style>
 <template>
-  <section>
-    <p><span>会议管理></span>新增活动</p>
-    <div class="content">
-      <!-- <div class="title">新增会议</div> -->
-      <el-form
-        ref="form"
-        size="small"
-        label-width="140px"
-        class="over_y"
-        :model="form"
-        :rules="rules"
-      >
-        <el-form-item label="文章名称:" prop="name">
-          <el-input
-            placeholder="请输入文章名称"
-            v-model="form.name"
-            clearable
-          ></el-input>
-        </el-form-item>
-        <el-row>
-          <el-col :span="5">
-            <el-form-item label="文章来源:" prop="journal_id">
-              <el-select
-                placeholder="请选择"
-                v-model="form.journal_id"
-                filterable
-              >
-                <el-option
-                  v-for="(item, index) in journalList"
-                  :key="index"
-                  :label="item.name"
-                  :value="item.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="5">
-            <el-form-item label="作者:" prop="author">
-              <el-input v-model="form.author" placeholder=""> </el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12" :offset="2">
-            <el-form-item label="出版时间:" prop="publish_time">
-              <el-date-picker
-                v-model="form.publish_time"
-                type="date"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-form-item label="文章简介:">
-          <el-input
-            type="textarea"
-            v-model="form.desc"
-            :rows="3"
-            placeholder="请输入文章简介"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="封面图:" prop="img">
-          <el-upload
-            class="avatar-uploader"
-            action="/api/admin/uploadfile"
-            :show-file-list="false"
-            :on-success="handleAvatarSuccess"
-          >
-            <img v-if="form.img" :src="form.img" class="avatar" />
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-          </el-upload>
-          <span style="font-size: 12px; color: #999999"
-            >建议图片尺寸为:210*160</span
-          >
-        </el-form-item>
-        <el-form-item label="文章详情:">
-          <fuEditor :value="form.content"></fuEditor>
-        </el-form-item>
-        <el-form-item style="position: fixed; bottom: 20px; right: 60px">
-          <el-button type="primary">预览</el-button>
-          <el-button type="success">发布</el-button>
-          <el-button type="default" @click="save">保存</el-button>
-          <!-- <el-button type="danger" plain>删除</el-button> -->
-        </el-form-item>
-      </el-form>
-    </div>
-  </section>
+    <section>
+        <p><span>活动管理></span>新增活动</p>
+        <div class="content">
+            <!-- <div class="title">新增会议</div> -->
+            <el-form size="small" label-width="140px" class='over_y'>
+              <el-form-item label="发布单位:">
+                    <el-input
+                        disabled
+                        v-model="form.journal_name"
+                        clearable
+                    ></el-input>
+                </el-form-item>
+                <el-form-item label="活动名称:">
+                    <el-input
+                        placeholder="请输入活动名称"
+                        v-model="form.name"
+                        clearable
+                    ></el-input>
+                </el-form-item>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="主办方:">
+                            <el-select placeholder="请选择主办方" v-model="form.organizer_id" filterable>
+                                <el-option
+                                    v-for="(item, index) in organizerList"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="承办方:">
+                            <el-select placeholder="请选择承办方" v-model="form.organizer_id" filterable>
+                                <el-option
+                                    v-for="(item, index) in organizerList"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12" >
+                        <el-form-item label="会议时间:">
+                            <el-date-picker
+                                v-model="form.time"
+                                type="daterange" value-format="yyyy-MM-dd"
+                                range-separator="至"
+                                start-placeholder="开始日期"
+                                end-placeholder="结束日期"
+                            >
+                            </el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="城市:">
+                            <el-cascader style="width:100%;"
+                                v-model="form.citys" :props='props'
+                                :options="cityList"
+                                @change="handleChangeCity">
+                            </el-cascader>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    
+                    <el-col :span="24" >
+                        <el-form-item label="地址">
+                            <el-input placeholder="请输入详细地址" v-model="form.address"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                
+                <el-form-item label='活动简介:'>
+                    <el-input type='textarea' v-model="form.desc" :rows="3" placeholder="请输入活动介绍"></el-input>
+                </el-form-item>
+                <el-row>
+                  
+                    <el-col :span="8">
+                        <el-form-item label='是否热门:'>
+                            <el-switch
+                                v-model="form.is_popular"
+                                active-text="热门"
+                                inactive-text="不热门">
+                            </el-switch>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label='是否推荐:'>
+                            <el-switch
+                                v-model="form.is_recommend"
+                                active-text="推荐"
+                                inactive-text="不推荐">
+                            </el-switch>
+                            <!-- <el-radio-group v-model='form.is_recommend'>
+                                <el-radio :label='0'>不推荐</el-radio>
+                                <el-radio :label='1'>推荐</el-radio>
+                            </el-radio-group> -->
+                        </el-form-item>
+                    </el-col>
+     
+                </el-row>
+                <el-form-item label='封面图:'>
+                    <el-upload
+                        class="avatar-uploader"
+                        action="/api/admin/uploadfile"
+                        :show-file-list="false"
+                        :on-success="handleAvatarSuccess">
+                        <img v-if="form.img" :src="form.img" class="avatar">
+                        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                    </el-upload>
+                    <span style='font-size:12px;color:#999999;'>建议图片尺寸为:210*160</span>
+                </el-form-item>
+                <el-form-item label=''>
+                    <el-tabs v-model="activeName" @tab-click="handleClick">
+                        <el-tab-pane label="活动详情" name="first">
+                            <fuEditor :value='form.content' ref="editor"></fuEditor>
+                        </el-tab-pane>
+                        <el-tab-pane label="主讲人" name="second">
+                            <section style="height:544px;padding:10px 0px;border:1px solid #ccc;">
+                                <div v-for='(item,index) in form.speaker' :key='index' class='speaker'>  
+                                <el-row>
+                                    <el-col :span="12">
+                                        <el-form-item label="主讲人姓名">
+                                            <el-input placeholder="请输入主讲人姓名" v-model="item.name"></el-input>
+                                        </el-form-item>
+                                        <el-form-item label="主讲人简介">
+                                            <el-input type="textarea" placeholder="请输入主讲人简介" v-model="item.intruduce"></el-input>
+                                        </el-form-item>
+                                    </el-col>
+                                  
+                                    <el-col :span="8">
+                                        <el-form-item label="主讲人头像">
+                                            <el-upload
+                                                class="avatar-uploader speaker_avatar"
+                                                action="/api/admin/uploadfile"
+                                                :show-file-list="false"
+                                                :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>
+                                            </el-upload>
+                                        </el-form-item>
+                                    </el-col>
+                                    
+                                    <el-col :span="4">
+                                        <el-button v-if='index==0' size="mini" type="primary" plain @click='addSpeaker' icon="el-icon-plus">添加主讲人</el-button>
+                                        <el-button v-else type="danger" size="mini" plain @click='clearSpeaker(index)'>删除</el-button>
+                                    </el-col>
+                                </el-row>
+                                </div>
+                            </section>
+                        </el-tab-pane>
+                    </el-tabs>
+                </el-form-item>
+                <el-form-item style="position:fixed;bottom:20px;right:60px;">
+                    <!-- <el-button type='primary'>预览</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> -->
+                     <el-button type='info' plain @click="$router.go(-1)">返回</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </section>
 </template>
 <script>
-import fuEditor from "../../components/fuEditor";
+import fuEditor from '../../components/fuEditor'
 export default {
-  components: {
-    fuEditor,
-  },
-  data() {
-    return {
-      form: {},
-      journalList: [],
-      imageUrl: "",
-      rules: {
-        name: [{ required: true, message: "请输入标题", trigger: "blur" }],
-        journal_id: [
-          { required: true, message: "请选择来源", trigger: "change" },
-        ],
-        author: [{ required: true, message: "请选择模板", trigger: "blur" }],
-        publish_time: [
-          { required: true, message: "发布时间", trigger: "blur" },
-        ],
-        img: [{ required: true, message: "封面图", trigger: "blur" }],
-      },
-    };
-  },
-  methods: {
-    //封面
-    handleAvatarSuccess(res, file) {
-      this.form.img = file.response.data;
-      console.log(this.form.img);
-    },
-    //主讲人
-    handleAvatarSuccess1(index, res, file) {
-      var speaker = this.form.speaker[index];
-      speaker.img = file.response.data;
-      this.$set(this.form.speaker, index, speaker);
-      // console.log(this.form.img)
+    components: {
+        fuEditor,
     },
-    beforeAvatarUpload() {},
-    handleClick() {},
-    addSpeaker() {
-      this.form.speaker.push({ name: "", intruduce: "" });
+    data() {
+        return {
+            signup_fields:[
+                    { name: "姓名", id: "name" },
+                    { name: "性别", id: "sex" },
+                    { name: "年龄", id: "age" },
+                    { name: "职务", id: "job" },
+                    { name: "职称", id: "title" },
+                    { name: "公司", id: "company" },
+                    { name: "电话", id: "phone" },
+                    { name: "邮箱", id: "email" }
+            ],
+            form: {
+                is_signup:0,
+                is_popular:0,
+                is_recommend:0,
+                citys:[],
+                signup_fields:[],
+                speaker:[
+                    {name:'',intruduce:''}
+                ],
+                img:''
+            },
+            optionList: [
+                { name: "成都交通", id: "1" },
+                { name: "成都交通", id: "1" },
+            ],
+            
+            organizerList:[],
+            cityList:[],
+            activeName:'first',
+            imageUrl:"",
+            props:{
+                value:'name'
+            }
+        };
     },
-    gopage(size) {
-      if (size) {
-        this.form.page_size = size;
-      }
-      this.form.page = this.$refs.pageButton.page;
-      this.getData();
-    },
-    getData() {
-      this.loading = true;
-      this.$api.searchJournalList().then((res) => {
-        this.journalList = res.data.data;
-      });
-      let id = this.$route.query.id;
-      if (id) {
-        this.$api.getArticle({ id: id }).then((res) => {
-          this.form = res.data.data;
-        });
-      }
-    },
-    save() {
-      let id = this.$route.query.id;
-      let parm = this.form;
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          if (id) {
-            parm.id = id;
-            this.$api.updateArticle(parm).then((res) => {
-              if (res.data.code == 0) {
-                this.$message({
-                  type: "success",
-                  message: "保存成功!",
-                });
-              } else {
-                this.$message.error("保存失败!");
-              }
+    methods: {
+        save(){
+            var content=this.$refs.editor.getEditor()
+            var form=this.form;
+            form.content=content;
+            form.city=form.citys.join(' ');
+            if(form.time){
+                form.begin_time=form.time[0]
+                form.end_time=form.time[1]
+            }
+            // form.organizer_name=this.organizerList.filter(item=>item.id==form.organizer_id)[0].name
+            console.log(form)
+            if(this.id){
+                this.$api.putActivity(form).then(res=>{
+                    if(res.data.code == 0){
+                        this.$message({
+                            message: '修改成功',
+                            type: 'success'
+                        })
+                        this.$router.push({path:'/conference/conference'})
+                    }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.$router.push({path:'/conference/conference'})
+                    }else{
+                        this.$message({
+                            message: res.data.message,
+                            type: 'error'
+                        })
+                    }
+                })
+            }
+            
+        },
+        //封面
+        handleAvatarSuccess(res, file) {
+            this.form.img = file.response.data;
+            console.log(this.form.img)
+        },
+        //主讲人
+        handleAvatarSuccess1(index,res, file) {
+            var speaker=this.form.speaker[index];
+            speaker.img = file.response.data;
+            this.$set(this.form.speaker,index,speaker)
+            // console.log(this.form.img)
+        },
+        beforeAvatarUpload(){
+
+        },
+        handleClick(){
+
+        },
+        addSpeaker(){
+            this.form.speaker.push({name:'',intruduce:''})
+        },
+        clearSpeaker(index){
+            this.form.speaker.splice(index,1)
+        },
+        addHotelType(){
+            this.form.hotel.type.push({})
+        },
+        handleChangeCity(value){
+            console.log(value,222222222)
+        },
+        gopage(size) {
+            if (size) {
+                this.form.page_size = size;
+            }
+            this.form.page = this.$refs.pageButton.page;
+            this.getData();
+        },
+        getPermissions() {
+            this.$api.getUserPermissions().then((res) => {
+                this.data = res.data.data;
             });
-          } else {
-            this.$api.addArticle(parm).then((res) => {
-              if (res.data.code == 0) {
-                this.$message({
-                  type: "success",
-                  message: "保存成功!",
-                });
-              } else {
-                this.$message.error("保存失败!");
-              }
+        },
+        getData() {
+            this.$api.getAllOrganizer().then((res) => {
+                this.organizerList = res.data.data;
             });
-          }
-        } else {
-            this.$message.error("有必填项没有填!");
-        }
-      });
+            this.$api.getCityList().then((res) => {
+                this.cityList = res.data.data;
+            });
+        },
     },
-    del(id) {
-      this.$confirm("确定删除吗", "提示", {
-        type: "warning",
-      }).then(() => {
-        this.$api.deleteEnterprise({ id: id }).then((res) => {
-          this.$message({
-            message: "删除成功",
-            type: "success",
-          });
-          this.getData();
-        });
-      });
+    created() {
+        this.getData()
+        console.log(this.$route)
+        if(this.$route.query.id){
+            this.id=this.$route.query.id;
+            this.$api.getActivity({id:this.id}).then(res=>{
+                this.form=res.data.data
+                this.form.is_popular=Boolean(this.form.is_popular)
+                this.form.is_recommend=Boolean(this.form.is_recommend)
+                this.form.citys=this.form.city.split(' ')
+                this.form.time=[this.form.begin_time,this.form.end_time]
+            })
+        }
     },
-  },
-  created() {
-    this.getData();
-  },
 };
 </script>

+ 1 - 1
src/views/article/Article.vue

@@ -180,7 +180,7 @@ export default {
     getData() {
       var parm = this.form;
       this.loading = true;
-      this.$api.getArticleList().then((res) => {
+      this.$api.getArticleList(parm).then((res) => {
         console.log(res)
         this.list = res.data.data.list;
         this.loading = false;

+ 119 - 23
src/views/conference/AddConference.vue

@@ -111,7 +111,7 @@
                 <el-row>
                     <el-col :span="10">
                         <el-form-item label="主办方:">
-                            <el-select placeholder="请选择主办方" v-model="form.sponsor" filterable>
+                            <el-select placeholder="请选择主办方" v-model="form.organizer_id" filterable>
                                 <el-option
                                     v-for="(item, index) in organizerList"
                                     :key="index"
@@ -125,7 +125,7 @@
                         <el-form-item label="会议时间:">
                             <el-date-picker
                                 v-model="form.time"
-                                type="daterange"
+                                type="daterange" value-format="yyyy-MM-dd"
                                 range-separator="至"
                                 start-placeholder="开始日期"
                                 end-placeholder="结束日期"
@@ -138,7 +138,7 @@
                     <el-col :span="10">
                         <el-form-item label="城市:">
                             <el-cascader style="width:100%;"
-                                v-model="form.city"
+                                v-model="form.citys" :props='props'
                                 :options="cityList"
                                 @change="handleChangeCity">
                             </el-cascader>
@@ -152,7 +152,7 @@
                 </el-row>
                 
                 <el-form-item label='会议简介:'>
-                    <el-input type='textarea' v-model="form.introduce" :rows="3" placeholder="请输入会议介绍"></el-input>
+                    <el-input type='textarea' v-model="form.desc" :rows="3" placeholder="请输入会议介绍"></el-input>
                 </el-form-item>
                 <el-row>
                   <el-col :span="8">
@@ -190,7 +190,7 @@
                     <el-col :span="24">
                       <el-form-item label='报名需提交信息:'>
                         <el-checkbox-group v-model='form.signup_fields'>
-                            <el-checkbox v-for='(item,index) in form.signup_fields' :key='index' :label='item.id'>{{item.name}}</el-checkbox>
+                            <el-checkbox v-for='(item,index) in signup_fields' :key='index' :label='item.id'>{{item.name}}</el-checkbox>
                         </el-checkbox-group>
                     </el-form-item>
                   </el-col>
@@ -209,7 +209,7 @@
                 <el-form-item label=''>
                     <el-tabs v-model="activeName" @tab-click="handleClick">
                         <el-tab-pane label="会议详情" name="first">
-                            <fuEditor></fuEditor>
+                            <fuEditor :value='form.content' ref="editor"></fuEditor>
                         </el-tab-pane>
                         <el-tab-pane label="主讲人" name="second">
                             <section style="height:544px;padding:10px 0px;border:1px solid #ccc;">
@@ -378,12 +378,12 @@
                         </el-tab-pane> -->
                     </el-tabs>
                 </el-form-item>
-                <el-form-item style="position:fixed;bottom:20px;right:60px;">
-                    <el-button type='primary'>预览</el-button>
-                    <el-button type='success'>发布</el-button>
-                    <el-button type='default'>保存并新增</el-button>
-                    <el-button type='default'>保存</el-button>
-                    <el-button type="danger" plain>删除</el-button>
+                <el-form-item style="position:fixed;bottom:10px;right:60px;">
+                    <!-- <el-button type='primary'>预览</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> -->
+                     <el-button type='info' plain @click="$router.go(-1)">返回</el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -397,19 +397,22 @@ export default {
     },
     data() {
         return {
+            signup_fields:[
+                    { name: "姓名", id: "name" },
+                    { name: "性别", id: "sex" },
+                    { name: "年龄", id: "age" },
+                    { name: "职务", id: "job" },
+                    { name: "职称", id: "title" },
+                    { name: "公司", id: "company" },
+                    { name: "电话", id: "phone" },
+                    { name: "邮箱", id: "email" }
+            ],
             form: {
                 is_signup:0,
                 is_popular:0,
                 is_recommend:0,
-                city:[],
-                signup_fields:[
-                    { name: "姓名", id: "1" },
-                    { name: "性别", id: "2" },
-                    { name: "年龄", id: "3" },
-                    { name: "职务", id: "4" },
-                    { name: "职称", id: "5" },
-                    { name: "职称", id: "5" },
-                ],
+                citys:[],
+                signup_fields:[],
                 speaker:[
                     {name:'',intruduce:''}
                 ],
@@ -423,10 +426,92 @@ export default {
             organizerList:[],
             cityList:[],
             activeName:'first',
-            imageUrl:""
+            imageUrl:"",
+            props:{
+                value:'name'
+            }
         };
     },
     methods: {
+        save(){
+            var content=this.$refs.editor.getEditor()
+            var form=this.form;
+            form.content=content;
+            form.city=form.citys.join(' ');
+            if(form.time){
+                form.begin_time=form.time[0]
+                form.end_time=form.time[1]
+            }
+            if(!form.name){
+                this.$message({
+                    message: '请输入会议名称',
+                    type: 'error'
+                })
+                return
+            }
+            if(!form.organizer_id){
+                this.$message({
+                    message: '请选择主办方',
+                    type: 'error'
+                })
+                return
+            }
+            if(!form.time){
+                this.$message({
+                    message: '请选择会议时间',
+                    type: 'error'
+                })
+                return
+            }
+            if(!form.address){
+                this.$message({
+                    message: '请输入会议地址',
+                    type: 'error'
+                })
+                return
+            }
+            if(!form.img){
+                this.$message({
+                    message: '请上传封面图',
+                    type: 'error'
+                })
+                return
+            }
+            // form.organizer_name=this.organizerList.filter(item=>item.id==form.organizer_id)[0].name
+            console.log(form)
+            if(this.id){
+                this.$api.putConference(form).then(res=>{
+                    if(res.data.code == 0){
+                        this.$message({
+                            message: '修改成功',
+                            type: 'success'
+                        })
+                        this.$router.push({path:'/conference/conference'})
+                    }else{
+                        this.$message({
+                            message: res.data.message,
+                            type: 'error'
+                        })
+                    }
+                })
+            }else{
+                this.$api.addConference(form).then(res=>{
+                    if(res.data.code == 0){
+                        this.$message({
+                            message: '发布成功',
+                            type: 'success'
+                        })
+                        this.$router.push({path:'/conference/conference'})
+                    }else{
+                        this.$message({
+                            message: res.data.message,
+                            type: 'error'
+                        })
+                    }
+                })
+            }
+            
+        },
         //封面
         handleAvatarSuccess(res, file) {
             this.form.img = file.response.data;
@@ -470,7 +555,6 @@ export default {
             });
         },
         getData() {
-            var parm = this.form;
             this.$api.getAllOrganizer().then((res) => {
                 this.organizerList = res.data.data;
             });
@@ -494,6 +578,18 @@ export default {
     },
     created() {
         this.getData()
+        console.log(this.$route)
+        if(this.$route.query.id){
+            this.id=this.$route.query.id;
+            this.$api.getConference({id:this.id}).then(res=>{
+                this.form=res.data.data
+                this.form.is_signup=Boolean(this.form.is_signup)
+                this.form.is_popular=Boolean(this.form.is_popular)
+                this.form.is_recommend=Boolean(this.form.is_recommend)
+                this.form.citys=this.form.city.split(' ')
+                this.form.time=[this.form.begin_time,this.form.end_time]
+            })
+        }
     },
 };
 </script>

+ 75 - 38
src/views/conference/Apply.vue

@@ -32,10 +32,24 @@
                             <el-input clearable placeholder="请输入姓名" v-model="form.name"></el-input>
                     </el-form-item>
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择会议"></el-select>
+                            <el-select v-model="form.conference_id" clearable placeholder="请选择会议">
+                                <el-option
+                                    v-for="(item, index) in conferenceList"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
                     </el-form-item>
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择酒店"></el-select>
+                            <el-select v-model="form.hotel_id" clearable placeholder="请选择酒店">
+                                <el-option
+                                    v-for="(item, index) in hotelList"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
                     </el-form-item>
                     <el-form-item>
                         <el-button @click="getData" type="primary">搜索</el-button>
@@ -46,21 +60,21 @@
                 </el-form>
             </div>
             <el-tabs v-model="form.order_status" @tab-click="tabClick">
-                <el-tab-pane name="-3" label="待审核"></el-tab-pane>
-                <el-tab-pane name="-1" label="待缴费"></el-tab-pane>
                 <el-tab-pane name="0" label="待上传凭证"></el-tab-pane>
-                <el-tab-pane name="-2" label="待选酒店"></el-tab-pane>
-                <el-tab-pane name="1" label="待核销"></el-tab-pane>
-                <el-tab-pane name="2" label="已核销"></el-tab-pane>
+                <el-tab-pane name="1" label="待审核"></el-tab-pane>
+                <el-tab-pane name="2" label="待选酒店"></el-tab-pane>
+                <el-tab-pane name="3" label="待核销"></el-tab-pane>
+                <el-tab-pane name="4" label="已核销"></el-tab-pane>
+                <el-tab-pane name="-1" label="已驳回"></el-tab-pane>
             </el-tabs>
              <el-table
                     class="table"
                     :data="list"
-                    height='50vh'
+                    height='52vh'
                     border  v-loading="loading"
                     default-expand-all row-key="id"
                     style="width: 100%">
-                    <el-table-column
+                    <el-table-column width="200"
                     prop="conference_name"  
                     label="会议名称">
                     </el-table-column>
@@ -69,6 +83,18 @@
                     label="真实姓名">
                     </el-table-column>
                     <el-table-column
+                    prop=""  
+                    label="状态">
+                    <template slot-scope="scope">
+                        <span v-if='scope.row.signup_status==0'>待上传凭证</span>
+                        <span v-if='scope.row.signup_status==1'>待审核</span>
+                        <span v-if='scope.row.signup_status==2'>待选酒店</span>
+                        <span v-if='scope.row.signup_status==3'>待核销</span>
+                        <span v-if='scope.row.signup_status==4'>已核销</span>
+                        <span v-if='scope.row.signup_status==-1'>已驳回</span>
+                    </template>
+                    </el-table-column>
+                    <el-table-column
                     prop="username"  
                     label="昵称">
                     </el-table-column>
@@ -84,14 +110,14 @@
                     </template>
                     </el-table-column>
                     <el-table-column
-                    prop="phone"  
+                    prop="phone"  width="120"
                     label="手机号">
                     </el-table-column>
                     <el-table-column
-                    prop="email"  
+                    prop="email"  width="120"
                     label="邮箱">
                     </el-table-column>
-                    <el-table-column
+                    <el-table-column width="200"
                     prop="organizer_unit"  
                     label="单位">
                     </el-table-column>
@@ -115,26 +141,14 @@
                     prop="room_etime"  
                     label="离开时间">
                     </el-table-column>
-                    <el-table-column
-                    prop=""  
-                    label="状态">
-                    <template slot-scope="scope">
-                        <span v-if='scope.row.signup_status==0'>待上传</span>
-                        <span v-if='scope.row.signup_status==1'>待审核</span>
-                        <span v-if='scope.row.signup_status==2'>待选酒店</span>
-                        <span v-if='scope.row.signup_status==3'>待核销</span>
-                        <span v-if='scope.row.signup_status==4'>已核销</span>
-                        <span v-if='scope.row.signup_status==-1'>已驳回</span>
-                    </template>
-                    </el-table-column>
                     <el-table-column  
                     prop="zip"  width="260" fixed="right"
                     label="操作">
                     <template slot-scope="scope">
                         <el-button  @click="invoice=scope.row,dialogVisible2=true" class="edit"  type="text" >审核</el-button>
                         <el-button @click="invoice=scope.row,dialogVisible=true"  type="text">发票详情</el-button>
-                        <el-button    type="text" >入住凭证</el-button>
-                        <el-button @click="dialogVisible1=true"   type="text" >驳回原因</el-button>
+                        <el-button @click="proof_img=scope.row.proof_img,dialogVisible3=true"    type="text" >入住凭证</el-button>
+                        <el-button @click="dialogVisible1=true,getReason(scope.row)"   type="text" >驳回原因</el-button>
                     </template>
                     </el-table-column>
             </el-table>
@@ -178,25 +192,25 @@
         :visible.sync="dialogVisible1">
            <div class="bh">
                <label>会议名称</label>
-               建设世界一流科技期刊的思考与探索 ——中国科学院自然科学期刊编辑研究会 第29次年会暨研讨班 正式通知
+                {{reason.conference_name}}
                 <br>
-                <label>用户姓名</label>张三
+                <label>用户姓名</label>{{reason.name}}
            </div>
            <el-table
                     class="table"
-                    :data="reason"
-                    default-expand-all 
+                    :data="reason.reject_reason"
+                    default-expand-all height="300"
                     style="width: 100%">
                     <el-table-column
-                    prop="name"  
+                    prop="ctime"  
                     label="驳回时间">
                     </el-table-column>
                     <el-table-column
-                    prop="name"  
+                    prop="cname"  
                     label="驳回人">
                     </el-table-column>
                     <el-table-column
-                    prop="name"  
+                    prop="reason"  
                     label="驳回原因">
                     </el-table-column>
            </el-table>
@@ -244,6 +258,11 @@
                     </el-form-item>
            </el-form>
         </el-dialog>
+         <el-dialog class="hotel"
+        title="入住凭证" :close-on-click-modal='false'
+        :visible.sync="dialogVisible3">
+           <img width="100%" :src="proof_img" alt="">
+        </el-dialog>
     </section>
 </template>
 <script>
@@ -254,16 +273,19 @@ export default {
     },
     data(){
         return{
-            form:{order_status:'-3',},
-            
+            form:{order_status:0,},
+            conferenceList:[],
+            hotelList:[],
             list:[{}],
-            reason:[],
+            reason:{},
             invoice:{},
             total:0,
             loading:false,
             dialogVisible:false,
             dialogVisible1:false,
-            dialogVisible2:false
+            dialogVisible2:false,
+            dialogVisible3:false,
+            proof_img:''
         }
     },
     methods:{
@@ -277,13 +299,28 @@ export default {
         tabClick(){
             this.getData()
         },
+        getReason(data){
+            if(data.reject_reason){
+                data.reject_reason=JSON.parse(data.reject_reason);
+            }else{
+               data.reject_reason=[] 
+            }
+            this.reason=data
+        },
         getData(){
             var parm=this.form;        
             this.loading=true
             this.$api.getSignupList(parm).then(res=>{
                 this.list=res.data.data.list;
                 this.total=res.data.data.total
-                this.loading=false
+                this.loading=false;
+            })
+
+            this.$api.getConferenceList().then(res=>{
+                this.conferenceList=res.data.data.list;
+            })
+             this.$api.getHotelList().then(res=>{
+                this.hotelList=res.data.data.list;
             })
         },
         check(status){

+ 100 - 21
src/views/conference/Checker.vue

@@ -12,10 +12,18 @@
             <div class="filter">
                 <el-form size="small" label-width="70px" :inline="true"  label-position="left">
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择会议"></el-select>
+                             <el-select v-model="form.conference_id" clearable placeholder="请选择会议">
+                                <el-option
+                                    v-for="(item, index) in conference_list"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
                     </el-form-item>
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择核销员"></el-select>
+                            <el-input  clearable placeholder="请输入姓名" v-model="form.user_name">
+                            </el-input>
                     </el-form-item>
                     <el-form-item>
                         <el-button @click="getData" type="primary">搜索</el-button>
@@ -29,17 +37,17 @@
              <el-table
                     class="table"
                     :data="list"
-                    height='50vh'
+                    height='59vh'
                     border  v-loading="loading"
                     default-expand-all row-key="id"
                     style="width: 100%">
                     <el-table-column
                     prop="name"  
                     label="核销员头像">
-                    <template slot-scope="scope"><img width="100" :src="scope.row.avatar" alt=""></template>
+                    <template slot-scope="scope"><img width="100" :src="scope.row.user_avatar" alt=""></template>
                     </el-table-column>
                     <el-table-column
-                    prop="name"  
+                    prop="user_name"  
                     label="核销员昵称">
                     </el-table-column>
                     <el-table-column
@@ -58,7 +66,7 @@
                     <el-table-column  
                     prop="zip"  width="100" fixed="right"
                     label="操作">
-                    <template slot-scope="">
+                    <template slot-scope="scope">
                         <el-button @click="del(scope.row.id)" class="edit"  type="text" >解除核销员</el-button>
                     </template>
                     </el-table-column>
@@ -69,34 +77,61 @@
         <el-dialog width="70%"
         title="添加核销员" :close-on-click-modal='false'
         :visible.sync="dialogVisible">
-           <el-button size="small" type="primary">点击获取会议列表</el-button>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" type="primary">确 定</el-button>
-            </span>
-        </el-dialog>
-        <el-dialog width="70%"
-        title="会议列表" :close-on-click-modal='false'
-        :visible.sync="dialogVisible1">
            <el-table
                     class="table"
-                    :data="list"
+                    :data="conference_list"
                     default-expand-all 
                     style="width: 100%">
                     <el-table-column
+                    width="55">
+                    <template slot-scope="scope"><el-radio v-model="check" :label="scope.row.id">&nbsp;</el-radio></template>
+                    </el-table-column>
+                    <el-table-column
                     prop="name"  
                     label="会议名称">
                     </el-table-column>
                     <el-table-column
                     prop="name"  
                     label="会议头像">
+                        <template slot-scope="scope"><img width="100" :src="scope.row.img" alt=""></template>
                     </el-table-column>
                     <el-table-column
-                    prop="name"  
+                    prop="ctime"  
                     label="创建时间">
                     </el-table-column>
+           </el-table>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="sure" size="small" type="primary">确 定</el-button>
+            </span>
+        </el-dialog>
+        <el-dialog width="70%"
+        title="备选核销员列表" :close-on-click-modal='false'
+        :visible.sync="dialogVisible1">
+         <el-input @change="getUser"  clearable placeholder="请输入姓名" v-model="name">
+              <el-button @click="getUser"  slot="append" icon="el-icon-search"></el-button>
+         </el-input>
+           <el-table
+                    class="table"
+                    :data="user_list" height="400"
+                    default-expand-all 
+                    style="width: 100%;margin-top:10px;">
+                    <el-table-column
+                    width="55">
+                    <template slot-scope="scope"><el-radio v-model="check1" :label="scope.row.id">&nbsp;</el-radio></template>
+                    </el-table-column>
+                    <el-table-column
+                    prop="nickname"  
+                    label="用户昵称">
+                    </el-table-column>
+                    <el-table-column
+                    prop=""  
+                    label="用户头像">
+                    <template slot-scope="scope"><img width="100" :src="scope.row.avatar" alt=""></template>
+                    </el-table-column>
            </el-table>
            <span slot="footer" class="dialog-footer">
-                <el-button size="small" type="primary">确 定</el-button>
+               <el-button @click="dialogVisible1=false" size="small">返回</el-button>
+                <el-button @click="add" size="small" type="primary">确认选择</el-button>
             </span>
         </el-dialog>
     </section>
@@ -113,8 +148,13 @@ export default {
             list:[{}],
             dialogVisible:false,
             dialogVisible1:false,
+            conference_list:[],
+            user_list:[],
             loading:false,
-            total:0
+            total:0,
+            check:'',
+            check1:'',
+            name:''
         }
     },
     methods:{
@@ -125,14 +165,32 @@ export default {
             this.form.page=this.$refs.pageButton.page
             this.getData()
         },
+        add(){
+            this.$api.addVerifier({conference_id:this.check,user_id:this.check1}).then(res=>{
+                    if(res.data.code == 0){
+                        this.$message({
+                            message: '添加成功',
+                            type: 'success'
+                        })
+                        this.dialogVisible=false;
+                        this.dialogVisible1=false;
+                        this.getData();
+                    }else{
+                        this.$message({
+                            message: res.data.message,
+                            type: 'error'
+                        })
+                    }
+            })
+        },
         del(id){
-                this.$confirm('确定删除吗', '提示', {
+                this.$confirm('确定解除', '提示', {
                         type: 'warning'
                     }).then(() => {
-                    this.$api.delUser({id:id}).then((res)=>{
+                    this.$api.deleteVerifier({id:id}).then((res)=>{
                         if(res.data.code==0){
                             this.$message({
-                                message: '删除成功',
+                                message: '除成功',
                                 type: 'success'
                             })
                             this.getData()
@@ -150,10 +208,31 @@ export default {
                 this.total=res.data.data.total
                 this.loading=false
             })
+            this.$api.getConferenceList().then(res=>{
+                this.conference_list=res.data.data.list;
+            })
+            
         },
+        getUser(){
+            this.$api.getUserinfoList({name:this.name}).then(res=>{
+                this.user_list=res.data.data.list;
+            })
+        },
+        sure(){
+            if(this.check){
+                this.dialogVisible1=true
+            }else{
+                this.$message({
+                            message: '请选择会议',
+                            type: 'error'
+                })
+            }
+            
+        }
     },
     created(){
         this.getData();
+        this.getUser();
     }
 }
 </script>

+ 17 - 6
src/views/conference/Hotel.vue

@@ -34,13 +34,21 @@
             <div class="filter">
                 <el-form size="small" label-width="70px" :inline="true"  label-position="left">
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择会议"></el-select>
+                            <el-select v-model="form.conference_id" clearable placeholder="请选择会议">
+                                <el-option
+                                    v-for="(item, index) in conference_list"
+                                    :key="index"
+                                    :label="item.name"
+                                    :value="item.id"
+                                ></el-option>
+                            </el-select>
                     </el-form-item>
                     <el-form-item label="">
-                            <el-select v-model="form.id" clearable placeholder="请选择酒店"></el-select>
+                            <el-input  clearable placeholder="请输入酒店名称" v-model="form.name">
+                            </el-input>
                     </el-form-item>
                     <el-form-item>
-                        <el-button  type="primary">搜索</el-button>
+                        <el-button @click="getData" type="primary">搜索</el-button>
                     </el-form-item>
                     <el-form-item style="float:right" >
                         <el-button @click="dialogVisible=true,dialogTitle='添加酒店',status='add'"  icon="el-icon-plud" type="primary">添加酒店</el-button>
@@ -51,7 +59,7 @@
              <el-table
                     class="table"
                     :data="list"
-                    height='50vh'
+                    height='59vh'
                     border  v-loading="loading"
                     default-expand-all row-key="id"
                     style="width: 100%">
@@ -113,7 +121,8 @@ export default {
             dialogTitle:'添加酒店',
             dialogVisible:false,
             status:'add',
-            cur_id:''
+            cur_id:'',
+            conference_list:[]
         }
     },
     methods:{
@@ -156,7 +165,9 @@ export default {
     },
     created(){
         this.getData()
-        
+        this.$api.getConferenceList().then(res=>{
+                this.conference_list=res.data.data.list;
+        })
     }
 }
 </script>

+ 35 - 10
src/views/conference/Manage.vue

@@ -12,6 +12,14 @@
             margin-top: 30px !important;
         }
     }
+    .desc{
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 3;
+        -webkit-box-orient: vertical;
+        white-space: normal;
+    }
 </style>
 <template>
     <section>
@@ -33,7 +41,7 @@
             <el-table
                     class="table"
                     :data="list"
-                    height='50vh'
+                    height='59vh'
                     border  v-loading="loading"
                     default-expand-all row-key="id"
                     style="width: 100%">
@@ -42,7 +50,7 @@
                     label="会议名称">
                     </el-table-column>
                     <el-table-column
-                    prop="username"  
+                    prop="username" 
                     label="会议海报">
                     <template slot-scope="scope"><img width="100" :src="scope.row.img" alt=""></template>
                     </el-table-column>
@@ -51,16 +59,22 @@
                     label="主办方">
                     </el-table-column>
                     <el-table-column
-                    prop="username"  
+                    prop=""  
                     label="主讲人">
                     </el-table-column>
                     <el-table-column
-                    prop=""  
+                    width="350"
                     label="会议时间">
+                    <template slot-scope="scope">
+                        {{scope.row.begin_time}}-{{scope.row.end_time}}
+                    </template>
                     </el-table-column>
                     <el-table-column
-                    prop=""  
+                    prop="desc"   width="300"
                     label="会议简介">
+                    <template slot-scope="scope">
+                        <div class="desc">{{scope.row.desc}}</div>
+                    </template>
                     </el-table-column>
                     <el-table-column
                     prop=""  
@@ -71,17 +85,26 @@
                     label="状态">
                     </el-table-column>
                     <el-table-column  
-                    prop="zip"  width="150"
+                    prop="zip"  width="220" fixed="right"
                     label="操作">
                     <template slot-scope="scope">
-                        <el-button  @click="dialogVisible=true,status='bind',cur_id=scope.row.id,name=scope.row.name"  type="text" >添加酒店</el-button>
-                        <el-button class="edit" type="text">查看酒店</el-button>
+                        <el-button  @click="dialogVisible1=true,cur_id=scope.row.id,name=scope.row.name"  type="text" >管理酒店</el-button>
+                        <!-- <el-button  @click="dialogVisible=true,status='bind',cur_id=scope.row.id,name=scope.row.name"  type="text" >添加酒店</el-button> -->
+                        <el-button @click="$router.push({path:'/conference/conference/add',query:{id:scope.row.id}})" class="edit" type="text">编辑会议</el-button>
+                        <el-button @click="del(scope.row.id)" type="text" class="del">删除会议</el-button>
+
                     </template>
                     </el-table-column>
             </el-table>
             <Page  ref="pageButton" :current='form.page' :page_size='form.page_size' :total='total' @pageChange='gopage'/>
         </div>
 
+        <el-dialog width="80%" class="hotel"
+        title="酒店列表" :close-on-click-modal='false'
+        :visible.sync="dialogVisible1">
+            会议名称:{{name}}
+            <el-button size="small" @click="dialogVisible=true,status='bind'" type="primary">添加酒店</el-button>
+        </el-dialog>
         <el-dialog width="80%" class="hotel"
         :title="dialogTitle" :close-on-click-modal='false'
         :visible.sync="dialogVisible">
@@ -110,6 +133,7 @@ export default {
       loading:false,
       input:'',
       dialogVisible:false,
+      dialogVisible1:false,
       dialogTitle:"添加酒店",
       defaultProps:{},
       data: [],
@@ -121,7 +145,8 @@ export default {
       },
       //添加酒店
       add(){
-
+          this.dialogVisible=false;
+         
       },
       gopage(size){
             if(size){
@@ -148,7 +173,7 @@ export default {
                 this.$confirm('确定删除吗', '提示', {
                         type: 'warning'
                     }).then(() => {
-                    this.$api.deleteEnterprise({id:id}).then((res)=>{
+                    this.$api.deleteConference({id:id}).then((res)=>{
                             this.$message({
                                 message: '删除成功',
                                 type: 'success'

+ 6 - 10
src/views/journalQun/AddJournal.vue

@@ -315,13 +315,9 @@ export default {
       imageUrl: "",
       rules: {
         name: [{ required: true, message: "请输入标题", trigger: "blur" }],
-        journal_id: [
-          { required: true, message: "请选择来源", trigger: "change" },
-        ],
-        author: [{ required: true, message: "请选择模板", trigger: "blur" }],
-        publish_time: [
-          { required: true, message: "发布时间", trigger: "blur" },
-        ],
+        wxcode: [{ required: true, message: "请输入微信号", trigger: "blur" }],
+        organizer_id: [{ required: true, message: "请选择主办单位", trigger: "blur" }],
+        subject_id: [{ required: true, message: "请选择学科", trigger: "change" }],
         img: [{ required: true, message: "封面图", trigger: "blur" }],
       },
     };
@@ -374,7 +370,7 @@ export default {
         if (valid) {
           if (id) {
             parm.id = id;
-            this.$api.updateArticle(parm).then((res) => {
+            this.$api.updateJournal(parm).then((res) => {
               if (res.data.code == 0) {
                 this.$message({
                   type: "success",
@@ -385,7 +381,7 @@ export default {
               }
             });
           } else {
-            this.$api.addArticle(parm).then((res) => {
+            this.$api.addJournal(parm).then((res) => {
               if (res.data.code == 0) {
                 this.$message({
                   type: "success",
@@ -405,7 +401,7 @@ export default {
       this.$confirm("确定删除吗", "提示", {
         type: "warning",
       }).then(() => {
-        this.$api.deleteEnterprise({ id: id }).then((res) => {
+        this.$api.delJournal({ id: id }).then((res) => {
           this.$message({
             message: "删除成功",
             type: "success",

+ 155 - 206
src/views/journalQun/Journal.vue

@@ -1,217 +1,166 @@
 <style lang="scss">
-    .preview{
-        .el-form-item{
-            margin-bottom:15px;
-        }
-        label,p{
-            line-height: 25px !important;
-        }
-    }
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
 </style>
 <template>
-    <section>
-        <p>中科院全刊</p>
-        <div class="content">
-            <div class="filter">
-                <el-form size="small" label-width="70px" :inline="true"  label-position="left">
-                    <el-form-item label="">
-                            <el-input clearable placeholder="请输入信息标题" v-model="form.name"></el-input>
-                    </el-form-item>
-                    <el-form-item>
-                        <el-button  type="primary">搜索</el-button>
-                    </el-form-item>
-                    <el-form-item style="float:right" >
-                        <el-button @click="add" type="primary">添加期刊</el-button>
-                    </el-form-item>
-                </el-form>
-            </div>
-            <el-table
-                    class="table"
-                    :data="list" height="50vh"
-                    border  v-loading="loading"
-                    default-expand-all row-key="id"
-                    style="width: 100%">
-                    <el-table-column
-                    prop="img"
-                    label="期刊封面">
-                        <template slot-scope="scope">
-                            <img :src="scope.row.img" alt="" height="80" width="60">
-                        </template>
-                    </el-table-column>
-                    <el-table-column
-                    prop="name"
-                    width="180"  
-                    label="期刊名称">
-                    </el-table-column>
-                    <el-table-column
-                    prop="wxcode" 
-                    label="微信号">
-                    </el-table-column>
-                    <el-table-column
-                    prop="subject_name" 
-                    label="主办单位">
-                    </el-table-column>
-                    <el-table-column
-                    prop="desc"
-                    width="300" 
-                    label="简介">
-                    </el-table-column>
-                    <el-table-column
-                    prop="name" 
-                    label="中文名称">
-                    </el-table-column>
-                    <el-table-column
-                    prop="ename" 
-                    label="外文名称">
-                    </el-table-column>
-                    <el-table-column
-                    prop="languages" 
-                    label="语种">
-                    </el-table-column>
-                    <el-table-column
-                    prop="editor" 
-                    label="主编">
-                    </el-table-column>
-                    <el-table-column
-                    prop="corganizers" 
-                    label="主管单位">
-                    </el-table-column>
-                    <el-table-column
-                    prop="publishingUnit" 
-                    label="办刊单位">
-                    </el-table-column>
-                    <el-table-column
-                    prop="publishingTime" 
-                    label="创刊时间">
-                    </el-table-column>
-                    <el-table-column
-                    prop="domestic" 
-                    label="国内刊号">
-                    </el-table-column>
-                    <el-table-column
-                    prop="issn" 
-                    label="国际刊号">
-                    </el-table-column>
-                    <el-table-column
-                    prop="website" 
-                    label="期刊官网">
-                    </el-table-column>
-                    <el-table-column
-                    prop="editorialAddress" 
-                    label="编辑部地址">
-                    </el-table-column>
-                    <el-table-column  
-                    prop="zip"  width="150"
-                    label="操作" fixed="right">
-                    <template slot-scope="scope">
-                        <el-button type="text" @click="dialogVisible=true">查看</el-button>
-                        <el-button class="edit" type="text" @click="edit(scope.row)">编辑</el-button>
-                        <el-button class="del" @click="del" type="text">删除</el-button>
-                    </template>
-                    </el-table-column>
-            </el-table>
-            <Page  ref="pageButton" :current='form.page' :page_size='form.page_size' :total='total' @pageChange='gopage'/>
-        </div>
-
-        <el-dialog
-        title="发送通知消息" :close-on-click-modal='false'
-        :visible.sync="dialogVisible">
-        <el-form size="small" class="preview" :inline='false' label-width="80px">
-                <el-form-item label="标题">
-                    <p v-if='edit'>关于集中使用期刊公众号的通知</p>
-                    <el-input v-else v-model="form.name"></el-input>
-                </el-form-item>
-                <el-form-item label="消息内容">
-                    <p v-if='edit'>
-                        关于集中使用期刊公众号的通知关于集中使用期刊公众号的通知
-                        关于集中使用期刊公众号的通知关于集中使用期刊公众号的通知
-                        关于集中使用期刊公众号的通知关于集中使用期刊公众号的通知
-                    </p>
-                    <el-input v-else v-model="form.name" type="textarea"></el-input>
-                </el-form-item>
-                <el-form-item label="文件">
-                    <p v-if='edit'>
-                        <el-link type="primary">关于集中使用期刊公众号的通知.docx</el-link><br>
-                        <el-link type="primary">关于集中使用期刊公众号的通知.docx</el-link>
-                    </p>
-                    <el-button v-else class="upload_btn" plain type="primary">选择文件 <input type="file"></el-button>
-                </el-form-item>
-                <el-form-item label="接收人">
-                    <el-input placeholder="请输入内容" v-model="input" class="input-with-select">
-                        <el-button slot="append" icon="el-icon-search"></el-button>
-                    </el-input>
-                    <el-tree
-                    :data="data"
-                    show-checkbox
-                    node-key="id" default-expand-all
-                    :props="defaultProps">
-                    </el-tree>
-                </el-form-item>
+  <section>
+    <p>中科院全刊</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入信息标题"
+              v-model="form.name"
+              @clear="getData"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button @click="add" type="primary">添加期刊</el-button>
+          </el-form-item>
         </el-form>
-        <span slot="footer" class="dialog-footer">
-            <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
-        </span>
-        </el-dialog>
-    </section>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="img" label="期刊封面">
+          <template slot-scope="scope">
+            <img :src="scope.row.img" alt="" height="80" width="60" />
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" width="180" label="期刊名称">
+        </el-table-column>
+        <el-table-column prop="wxcode" label="微信号"> </el-table-column>
+        <el-table-column prop="subject_name" label="主办单位">
+        </el-table-column>
+        <el-table-column prop="desc" width="300" label="简介">
+        </el-table-column>
+        <el-table-column prop="name" label="中文名称"> </el-table-column>
+        <el-table-column prop="ename" label="外文名称"> </el-table-column>
+        <el-table-column prop="languages" label="语种"> </el-table-column>
+        <el-table-column prop="editor" label="主编"> </el-table-column>
+        <el-table-column prop="corganizers" label="主管单位"> </el-table-column>
+        <el-table-column prop="publishingUnit" label="办刊单位">
+        </el-table-column>
+        <el-table-column prop="publishingTime" label="创刊时间">
+        </el-table-column>
+        <el-table-column prop="domestic" label="国内刊号"> </el-table-column>
+        <el-table-column prop="issn" label="国际刊号"> </el-table-column>
+        <el-table-column prop="website" label="期刊官网"> </el-table-column>
+        <el-table-column prop="editorialAddress" label="编辑部地址">
+        </el-table-column>
+        <el-table-column prop="zip" width="150" label="操作" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="dialogVisible = true"
+              >查看</el-button
+            >
+            <el-button class="edit" type="text" @click="edit(scope.row)"
+              >编辑</el-button
+            >
+            <el-button class="del" @click="del" type="text">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+  </section>
 </template>
 <script>
-import Page from '../../components/Page';
+import Page from "../../components/Page";
 export default {
-  components:{
-        Page
+  components: {
+    Page,
   },
-  data(){
-    return{
-    //   edit:0,
-      form:{name:'',page:1,page_size:20},
-      total:1,
-      list:[{name:'2333'}],
-      loading:false,
-      input:''
-    }
+  data() {
+    return {
+      //   edit:0,
+      form: { name: "", page: 1, page_size: 20 },
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      input: "",
+    };
   },
-  methods:{
-        gopage(size){
-            if(size){
-                this.form.page_size=size
-            }
-            this.form.page=this.$refs.pageButton.page
-            this.getData()
-        },
-        edit(row){
-            this.$router.push({path:"/journal/journal/add",query:{id:row.id}})
-        },
-        add(){
-            this.$router.push({path:'/journal/journal/add'})
-        },
-        detail(id){
-            this.$router.push({ path: '/company/detail', query: {  id: id,page:this.form.page,page_size:this.form.page_size  } });
-        },
-        getData(){
-            var parm=this.form;        
-            this.loading=true
-            this.$api.getJournalList(parm).then(res=>{
-                this.list=res.data.data.list;
-                this.total=res.data.data.total
-                this.loading=false
-            })
-        },
-        del(id){
-                this.$confirm('确定删除吗', '提示', {
-                        type: 'warning'
-                    }).then(() => {
-                    this.$api.deleteEnterprise({id:id}).then((res)=>{
-                            this.$message({
-                                message: '删除成功',
-                                type: 'success'
-                            })
-                            this.getData()
-                    })
-                })
-        },
+  methods: {
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    edit(row) {
+      this.$router.push({
+        path: "/journal/journal/add",
+        query: { id: row.id },
+      });
+    },
+    add() {
+      this.$router.push({ path: "/journal/journal/add" });
+    },
+    detail(id) {
+      this.$router.push({
+        path: "/company/detail",
+        query: { id: id, page: this.form.page, page_size: this.form.page_size },
+      });
+    },
+    search() {
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getJournalList(parm).then((res) => {
+        this.list = res.data.data.list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.deleteEnterprise({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
   },
-  created(){
-      this.getData()
-  }
-}
+  created() {
+    this.getData();
+  },
+};
 </script>

+ 342 - 0
src/views/journalQun/Organizer.vue

@@ -0,0 +1,342 @@
+<style lang="scss" scoped>
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
+.el-cascader {
+  width: 100%;
+}
+a {
+  text-decoration: none;
+  color: #409eff;
+  cursor: pointer;
+}
+// 右边
+.item-main {
+  // margin:34px;
+  // height:600px;
+  // background: #FFFFFF;
+  border: 1px solid #dddddd;
+  box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.13);
+  border-radius: 20px;
+  .el-form.over_y {
+    max-height: calc(100vh - 340px);
+  }
+  /deep/.el-form-item__label {
+    float: none;
+  }
+}
+// label样式
+.edit_label {
+  /deep/.el-input__inner {
+    background: #f5faff;
+    border: 0px;
+    padding: 0px;
+  }
+}
+/deep/.opicon {
+  font-weight: bold;
+  padding: 5px;
+  color: #3895fe;
+}
+.tpl_title {
+  font-size: 18px;
+  margin: 20px 0;
+}
+.tpl_form {
+  margin: 20px;
+  border: 1px solid #ccc;
+  border-radius: 20px;
+  /deep/.el-form-item {
+    background: none;
+  }
+  /deep/.el-form-item__content {
+    width: 100%;
+  }
+}
+.survey_logo {
+  position: relative;
+  top: 15px;
+  left: 20px;
+}
+.result_dialog .el-dialog{
+    width: 40%;
+    margin-top:20vh!important;
+}
+.result-item{
+    height: 35px;
+    .label{
+        font-weight: 600;
+    }
+}
+// 上传
+
+/deep/.avatar-uploader .el-upload {
+  width: 148px;
+  height: 148px;
+  line-height: 148px;
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+  .avatar {
+    width: 100%;
+    height: auto;
+  }
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 68px;
+  height: 68px;
+  line-height: 68px;
+  text-align: center;
+}
+.avatar {
+  width: 68px;
+  height: 68px;
+  display: block;
+}
+/deep/.speaker_avatar .el-upload {
+  width: 80px;
+  height: 80px;
+  line-height: 80px;
+}
+.hotel_imgs {
+  /deep/.el-upload--picture-card {
+    width: 79px;
+    height: 79px;
+    line-height: 79px;
+  }
+}
+</style>
+<template>
+  <section>
+    <p><span>刊群导览></span>主办单位</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入标题"
+              v-model="form.name"
+              @clear="getData"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button @click="add" type="primary">添加主办单位</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="name" label="单位名称"> </el-table-column>
+        <el-table-column prop="desc" label="主办单位简介" width="1200px"></el-table-column>
+        <el-table-column prop="journal_num" label="期刊数量"></el-table-column>
+        <el-table-column prop="zip" width="150" label="操作">
+          <template slot-scope="scope">
+            <el-button class="edit" type="text" @click="edit(scope.row)"
+              >编辑</el-button
+            >
+            <el-button class="del" @click="del(scope.row.id)" type="text"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+    <!--新增编辑-->
+    <el-dialog
+      class='fu-dialog'
+      :title="dialogTitle"
+      :close-on-click-modal="false"
+      :visible.sync="dialogVisible"
+    >
+      <el-form
+        size="small"
+        class="preview"
+        :inline="false"
+        label-width="80px"
+        :model="form1"
+        ref="form1"
+        :rules="rules"
+      >
+        <el-form-item label="单位名称" prop="name">
+          <el-input v-model="form1.name" placeholder="请输入单位名称" maxlength="50" show-word-limit></el-input>
+        </el-form-item>
+        <el-form-item label="单位简介" prop="desc">
+          <el-input type="textarea" v-model="form1.desc" placeholder="请输入单位简介"></el-input>
+        </el-form-item>
+        <el-form-item label="单位封面" prop="img">
+          <el-upload
+            class="avatar-uploader"
+            action="/api/admin/uploadfile"
+            :show-file-list="false"
+            :on-success="handleAvatarSuccess"
+          >
+            <img v-if="form1.img" :src="form1.img" class="avatar" />
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+          </el-upload>
+          <span style="font-size: 12px; color: #999999"
+            >建议图片尺寸为:210*160</span
+          >
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="save">确 定</el-button>
+      </span>
+    </el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+import fuEditor from '../../components/fuEditor'
+export default {
+  components: {
+    Page,
+    fuEditor
+  },
+  data() {
+    return {
+      form: { name: "", page: 1, page_size: 20 },
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      dialogTitle:"",
+      dialogVisible:false,
+      rules: {
+        name: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
+        desc: [{ required: true, message: "请输入单位简介", trigger: "blur" }],
+        img: [{ required: true, message: "请上传单位封面", trigger: "blur" }],
+      },
+      form1:{},
+    };
+  },
+  methods: {
+    //封面
+    handleAvatarSuccess(res, file) {
+      this.$set(this.form1,'img',file.response.data)
+    },
+    search() {
+      let parm = this.form;
+      this.getData();
+    },
+    add() {
+      this.form1 = {};
+      this.dialogVisible = true;
+      this.dialogTitle = "添加主办单位";
+    },
+    addArticle(){
+          this.$router.push({path:'/article/article/add'})
+    },
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getOrganizerList(parm).then((res) => {
+        console.log(res)
+        this.list = res.data.data.list;
+        this.loading = false;
+      });
+    },
+    search(){
+      this.getData()
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.delOrganizer({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
+    edit(row) {
+      this.dialogVisible = true
+      this.form1 = row
+    },
+    save() {
+      this.$refs["form1"].validate((valid) => {
+        if (valid) {
+          let parm = this.form1;
+          let id = this.form1.id;
+          parm.receiver_id = JSON.stringify(parm.receiver_id);
+          if (id) {
+            this.$api.updateOrganizer(parm).then((res) => {
+              if (res.data.code == 0) {
+                this.$message({
+                  type: "success",
+                  message: "保存成功!",
+                });
+              } else {
+                this.$message.error("保存失败!");
+              }
+              this.getData();
+              this.dialogVisible = false;
+            });
+          } else {
+            this.$api.addOrganizer(parm).then((res) => {
+              if (res.data.code == 0) {
+                this.$message({
+                  type: "success",
+                  message: "保存成功!",
+                });
+              } else {
+                this.$message.error("保存失败!");
+              }
+              this.getData();
+              this.dialogVisible = false;
+            });
+          }
+        }
+      });
+    },
+  },
+  created() {
+    this.getData();
+  },
+};
+</script>

+ 324 - 0
src/views/journalQun/Subject.vue

@@ -0,0 +1,324 @@
+<style lang="scss" scoped>
+.preview {
+  .el-form-item {
+    margin-bottom: 15px;
+  }
+  label,
+  p {
+    line-height: 25px !important;
+  }
+}
+.el-cascader {
+  width: 100%;
+}
+a {
+  text-decoration: none;
+  color: #409eff;
+  cursor: pointer;
+}
+// 右边
+.item-main {
+  // margin:34px;
+  // height:600px;
+  // background: #FFFFFF;
+  border: 1px solid #dddddd;
+  box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.13);
+  border-radius: 20px;
+  .el-form.over_y {
+    max-height: calc(100vh - 340px);
+  }
+  /deep/.el-form-item__label {
+    float: none;
+  }
+}
+// label样式
+.edit_label {
+  /deep/.el-input__inner {
+    background: #f5faff;
+    border: 0px;
+    padding: 0px;
+  }
+}
+/deep/.opicon {
+  font-weight: bold;
+  padding: 5px;
+  color: #3895fe;
+}
+.tpl_title {
+  font-size: 18px;
+  margin: 20px 0;
+}
+.tpl_form {
+  margin: 20px;
+  border: 1px solid #ccc;
+  border-radius: 20px;
+  /deep/.el-form-item {
+    background: none;
+  }
+  /deep/.el-form-item__content {
+    width: 100%;
+  }
+}
+.survey_logo {
+  position: relative;
+  top: 15px;
+  left: 20px;
+}
+.result_dialog .el-dialog{
+    width: 40%;
+    margin-top:20vh!important;
+}
+.result-item{
+    height: 35px;
+    .label{
+        font-weight: 600;
+    }
+}
+// 上传
+
+/deep/.avatar-uploader .el-upload {
+  width: 148px;
+  height: 148px;
+  line-height: 148px;
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+  .avatar {
+    width: 100%;
+    height: auto;
+  }
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 68px;
+  height: 68px;
+  line-height: 68px;
+  text-align: center;
+}
+.avatar {
+  width: 68px;
+  height: 68px;
+  display: block;
+}
+/deep/.speaker_avatar .el-upload {
+  width: 80px;
+  height: 80px;
+  line-height: 80px;
+}
+.hotel_imgs {
+  /deep/.el-upload--picture-card {
+    width: 79px;
+    height: 79px;
+    line-height: 79px;
+  }
+}
+</style>
+<template>
+  <section>
+    <p><span>刊群导览></span>学科</p>
+    <div class="content">
+      <div class="filter">
+        <el-form
+          size="small"
+          label-width="70px"
+          :inline="true"
+          label-position="left"
+        >
+          <el-form-item label="">
+            <el-input
+              clearable
+              placeholder="请输入标题"
+              v-model="form.name"
+              @clear="getData"
+            ></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="search">搜索</el-button>
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button @click="add" type="primary">添加学科</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table
+        class="table"
+        :data="list"
+        height="50vh"
+        border
+        v-loading="loading"
+        default-expand-all
+        row-key="id"
+        style="width: 100%"
+      >
+        <el-table-column prop="name" label="学科名称"> </el-table-column>
+        <el-table-column prop="desc" label="学科简介" width="1200px"></el-table-column>
+        <el-table-column prop="journal_name" label="期刊数量"></el-table-column>
+        <el-table-column prop="zip" width="150" label="操作">
+          <template slot-scope="scope">
+            <el-button class="edit" type="text" @click="edit(scope.row)"
+              >编辑</el-button
+            >
+            <el-button class="del" @click="del(scope.row.id)" type="text"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <Page
+        ref="pageButton"
+        :current="form.page"
+        :page_size="form.page_size"
+        :total="total"
+        @pageChange="gopage"
+      />
+    </div>
+    <!--新增编辑-->
+    <el-dialog
+      class='fu-dialog'
+      :title="dialogTitle"
+      :close-on-click-modal="false"
+      :visible.sync="dialogVisible"
+    >
+      <el-form
+        size="small"
+        class="preview"
+        :inline="false"
+        label-width="80px"
+        :model="form1"
+        ref="form1"
+        :rules="rules"
+      >
+        <el-form-item label="学科名称" prop="name">
+          <el-input v-model="form1.name" placeholder="请输入学科名称" maxlength="50" show-word-limit></el-input>
+        </el-form-item>
+        <el-form-item label="学科简介" prop="desc">
+          <el-input type="textarea" v-model="form1.desc" placeholder="请输入学科简介"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="save">确 定</el-button>
+      </span>
+    </el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+import fuEditor from '../../components/fuEditor'
+export default {
+  components: {
+    Page,
+    fuEditor
+  },
+  data() {
+    return {
+      form: { name: "", page: 1, page_size: 20 },
+      total: 1,
+      list: [{ name: "2333" }],
+      loading: false,
+      dialogTitle:"",
+      dialogVisible:false,
+      rules: {
+        name: [{ required: true, message: "请输入学科名称", trigger: "blur" }],
+        desc: [{ required: true, message: "请输入学科简介", trigger: "blur" }]
+      },
+      form1:{}
+    };
+  },
+  methods: {
+    //封面
+    handleAvatarSuccess(res, file) {
+      this.form1.img = file.response.data;
+      console.log(this.form1.img);
+    },
+    search() {
+      this.getData();
+    },
+    add() {
+      this.form1 = {};
+      this.dialogVisible = true;
+      this.dialogTitle = "添加主办单位";
+    },
+    addArticle(){
+          this.$router.push({path:'/article/article/add'})
+    },
+    gopage(size) {
+      if (size) {
+        this.form.page_size = size;
+      }
+      this.form.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      var parm = this.form;
+      this.loading = true;
+      this.$api.getSubjectList(parm).then((res) => {
+        console.log(res)
+        this.list = res.data.data.list;
+        this.loading = false;
+      });
+    },
+    del(id) {
+      this.$confirm("确定删除吗", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api.delSubject({ id: id }).then((res) => {
+          this.$message({
+            message: "删除成功",
+            type: "success",
+          });
+          this.getData();
+        });
+      });
+    },
+    edit(row) {
+        this.form1 = row
+      this.dialogVisible = true
+    },
+    save() {
+      this.$refs["form1"].validate((valid) => {
+        if (valid) {
+          let parm = this.form1;
+          let id = this.form1.id;
+          parm.receiver_id = JSON.stringify(parm.receiver_id);
+          if (id) {
+            this.$api.updateSubject(parm).then((res) => {
+              if (res.data.code == 0) {
+                this.$message({
+                  type: "success",
+                  message: "保存成功!",
+                });
+              } else {
+                this.$message.error("保存失败!");
+              }
+              this.getData();
+              this.dialogVisible = false;
+            });
+          } else {
+            this.$api.addSubject(parm).then((res) => {
+              if (res.data.code == 0) {
+                this.$message({
+                  type: "success",
+                  message: "保存成功!",
+                });
+              } else {
+                this.$message.error("保存失败!");
+              }
+              this.getData();
+              this.dialogVisible = false;
+            });
+          }
+        }
+      });
+    },
+  },
+  created() {
+    this.getData();
+  },
+};
+</script>

+ 29 - 2
src/views/message/InnerSurvey.vue

@@ -59,7 +59,9 @@ a {
 }
 .tpl_title {
   font-size: 18px;
-  margin: 20px 0;
+  // margin: 20px 0;
+  width:80%;
+  margin:20px auto;
 }
 .tpl_form {
   margin: 20px;
@@ -143,6 +145,13 @@ a {
     border-radius: 60px;
   }
 }
+.message_desc{
+  width: 80%;
+  margin:auto;
+  text-indent: 25px;
+  color: #1c388c;
+  font-size: 14px;
+}
 </style>
 <template>
   <section>
@@ -291,6 +300,21 @@ a {
             show-word-limit
           ></el-input>
         </el-form-item>
+        <el-form-item label="发布单位" prop="publisher">
+          <el-input
+            v-model="form1.publisher"
+            placeholder="请输入发布单位"
+            maxlength="50"
+            show-word-limit
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="问卷描述">
+          <el-input
+            type="textarea"
+            v-model="form1.desc"
+            placeholder="请输入问卷描述"
+          ></el-input>
+        </el-form-item>
         <el-form-item label="接收人" prop="receiver_id">
           <el-cascader
             v-model="form1.receiver_id"
@@ -340,8 +364,9 @@ a {
       width="400px"
     >
       <div class="item-main">
-        <img src="../../assets/survey_logo.png" alt="" class="survey_logo" />
+        <!-- <img src="../../assets/survey_logo.png" alt="" class="survey_logo" /> -->
         <h5 align="center" class="tpl_title">{{ title }}</h5>
+        <div class="message_desc">{{messageData.desc}}</div>
         <el-form
           ref="form2"
           :model="form2"
@@ -547,6 +572,7 @@ export default {
   data() {
     return {
       //   checked: [],
+      messageData:{},
       rules1: {
         rules: {},
       },
@@ -740,6 +766,7 @@ export default {
       this.form2.status = row.status;
       this.$api.getMessageInfo({ id: row.id }).then((res) => {
         if (res.data.code == 0) {
+          this.messageData = res.data.data;
           this.widgetList = res.data.data.widget;
           let rules1 = {};
           this.widgetList.forEach((i) => {

+ 29 - 2
src/views/message/OutSurvey.vue

@@ -63,7 +63,9 @@ a {
 }
 .tpl_title {
   font-size: 18px;
-  margin: 20px 0;
+  // margin: 20px 0;
+  width:80%;
+  margin:20px auto;
 }
 .tpl_form {
   margin: 20px;
@@ -142,6 +144,13 @@ a {
     border-radius: 60px;
   }
 }
+.message_desc{
+  width: 80%;
+  margin:auto;
+  text-indent: 25px;
+  color: #1c388c;
+  font-size: 14px;
+}
 </style>
 <template>
   <section>
@@ -274,6 +283,21 @@ a {
             show-word-limit
           ></el-input>
         </el-form-item>
+        <el-form-item label="发布单位" prop="publisher">
+          <el-input
+            v-model="form1.publisher"
+            placeholder="请输入发布单位"
+            maxlength="50"
+            show-word-limit
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="问卷描述">
+          <el-input
+            type="textarea"
+            v-model="form1.desc"
+            placeholder="请输入问卷描述"
+          ></el-input>
+        </el-form-item>
         <el-form-item label="问卷模板" prop="template_id">
           <el-select
             placeholder="请选择问卷模板"
@@ -308,8 +332,9 @@ a {
       class="survey_dialog" width="400px" 
     >
       <div class="item-main">
-        <img src="../../assets/survey_logo.png" alt="" class="survey_logo" />
+        <!-- <img src="../../assets/survey_logo.png" alt="" class="survey_logo" /> -->
         <h5 align="center" class="tpl_title">{{ title }}</h5>
+        <div class="message_desc">{{messageData.desc}}</div>
         <el-form ref="form2" :model="form2" class="tpl_form over_y" :rules="rules1.rules">
           <el-form-item
             v-for="(item, index) in widgetList"
@@ -511,6 +536,7 @@ export default {
   data() {
     return {
       //   checked: [],
+      messageData:{},
       rules1: {
         rules:{}
       },
@@ -703,6 +729,7 @@ export default {
       this.form2 = {};
       this.$api.getMessageInfo({ id: row.id }).then((res) => {
         if (res.data.code == 0) {
+          this.messageData = res.data.data;
           this.widgetList = res.data.data.widget;
           let rules1 = {};
           this.widgetList.forEach((i) => {

+ 3 - 3
src/views/message/modelForm.vue

@@ -370,7 +370,7 @@
                 <div class='item-title'>效果预览</div>
                 <div class="phone">
                     <div class='item-main'>
-                        <img src="../../assets/survey_logo.png" alt="" class="survey_logo">
+                        <!-- <img src="../../assets/survey_logo.png" alt="" class="survey_logo"> -->
                         <h5 align='center' class="tpl_title">{{title}}</h5>
                         <el-form ref="form" :model="form" class="tpl_form over_y">
                             <template v-for="(item,index) in widgetList">
@@ -608,8 +608,8 @@ export default {
       }
     },
     plusOption(options, index) {
-      if (options.length >= 10) {
-        this.$message.error("选项不能超过10个!");
+      if (options.length >= 100) {
+        this.$message.error("选项不能超过100个!");
       } else {
         options.splice(index + 1, 0, {
           label: "选项" + (index + 1),

+ 11 - 0
src/views/message/survey/answer.html

@@ -72,6 +72,14 @@
   .el-checkbox:not(:last-child){
     margin-bottom: 10px!important;
   }
+  .message_desc{
+  /* width: 80%; */
+  margin:auto;
+  text-indent: 25px;
+  color: #1c388c;
+  font-size: 14px;
+  padding-bottom:10px;
+}
 </style>
 
 <body>
@@ -79,6 +87,7 @@
     <div class="item-main">
       <img src="static/survey_logo.png" alt="" class="survey_logo" />
       <h5 align="center" class="tpl_title">{{ title }}</h5>
+      <div class="message_desc">{{messageData.desc}}</div>
       <el-form ref="form2" :model="form2" class="tpl_form over_y" :rules="rules1.rules" v-if="this.form2.status==1">
         <el-form-item v-for="(item, index) in widgetList" :key="index" :label="(index+1)+'、'+(item.label)+item.cntype"
           :prop="item.label">
@@ -126,6 +135,7 @@
     el: '#app',
     data: function () {
       return {
+        messageData:{},
         rules1: {
           rules: {},
         },
@@ -153,6 +163,7 @@
             document.getElementById('app').style.display = 'block'
             this.form2.status = res.data.status
             let widgetList = res.data.widget;
+            this.messageData = res.data;
             let rules1 = {};
             for (let i = 0; i < widgetList.length; i++) {
               if (widgetList[i].type == 'checkbox') {

+ 119 - 81
src/views/message/survey/login.html

@@ -1,71 +1,97 @@
 <!DOCTYPE html>
 <html>
+
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,
     width=device-width,initial-scale=1.0">
-    <title>调查</title>
+  <title>调查</title>
   <!-- import CSS -->
   <link rel="stylesheet" href="static/index.css">
 </head>
 <style>
-    body{
-        margin:0;
-        padding:40px 0 0;
-        height:calc(100vh - 40px);
-        background: linear-gradient(0deg, #CEF0FF, #FFFFFF);
-    }
-  #app{
+  body {
+    margin: 0;
+    padding: 40px 0 0;
+    height: calc(100vh - 40px);
+    background: linear-gradient(0deg, #CEF0FF, #FFFFFF);
+  }
+
+  #app {
     display: none;
   }
-  .logo-img{
-    width:150px;
-    margin:0 auto;
+
+  .logo-img {
+    width: 150px;
+    margin: 0 auto;
   }
-  .el-form{
-      padding:35px;
+
+  .el-form {
+    padding: 35px;
   }
-  .el-input__inner{
-      height:48px;
-      padding-left:42px;
-      border: 1px solid #EFF0F2;
-      border-radius: 5px;
+
+  .el-input__inner {
+    height: 48px;
+    padding-left: 42px;
+    border: 1px solid #EFF0F2;
+    border-radius: 5px;
   }
-  .el-form-item img{
+
+  .el-form-item img {
     position: absolute;
     top: 8px;
     left: 6px;
   }
+
   .el-button--primary {
     margin-top: 29px;
     height: 48px;
     font-size: 18px;
-    width:100%;
+    width: 100%;
     background-color: #3780CD;
-    }
+  }
+
   .tpl_title {
     font-size: 18px;
     margin-bottom: 20px;
   }
-  .el-form-item__label{
-        float:none;   
-    }
+
+  .el-form-item__label {
+    float: none;
+  }
+  .imgcode .el-input{
+    width: 62%;
+    /* background: #b4bccc; */
+  }
+  .imgcode .el-input__inner{
+    padding-left: 6px!important;
+  }
+  .imgcode img{
+    position: absolute;
+    right: 10px!important;
+    left: auto;
+  }
 </style>
+
 <body>
-  <div id="app" >
+  <div id="app">
     <div class='logo-img'><img src="static/logo.png" alt=""></div>
     <el-form>
-        <el-form-item>
-            <el-input v-model='form.username' clearable placeholder="请输入账号"></el-input>
-            <img src="static/username.png" alt="">
-        </el-form-item>
-        <el-form-item>
-            <el-input v-model='form.password' type='password' clearable placeholder="请输入密码"></el-input>
-            <img src="static/pwd.png" alt="">
-        </el-form-item>
-        <el-form-item>
-            <el-button type='primary' @click='login'>登录</el-button>
-        </el-form-item>
+      <el-form-item>
+        <el-input v-model='form.username' clearable placeholder="请输入账号"></el-input>
+        <img src="static/username.png" alt="">
+      </el-form-item>
+      <el-form-item>
+        <el-input v-model='form.password' type='password' clearable placeholder="请输入密码"></el-input>
+        <img src="static/pwd.png" alt="">
+      </el-form-item>
+      <el-form-item class="imgcode">
+        <img @click="getCode" :src="code" alt="">
+        <el-input type="text" v-model="form.imgcode" placeholder="请输入验证码"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button type='primary' @click='login'>登录</el-button>
+      </el-form-item>
     </el-form>
   </div>
 </body>
@@ -75,49 +101,61 @@
 <!-- import JavaScript -->
 <script src="static/index.js"></script>
 <script>
-    new Vue({
-        el: '#app',
-        data: function() {
-            return { 
-                form:{
-                    
-                },
-                
-            }
+  new Vue({
+    el: '#app',
+    data: function () {
+      return {
+        form: {
+
         },
-        methods:{
-           login(){
-                $.ajax({
-                    url:'/api/account/login',
-                    method:'post',
-                    data:this.form,
-                    success:res=>{
-                        if(res.code == '1000'){
-                            this.$message.error(res.message);
-                        }else{
-                            var search=window.location.search.split('?')[1].split('&');
-                            let id=search[0].split('=')[1]
-                            if(window.location.search.split('?')[1].indexOf("type")!=-1){
-                              let type=search[1].split('=')[1]
-                              // 跳转到问卷页面
-                              window.location.href = "/survey/answer.html?id="+id+"&type="+type
-                            }else{
-                              window.location.href = "/survey/message.html?id="+id
-                            }
-                            
-                        }
-                    }
-                })
-           }
-        },
-        created(){
-        //    var search=window.location.search.split('?')[1].split('&');
-        //    this.id=search[0].split('=')[1]
-        //    this.getData()
-        },
-        mounted(){
-            document.getElementById('app').style.display='block'
-        }
-    })
-  </script>
-</html>
+        code: ""
+
+      }
+    },
+    methods: {
+      login() {
+        $.ajax({
+          url: '/api/account/login',
+          method: 'post',
+          data: this.form,
+          success: res => {
+            if (res.code == '1000') {
+              this.$message.error(res.message);
+            } else {
+              var search = window.location.search.split('?')[1].split('&');
+              let id = search[0].split('=')[1]
+              if (window.location.search.split('?')[1].indexOf("type") != -1) {
+                let type = search[1].split('=')[1]
+                // 跳转到问卷页面
+                window.location.href = "/survey/answer.html?id=" + id + "&type=" + type
+              } else {
+                window.location.href = "/survey/message.html?id=" + id
+              }
+
+            }
+          }
+        })
+      },
+      getCode() {
+        $.ajax({
+          url: "/api/account/imgcode",
+          method: "get",
+          data: {},
+          success: res => {
+            this.code = res.data.imgcode
+            this.form.imgcode_id = res.data.imgcode_id
+          }
+        })
+      },
+    },
+
+    created() {
+      this.getCode()
+    },
+    mounted() {
+      document.getElementById('app').style.display = 'block'
+    }
+  })
+</script>
+
+</html>