zt_yangl 4 سال پیش
والد
کامیت
c5f489be75

+ 1 - 1
src/components/Page.vue

@@ -18,7 +18,7 @@
     @size-change="handleSizeChange"
     :current-page="current"
     :page-sizes="[10,20, 30, 40, 50,60,70,80,90,100]"
-    layout="total,prev, pager, next"
+    layout="total,sizes,prev, pager, next"
     :total="total">
     </el-pagination>
 </template>

+ 2 - 0
src/main.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import App from './App.vue'
 import router from './router'
+import store from './store'
 import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import 'font-awesome/css/font-awesome.css'
@@ -19,6 +20,7 @@ Vue.config.productionTip = false
 
 new Vue({
   router,
+  store,
   render: h => h(App)
 }).$mount('#app')
 

+ 3 - 3
src/router.js

@@ -44,7 +44,7 @@ export default new Router({
       isLeaf: 1,
       children: [{
         path: '/journal/journal',
-        component: () => import('./views/message/Message.vue'),
+        component: () => import('./views/journalQun/Journal.vue'),
         name: '中科院全刊'
       }, ]
     },
@@ -57,7 +57,7 @@ export default new Router({
       isLeaf: 1,
       children: [{
         path: '/journal/organizer',
-        component: () => import('./views/message/Message.vue'),
+        component: () => import('./views/journalQun/Organizer.vue'),
         name: '主办单位'
       }, ]
     },
@@ -70,7 +70,7 @@ export default new Router({
       isLeaf: 1,
       children: [{
         path: '/journal/subject',
-        component: () => import('./views/message/Message.vue'),
+        component: () => import('./views/journalQun/Subject.vue'),
         name: '学科'
       }, ]
     },

+ 31 - 16
src/store.js

@@ -1,26 +1,41 @@
 import Vue from 'vue'
+import Vuex from "vuex"
 var baseURL = '';
 import axios from 'axios';
-let store = {
-  area:[],
-  categorys:[],
-  enterprise_id:'',
-  getDefault:function(){
-      axios.get(`${baseURL}/api/admin/getdefault`).then(res=>{
-        this.area=res.data.data.areas;
-        this.categorys=res.data.data.categorys;
-      })
+Vue.use(Vuex)
+// let store = {
+//   area:[],
+//   categorys:[],
+//   enterprise_id:'',
+//   getDefault:function(){
+//       axios.get(`${baseURL}/api/admin/getdefault`).then(res=>{
+//         this.area=res.data.data.areas;
+//         this.categorys=res.data.data.categorys;
+//       })
+//   },
+//   mutations:{
+//     setId(state,id){
+//       state.enterprise_id = id;
+//     }
+//   },
+//   getters:{
+//     getId(state){
+//       return state.enterprise_id
+//     }
+//   }
+// }
+// store.getDefault();
+const store = {
+  state: {
+    inDate: ''
   },
   mutations:{
-    setId(state,id){
-      state.enterprise_id = id;
+    setInDate(state,inDate){
+      state.inDate = inDate;
     }
   },
   getters:{
-    getId(state){
-      return state.enterprise_id
-    }
+
   }
 }
-store.getDefault();
-export default store; 
+export default new Vuex.Store(store); 

+ 7 - 3
src/style/home.scss

@@ -179,10 +179,10 @@ tbody{
 }
 
 .edit{
-	color: #FFB82F;
+	// color: #FFB82F;
 }
 .del{
-	color: #F01010;
+	// color: #F01010;
 }
 .upload_btn{
 	position: relative;
@@ -192,4 +192,8 @@ tbody{
 		left: 0;
 		opacity: 0;
 	}
-}
+}
+// 弹框
+.el-dialog__footer{
+	text-align: center;
+}

+ 41 - 9
src/views/Home.vue

@@ -9,14 +9,16 @@
 				期刊微信公众号管理系统
 			</div>	
 			<div class="nav">
-				<router-link class="active" to="/index/index">首页</router-link>
-				<router-link to="/journal/journal">刊群导览</router-link>
-				<router-link to="/learning/activity">学术交流</router-link>
-				<router-link to="/article/article">精品导读</router-link>
-				<router-link to="/conference/conference">会议系统</router-link>
-				<router-link to="/message/message">信息管理</router-link>
-				<router-link to="/system/account">系统管理</router-link>
-
+				<!-- <router-link :class="act?'active':''" to="/index/index" @click.native='active(1)'>首页</router-link>
+				<router-link to="/journal/journal" @click.native='active(2)'>刊群导览</router-link>
+				<router-link to="/learning/activity" @click.native='active(3)'>学术交流</router-link>
+				<router-link to="/article/article" @click.native='active(4)'>精品导读</router-link>
+				<router-link to="/conference/conference" @click.native='active(5)'>会议系统</router-link>
+				<router-link to="/message/message" @click.native='active(6)'>信息管理</router-link>
+				<router-link to="/system/account" @click.native='active(7)'>系统管理</router-link> -->
+				<router-link v-for='(item,index) in inDate' :key='index' :class="item.act?'active':''" :to="item.to" @click.native='active(index)'>
+					{{item.name}}
+				</router-link>
 				<div class="setting">
 					<i class="el-icon-message-solid"></i>
 					<el-dropdown>
@@ -90,6 +92,7 @@ export default {
 	},
 	data() {
 		return {
+			inDate:"",
 			checkedCompany:'',
 			menuList:[],
 			path:'',
@@ -126,10 +129,39 @@ export default {
 		},
 		getData(){
 		
+		},
+		active(i){
+			console.log(i)
+			let that = this;
+			that.inDate.forEach( (item,index,arr) => {
+				if(i != index) return item.act = false;
+				item.act = true;
+			})
 		}
 	},
 	created(){
-		
+		let data = [
+			{ act: true, to: '/index/index', name: '首页' },
+			{ act: false, to: '/journal/journal', name: '刊群导览' },
+			{ act: false, to: '/learning/activity', name: '学术交流' },
+			{ act: false, to: '/article/article', name: '精品导读' },
+			{ act: false, to: '/conference/conference', name: '会议系统' },
+			{ act: false, to: '/message/message', name: '信息管理' },
+			{ act: false, to: '/system/account', name: '系统管理' },
+		];
+		let mod = this.$route.path.split("/")[1];
+		this.$router.options.routes.forEach((element,i) => {
+			if(element.path.indexOf(mod)==-1){
+				element.show = 0
+			}else{
+				element.show = 1
+			}
+		});
+		data.forEach(item =>{
+			if(mod == item.to.split("/")[1]) return item.act = true;
+			item.act = false;
+		})
+		this.inDate = data;
 	}
 };
 </script>

+ 242 - 0
src/views/journalQun/Journal.vue

@@ -0,0 +1,242 @@
+<style lang="scss">
+    .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="dialogVisible=true,edit=0" type="primary">发送消息</el-button>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <el-table
+                    class="table"
+                    :data="list" height="57vh"
+                    border  v-loading="loading"
+                    default-expand-all row-key="id"
+                    style="width: 100%">
+                    <el-table-column
+                    prop="name"  width="300"
+                    label="标题">
+                    </el-table-column>
+                    <el-table-column
+                    prop="username"  
+                    label="发送者">
+                    </el-table-column>
+                    <el-table-column
+                    prop="area" 
+                    label="接收者">
+                    </el-table-column>
+                    <el-table-column
+                    prop="area" 
+                    label="发送时间">
+                    </el-table-column>
+                    <el-table-column  
+                    prop="zip"  width="150"
+                    label="操作">
+                    <template slot-scope="">
+                        <el-button type="text" @click="dialogVisible=true,edit=1">查看</el-button>
+                        <el-button class="edit" type="text" @click="dialogVisible=true,edit=0">编辑</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>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+            <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
+        </span>
+        </el-dialog>
+    </section>
+</template>
+<script>
+import Page from '../../components/Page';
+export default {
+  components:{
+        Page
+  },
+  data(){
+    return{
+      edit:0,
+      form:{name:'',page:1,page_size:20},
+      total:1,
+      list:[{name:'2333'}],
+      loading:false,
+      input:'',
+      dialogVisible:false,
+      defaultProps:{},
+      data: [{
+          id: 1,
+          label: '一级 1'
+        }, {
+          id: 2,
+          label: '一级 2',
+          children: [{
+            id: 5,
+            label: '二级 2-1'
+          }, {
+            id: 6,
+            label: '二级 2-2'
+          }]
+        }],
+    }
+  },
+  methods:{
+        gopage(size){
+            if(size){
+                this.form.page_size=size
+            }
+            this.form.page=this.$refs.pageButton.page
+            this.getData()
+        },
+        handleSelectionChange(val) {
+            this.multipleSelection = val;
+        },
+        gopage1(size){
+            if(size){
+                this.form1.page_size=size
+            }
+            this.form1.page=this.$refs.pageButton1.page
+            this.getJl()
+        },
+        open(data) {
+            this.dialogFormVisible=true;
+            this.message={...data}
+        },
+        download(){
+            let array=this.multipleSelection,ids=[];
+            for(let i=0;i<array.length;i++){
+                ids.push(array[i].id)
+            }
+            ids=ids.join(',')
+            this.$api.downloadMon({ids:ids}).then(res=>{
+                        var elink = document.createElement('a');
+                        let blob=new Blob([res.data], {type: 'application/vnd.ms-excel'});
+                        let objUrl=URL.createObjectURL(blob);
+                        console.log(res.headers['content-disposition'])
+                        let file_name=res.headers['content-disposition'].split('=')[1];
+                        elink.download = file_name;
+                        elink.style.display = 'none';                
+                        elink.href = objUrl;
+                        document.body.appendChild(elink);
+                        elink.click();
+                        document.body.removeChild(elink);     
+            })
+        },
+        prview(id){
+            this.form1.enterprise_id=id;
+            this.getJl();
+            this.dialogFormVisible1=true
+        },
+        getJl(){
+            var parm=this.form1;
+            this.$api.getMonitjobList(parm).then(res=>{
+                this.data=res.data.data.list
+                this.total1=res.data.data.total
+                
+            })
+        },
+        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.getEnterpriseList(parm).then(res=>{
+                this.list=res.data.data.list;
+                // list.forEach(item => {
+                //     if(item.children.length>0){
+                //         item.hasChildren=true
+                //     }else{
+                //         item.hasChildren=false
+                //     }
+                // });
+                this.total=res.data.data.total
+                this.loading=false
+                this.area=this.store.area;
+                this.category=this.store.categorys;
+            })
+        },
+        del(id){
+                this.$confirm('确定删除吗', '提示', {
+                        type: 'warning'
+                    }).then(() => {
+                    this.$api.deleteEnterprise({id:id}).then((res)=>{
+                            this.$message({
+                                message: '删除成功',
+                                type: 'success'
+                            })
+                            this.getData()
+                    })
+                })
+        },
+        permission(name){
+			let permissions=this.info.permissions||[];
+			let list=[];
+			for(let i=0;i<permissions.length;i++){
+				list.push(permissions[i].name)
+			}
+			if(list.indexOf(name)<0){
+				return false;
+			}else{
+				return true;
+			}	
+		},
+  },
+  created(){
+      
+  }
+}
+</script>

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


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


+ 139 - 63
src/views/system/Account.vue

@@ -1,4 +1,12 @@
 <style lang="scss">
+    section>p{
+        color:#666666;
+        font-size:14px;
+        font-weight: 400;
+        span{
+            color:#cccccc;
+        }
+    }
     .preview{
         .el-form-item{
             margin-bottom:15px;
@@ -10,49 +18,79 @@
 </style>
 <template>
     <section>
-        <p>账号管理</p>
+        <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"></el-input>
+                        <el-input clearable placeholder="请输入信息标题" v-model="form.name"></el-input>
+                    </el-form-item>
+                    <el-form-item label="">
+                        <el-select v-model="form.num" placeholder="请选择期刊">
+                            <el-option
+                            v-for="item in alloptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                            </el-option>
+                        </el-select>
                     </el-form-item>
                     <el-form-item>
                         <el-button  type="primary">搜索</el-button>
                     </el-form-item>
                     <el-form-item style="float:right" >
-                        <el-button @click="dialogVisible=true,edit=0" type="primary">发送消息</el-button>
+                        <el-button @click="addPerson" type="primary">新增管理员</el-button>
                     </el-form-item>
                 </el-form>
             </div>
             <el-table
                     class="table"
-                    :data="list" height="57vh"
+                    :data="list" height='50vh'
                     border  v-loading="loading"
                     default-expand-all row-key="id"
                     style="width: 100%">
                     <el-table-column
-                    prop="name"  width="300"
-                    label="标题">
+                    prop="account"
+                    label="账号">
+                    </el-table-column>
+                    <el-table-column
+                    prop="name"  
+                    label="姓名">
+                    </el-table-column>
+                    <el-table-column
+                    prop="phone" 
+                    label="手机号">
+                    </el-table-column>
+                    <el-table-column
+                    prop="" 
+                    label="所属期刊">
                     </el-table-column>
                     <el-table-column
-                    prop="username"  
-                    label="发送者">
+                    prop="" 
+                    label="创建角色">
                     </el-table-column>
                     <el-table-column
-                    prop="area" 
-                    label="接收者">
+                    prop="" 
+                    label="状态">
                     </el-table-column>
                     <el-table-column
-                    prop="area" 
-                    label="发送时间">
+                    prop="" 
+                    label="创建人">
+                    </el-table-column>
+                    <el-table-column
+                    prop="" 
+                    label="创建时间">
+                    </el-table-column>
+                    <el-table-column
+                    prop="" 
+                    label="最后一次登录">
                     </el-table-column>
                     <el-table-column  
-                    prop="zip"  width="150"
+                    prop="zip"
                     label="操作">
-                    <template slot-scope="">
-                        <el-button type="text" @click="dialogVisible=true,edit=1">查看</el-button>
-                        <el-button class="edit" type="text" @click="dialogVisible=true,edit=0">编辑</el-button>
+                    <template slot-scope="scope">
+                        <!-- <el-button type="text" @click="dialogVisible=true,edit=1">查看</el-button> -->
+                        <el-button class="edit" type="text" @click="editPerson(scope.row)">编辑</el-button>
                         <el-button class="del" @click="del" type="text">删除</el-button>
                     </template>
                     </el-table-column>
@@ -61,42 +99,50 @@
         </div>
 
         <el-dialog
-        title="发送通知消息" :close-on-click-modal='false'
+        :title="dialogTitle" :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 size="small" class="preview" :inline='false' label-width="80px" :model="form1" ref="form1" :rules="rules">
+                <el-form-item label="所属期刊" prop='num'>
+                    <el-select v-model="form1.num" placeholder="请选择期刊">
+                        <el-option
+                        v-for="item in alloptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="角色" prop='role'>
+                    <el-select v-model="form1.role" placeholder="请选择角色">
+                        <el-option
+                        v-for="item in alloptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
                 </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 label="账号" prop='account'>
+                    <el-input placeholder="请输入账号" v-model='form1.account'></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 label="密码" prop='password'>
+                    <el-input placeholder="请输入密码" v-model="form1.password" class="input-with-select"></el-input>
                 </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 label="确认密码" prop='rePassword'>
+                    <el-input placeholder="请再次输入密码" v-model="form1.rePassword" class="input-with-select"></el-input>
+                </el-form-item>
+                <el-form-item label="手机号" prop='phone'>
+                    <el-input placeholder="请输入手机号" v-model="form1.phone" class="input-with-select"></el-input>
+                </el-form-item>
+                <el-form-item label="账户状态" prop='state'>
+                    <el-radio-group v-model="form1.state">
+                        <el-radio :label="0">启用</el-radio>
+                        <el-radio :label="1">禁用</el-radio>
+                    </el-radio-group>
                 </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
-            <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
+            <el-button size="medium" type="primary" @click="dialogVisible = false">确 定</el-button>
         </span>
         </el-dialog>
     </section>
@@ -110,30 +156,60 @@ export default {
   data(){
     return{
       edit:0,
-      form:{name:'',page:1,page_size:20},
-      total:1,
-      list:[{name:'2333'}],
+      form:{name:'',page:1,page_size:50},
+      alloptions:[
+          {value:1,label:'第一期'},
+          {value:2,label:'第2期'},
+      ],
+      total:100,
+      list:[{name:'2333',phone:'15895414566'}],
+      dialogTitle:'',
+      form1:{
+          num:'',
+          role:'',
+          account:'',
+          password:'',
+          rePassword:'',
+          phone:''
+      },
       loading:false,
       input:'',
       dialogVisible:false,
       defaultProps:{},
-      data: [{
-          id: 1,
-          label: '一级 1'
-        }, {
-          id: 2,
-          label: '一级 2',
-          children: [{
-            id: 5,
-            label: '二级 2-1'
-          }, {
-            id: 6,
-            label: '二级 2-2'
-          }]
-        }],
+        rules: {
+          num: [
+            { required: true, message: '请输入活动名称', trigger: 'blur' },
+            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+          ],
+          role: [
+            { required: true, message: '请选择活动区域', trigger: 'change' }
+          ],
+          account: [
+            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
+          ],
+          password: [
+            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
+          ],
+          rePassword: [
+            { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
+          ],
+          phone: [
+            { required: true, message: '请选择活动资源', trigger: 'change' }
+          ]
+        }
     }
   },
-  methods:{
+    methods:{
+        addPerson(){
+            this.dialogTitle = "新增管理员";
+            this.dialogVisible = true;
+            this.form1 = {};
+        },
+        editPerson(row){
+            this.dialogTitle = "编辑管理员";
+            this.dialogVisible = true;
+            this.form1 = row ;
+        },
         gopage(size){
             if(size){
                 this.form.page_size=size