Jelajahi Sumber

系统管理、消息管理完成

xjc 4 tahun lalu
induk
melakukan
d13ddf60b3

+ 62 - 0
src/api.js

@@ -65,6 +65,9 @@ export default {
 	getUserList: params => {
 	getUserList: params => {
 		return axios.get(`${baseURL}/api/admin/user/list`,{params:params})
 		return axios.get(`${baseURL}/api/admin/user/list`,{params:params})
 	},
 	},
+	getAllSysUserList: params => {
+		return axios.get(`${baseURL}/api/admin/user/all`,{params:params})
+	},
 	// 获取用户待选期刊列表
 	// 获取用户待选期刊列表
 	getUserJournals:() => {
 	getUserJournals:() => {
 		return axios.get(`${baseURL}/api/admin/user/journals`)
 		return axios.get(`${baseURL}/api/admin/user/journals`)
@@ -89,4 +92,63 @@ export default {
 	getUserPermissions:() => {
 	getUserPermissions:() => {
 		return axios.get(`${baseURL}/api/admin/user/permissions`)
 		return axios.get(`${baseURL}/api/admin/user/permissions`)
 	},
 	},
+	// 新增表单模板
+	addTemplate:params => {
+		return axios.post(`${baseURL}/api/admin/message/template`, params);
+	},
+	// 编辑表单模板
+	editTemplate:params => {
+		return axios.put(`${baseURL}/api/admin/message/template`, params);
+	},
+	// 删除表单模板
+	delTemplate:params => {
+		return axios.delete(`${baseURL}/api/admin/message/template`, {params:params});
+	},
+	// 获取模板详情
+	getTemplate:params => {
+		return axios.get(`${baseURL}/api/admin/message/template`, {params:params});
+	},
+	// 获取模板列表
+	getTemplateList: params => {
+		return axios.get(`${baseURL}/api/admin/message/template/list`,{params:params})
+	},
+	//获取所有模板列表
+	getAllTemplateList: params => {
+		return axios.get(`${baseURL}/api/admin/message/template/all`,{params:params})
+	},
+	// 新增角色
+	addRole:params => {
+		return axios.post(`${baseURL}/api/admin/role`, params);
+	},
+	// 修改角色
+	editRole:params => {
+		return axios.put(`${baseURL}/api/admin/role`, params);
+	},
+	delRole:params => {
+		return axios.delete(`${baseURL}/api/admin/role`, {params:params});
+	},
+	// 获取角色列表
+	getRoleList:params => {
+		return axios.get(`${baseURL}/api/admin/role/list`, {params:params});
+	},
+	// 获取角色详情
+	getRoleInfo:params => {
+		return axios.get(`${baseURL}/api/admin/role`, {params:params});
+	},
+	// 消息管理
+	addMessage:params => {
+		return axios.post(`${baseURL}/api/admin/message`, params);
+	},
+	editMessage:params => {
+		return axios.put(`${baseURL}/api/admin/message`, params);
+	},
+	getMessageList:params => {
+		return axios.get(`${baseURL}/api/admin/message/list`, {params:params});
+	},
+	getMessageInfo:params => {
+		return axios.get(`${baseURL}/api/admin/message`, {params:params});
+	},
+	delMessageInfo:params => {
+		return axios.delete(`${baseURL}/api/admin/message`, {params:params});
+	}
 }
 }

TEMPAT SAMPAH
src/assets/logo.png


TEMPAT SAMPAH
src/assets/survey_logo.png


+ 13 - 13
src/router.js

@@ -158,19 +158,19 @@ export default new Router({
         name: '酒店管理'
         name: '酒店管理'
       }, ]
       }, ]
     },
     },
-    {
-      path: '/message/survey',
-      name: '调查问卷',
-      icon: 'el-icon-chat-dot-square',
-      component: () => import('./views/Home.vue'),
-      show: 0,
-      isLeaf: 1,
-      children: [{
-        path: '/message/survey',
-        component: () => import('./views/message/investigation.vue'),
-        name: '调查问卷'
-      }, ]
-    },
+    // {
+    //   path: '/message/survey',
+    //   name: '调查问卷',
+    //   icon: 'el-icon-chat-dot-square',
+    //   component: () => import('./views/Home.vue'),
+    //   show: 0,
+    //   isLeaf: 1,
+    //   children: [{
+    //     path: '/message/survey',
+    //     component: () => import('./views/message/investigation.vue'),
+    //     name: '调查问卷'
+    //   }, ]
+    // },
     {
     {
       path: '/message/template',
       path: '/message/template',
       name: '问卷模板',
       name: '问卷模板',

+ 3 - 2
src/style/home.scss

@@ -14,8 +14,9 @@ $height: 50px;
 	line-height: 56px;
 	line-height: 56px;
 	font-weight: bolder;
 	font-weight: bolder;
 	.logo{
 	.logo{
-		height: 60px;
-		margin-top: 5px;
+		height: 43px;
+		margin: 5px 0 0 23px;
+		float: left;
 	}
 	}
 }
 }
 .nav{
 .nav{

+ 2 - 1
src/views/Home.vue

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

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

@@ -108,32 +108,48 @@
                         </el-form-item>
                         </el-form-item>
                     </el-col>
                     </el-col>
                 </el-row>
                 </el-row>
+                
                 <el-form-item label='会议简介:'>
                 <el-form-item label='会议简介:'>
                     <el-input type='textarea' v-model="form.introduce" :rows="3" placeholder="请输入会议介绍"></el-input>
                     <el-input type='textarea' v-model="form.introduce" :rows="3" placeholder="请输入会议介绍"></el-input>
                 </el-form-item>
                 </el-form-item>
-                <el-form-item label='是否报名:'>
-                    <el-radio-group v-model='form.isEnable'>
-                        <el-radio :label='1'>可报名</el-radio>
-                        <el-radio :label='0'>不可报名</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label='报名需提交信息:'>
-                    <el-checkbox-group v-model='form.info'>
-                        <el-checkbox v-for='(item,index) in InfoList' :key='index' :label='item.id'>{{item.name}}</el-checkbox>
-                    </el-checkbox-group>
-                </el-form-item>
-                <el-form-item label='是否热门:'>
-                    <el-radio-group v-model='form.isEnable'>
-                        <el-radio :label='1'>热门</el-radio>
-                        <el-radio :label='0'>不热门</el-radio>
-                    </el-radio-group>
-                </el-form-item>
-                <el-form-item label='是否推荐:'>
-                    <el-radio-group v-model='form.isEnable'>
-                        <el-radio :label='1'>推荐</el-radio>
-                        <el-radio :label='0'>不推荐</el-radio>
-                    </el-radio-group>
-                </el-form-item>
+                <el-row>
+                  <el-col :span="12">
+                      <el-form-item label='是否报名:'>
+                        <el-radio-group v-model='form.isEnable'>
+                            <el-radio :label='1'>可报名</el-radio>
+                            <el-radio :label='0'>不可报名</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                      <el-form-item label='报名需提交信息:'>
+                        <el-checkbox-group v-model='form.info'>
+                            <el-checkbox v-for='(item,index) in InfoList' :key='index' :label='item.id'>{{item.name}}</el-checkbox>
+                        </el-checkbox-group>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label='是否热门:'>
+                            <el-radio-group v-model='form.isEnable'>
+                                <el-radio :label='1'>热门</el-radio>
+                                <el-radio :label='0'>不热门</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label='是否推荐:'>
+                            <el-radio-group v-model='form.isEnable'>
+                                <el-radio :label='1'>推荐</el-radio>
+                                <el-radio :label='0'>不推荐</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                
+                
+                
                 <el-form-item label='封面图:'>
                 <el-form-item label='封面图:'>
                     <el-upload
                     <el-upload
                         action="https://jsonplaceholder.typicode.com/posts/"
                         action="https://jsonplaceholder.typicode.com/posts/"

+ 90 - 34
src/views/message/Message.vue

@@ -18,10 +18,10 @@
                             <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>
                     <el-form-item>
                     <el-form-item>
-                        <el-button  type="primary">搜索</el-button>
+                        <el-button  type="primary" @click="search">搜索</el-button>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item style="float:right" >
                     <el-form-item style="float:right" >
-                        <el-button @click="dialogVisible=true,dialogTitle='新增调查问卷'" type="primary">发送消息</el-button>
+                        <el-button @click="openDiag" type="primary">发送消息</el-button>
                     </el-form-item>
                     </el-form-item>
                 </el-form>
                 </el-form>
             </div>
             </div>
@@ -36,23 +36,23 @@
                     label="标题">
                     label="标题">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop="username"  
+                    prop="cname"  
                     label="发送者">
                     label="发送者">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop="username"  
+                    prop="receiver_names"  
                     label="接收者">
                     label="接收者">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop=""  
+                    prop="ctime"  
                     label="发送时间">
                     label="发送时间">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column  
                     <el-table-column  
                     prop="zip"  width="150"
                     prop="zip"  width="150"
                     label="操作">
                     label="操作">
-                    <template slot-scope="">
-                        <el-button class="edit" type="text" @click="dialogVisible=true,edit=0">编辑</el-button>
-                        <el-button class="del" @click="del" type="text">删除</el-button>
+                    <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>
                     </template>
                     </el-table-column>
                     </el-table-column>
             </el-table>
             </el-table>
@@ -63,26 +63,32 @@
         :title="dialogTitle" :close-on-click-modal='false'
         :title="dialogTitle" :close-on-click-modal='false'
         :visible.sync="dialogVisible">
         :visible.sync="dialogVisible">
         <el-form size="small" class="preview" :inline='false' label-width="80px">
         <el-form size="small" class="preview" :inline='false' label-width="80px">
-                <el-form-item label="角色名称">
-                    <el-input v-model="form1.name"></el-input>
+                <el-form-item label="标题">
+                    <el-input v-model="form1.name" placeholder="请输入标题"></el-input>
                 </el-form-item>
                 </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="接收人">
+                    <el-select placeholder="请选择接收人" v-model="form1.receiver_id" multiple>
+                        <el-option
+                            v-for="(item, index) in userList"
+                            :key="index"
+                            :label="item.name"
+                            :value="item.id"
+                        ></el-option>
+                    </el-select>
                 </el-form-item>
                 </el-form-item>
-                <el-form-item label="角色描述">
-                    <el-input v-model="form1.desc"></el-input>
+                <el-form-item label="问卷模板">
+                    <el-select placeholder="请选择问卷模板" v-model="form1.template_id">
+                        <el-option
+                            v-for="(item, index) in templateList"
+                            :key="index"
+                            :label="item.name"
+                            :value="item.id"
+                        ></el-option>
+                    </el-select>
                 </el-form-item>
                 </el-form-item>
         </el-form>
         </el-form>
         <span slot="footer" class="dialog-footer">
         <span slot="footer" class="dialog-footer">
-            <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
+            <el-button size="small" type="primary" @click="save">确 定</el-button>
         </span>
         </span>
         </el-dialog>
         </el-dialog>
     </section>
     </section>
@@ -95,7 +101,6 @@ export default {
   },
   },
   data(){
   data(){
     return{
     return{
-      edit:0,
       form:{name:'',page:1,page_size:20},
       form:{name:'',page:1,page_size:20},
       form1:{},
       form1:{},
       total:1,
       total:1,
@@ -106,25 +111,37 @@ export default {
       dialogTitle:"",
       dialogTitle:"",
       defaultProps:{},
       defaultProps:{},
       data: [],
       data: [],
+      templateList:[],
+      userList:[]
     }
     }
   },
   },
   methods:{
   methods:{
-      gopage(size){
+        search(){
+            let parm = this.form
+            this.getData()
+        },
+        openDiag(){
+            this.form1 = {}
+            this.dialogVisible = true;
+            this.dialogTitle = "发送消息"
+        },
+        gopage(size){
             if(size){
             if(size){
                 this.form.page_size=size
                 this.form.page_size=size
             }
             }
             this.form.page=this.$refs.pageButton.page
             this.form.page=this.$refs.pageButton.page
             this.getData()
             this.getData()
         },
         },
-        getPermissions(){
-            this.$api.getUserPermissions().then(res=>{
-                this.data = res.data.data
-            })
-        },
         getData(){
         getData(){
             var parm=this.form;        
             var parm=this.form;        
             this.loading=true
             this.loading=true
-            this.$api.getEnterpriseList(parm).then(res=>{
+            this.$api.getAllTemplateList().then(res=>{
+                this.templateList = res.data.data
+            })
+            this.$api.getAllSysUserList().then(res=>{
+                this.userList = res.data.data
+            })
+            this.$api.getMessageList(parm).then(res=>{
                 this.list=res.data.data.list;
                 this.list=res.data.data.list;
                 this.total=res.data.data.total
                 this.total=res.data.data.total
                 this.loading=false
                 this.loading=false
@@ -134,7 +151,7 @@ export default {
                 this.$confirm('确定删除吗', '提示', {
                 this.$confirm('确定删除吗', '提示', {
                         type: 'warning'
                         type: 'warning'
                     }).then(() => {
                     }).then(() => {
-                    this.$api.deleteEnterprise({id:id}).then((res)=>{
+                    this.$api.delMessageInfo({id:id}).then((res)=>{
                             this.$message({
                             this.$message({
                                 message: '删除成功',
                                 message: '删除成功',
                                 type: 'success'
                                 type: 'success'
@@ -143,10 +160,49 @@ export default {
                     })
                     })
                 })
                 })
         },
         },
+        edit(row){
+            this.form1 = row;
+            let receiver_ids = this.form1.receiver_id.split(",")
+            receiver_ids.forEach((element,index) => {
+                receiver_ids[index] = parseInt(element)
+            });
+            this.form1.receiver_id = receiver_ids
+            this.dialogVisible = true;
+        },
+        save(){
+            let parm = this.form1
+            let id = this.form1.id
+            parm.receiver_id = parm.receiver_id.join(",")
+            if(id){
+                this.$api.editMessage(parm).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"保存成功!"
+                        })
+                    }else{
+                        this.$message.error("保存失败!");
+                    }
+                })
+            }else{
+                this.$api.addMessage(parm).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"保存成功!"
+                        })
+                    }else{
+                        this.$message.error("保存失败!");
+                    }
+                })
+            }
+            this.getData()
+            this.dialogVisible = false
+            
+        }
   },
   },
   created(){
   created(){
-    //   this.getPermissions()
-    //   this.getData()
+      this.getData()
   }
   }
 }
 }
 </script>
 </script>

+ 10 - 11
src/views/message/investigation.vue

@@ -75,19 +75,18 @@
         :title="dialogTitle" :close-on-click-modal='false'
         :title="dialogTitle" :close-on-click-modal='false'
         :visible.sync="dialogVisible">
         :visible.sync="dialogVisible">
         <el-form size="small" class="preview" :inline='false' label-width="80px">
         <el-form size="small" class="preview" :inline='false' label-width="80px">
-                <el-form-item label="角色名称">
+                <el-form-item label="标题">
                     <el-input v-model="form1.name"></el-input>
                     <el-input v-model="form1.name"></el-input>
                 </el-form-item>
                 </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="问卷模板">
+                    <el-select placeholder="请选择主办方" v-model="form.sponsor">
+                        <el-option
+                            v-for="(item, index) in optionList"
+                            :key="index"
+                            :label="item.name"
+                            :value="item.id"
+                        ></el-option>
+                    </el-select>
                 </el-form-item>
                 </el-form-item>
                 <el-form-item label="角色描述">
                 <el-form-item label="角色描述">
                     <el-input v-model="form1.desc"></el-input>
                     <el-input v-model="form1.desc"></el-input>

+ 49 - 19
src/views/message/modelForm.vue

@@ -130,6 +130,11 @@
                     width:100%;
                     width:100%;
                 }
                 }
             }
             }
+            .survey_logo{
+                position: relative;
+                top:15px;
+                left: 20px;
+            }
        }
        }
    }
    }
 </style>
 </style>
@@ -272,14 +277,14 @@
                     </transition-group>
                     </transition-group>
                     </vuedraggable>
                     </vuedraggable>
                     <el-form-item  v-if="this.widgetList.length">
                     <el-form-item  v-if="this.widgetList.length">
-                        <el-button size="medium" type="primary" @click="$router.push('/message/template')">保存</el-button>
+                        <el-button size="medium" type="primary" @click="save">保存</el-button>
                     </el-form-item>
                     </el-form-item>
                 </el-form>
                 </el-form>
             </div>
             </div>
             <div class="content-item right">
             <div class="content-item right">
                 <div class='item-title'>效果预览</div>
                 <div class='item-title'>效果预览</div>
                 <div class='item-main'>
                 <div class='item-main'>
-                    <img src="" alt="">
+                    <img src="../../assets/survey_logo.png" alt="" class="survey_logo">
                     <h5 align='center' class="tpl_title">{{title}}</h5>
                     <h5 align='center' class="tpl_title">{{title}}</h5>
                     <el-form ref="form" :model="form" class="tpl_form over_y">
                     <el-form ref="form" :model="form" class="tpl_form over_y">
                         <el-form-item v-for="(item,index) in widgetList" :key="index" :label="item.label">
                         <el-form-item v-for="(item,index) in widgetList" :key="index" :label="item.label">
@@ -368,6 +373,39 @@ components: {vuedraggable},
     }
     }
   },
   },
   methods:{
   methods:{
+        save(){
+            let id = this.$route.query.id;
+            let params = {
+                    name:this.title,
+                    widget:JSON.stringify(this.widgetList)
+                }
+            if(id){
+                params.id = id;
+                this.$api.editTemplate(params).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"成功!"
+                        })
+                    }else{
+                        this.$message.error("失败!")
+                    }
+                    this.$router.push('/message/template')
+                })
+            }else{
+                this.$api.addTemplate(params).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"成功!"
+                        })
+                    }else{
+                        this.$message.error("失败!")
+                    }
+                    this.$router.push('/message/template')
+                })
+            }
+        },
         addWidget(i){
         addWidget(i){
             console.log(i)
             console.log(i)
             this.widgetList.push(JSON.parse(JSON.stringify(this.stdWidgetList[i])))
             this.widgetList.push(JSON.parse(JSON.stringify(this.stdWidgetList[i])))
@@ -446,22 +484,14 @@ components: {vuedraggable},
             this.$router.push({ path: '/company/detail', query: {  id: id,page:this.form.page,page_size:this.form.page_size  } });
             this.$router.push({ path: '/company/detail', query: {  id: id,page:this.form.page,page_size:this.form.page_size  } });
         },
         },
         getData(){
         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;
-            })
+            let id = this.$route.query.id;
+            if(id){
+                this.$api.getTemplate({id:id}).then(res=>{
+                    if(res.data.code==0){
+                        this.widgetList = res.data.data.widget;
+                    }
+                })
+            }
         },
         },
         del(id){
         del(id){
                 this.$confirm('确定删除吗', '提示', {
                 this.$confirm('确定删除吗', '提示', {
@@ -490,7 +520,7 @@ components: {vuedraggable},
 		},
 		},
   },
   },
   created(){
   created(){
-      
+      this.getData();
   }
   }
 }
 }
 </script>
 </script>

+ 19 - 16
src/views/message/templateList.vue

@@ -18,7 +18,7 @@
                             <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>
                     <el-form-item>
                     <el-form-item>
-                        <el-button  type="primary">搜索</el-button>
+                        <el-button  type="primary" @click="search">搜索</el-button>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item style="float:right" >
                     <el-form-item style="float:right" >
                         <el-button @click="dialogVisible=true,dialogTitle='新增模板'" type="primary">新增模板</el-button>
                         <el-button @click="dialogVisible=true,dialogTitle='新增模板'" type="primary">新增模板</el-button>
@@ -36,19 +36,19 @@
                     label="模板名称">
                     label="模板名称">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop="username"  
+                    prop="cname"  
                     label=创建人>
                     label=创建人>
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop=""  
+                    prop="ctime"  
                     label="创建时间">
                     label="创建时间">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column  
                     <el-table-column  
                     prop="zip"  width="150"
                     prop="zip"  width="150"
                     label="操作">
                     label="操作">
-                    <template slot-scope="">
-                        <el-button class="edit" type="text" @click="dialogVisible=true,edit=0">编辑</el-button>
-                        <el-button class="del" @click="del" type="text">删除</el-button>
+                    <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>
                     </template>
                     </el-table-column>
                     </el-table-column>
             </el-table>
             </el-table>
@@ -64,7 +64,7 @@
                 </el-form-item>
                 </el-form-item>
         </el-form>
         </el-form>
         <span slot="footer" class="dialog-footer">
         <span slot="footer" class="dialog-footer">
-            <el-button size="small" type="primary" @click="$router.push({path:'/message/template/add',query:{title:form1.name}})">确 定</el-button>
+            <el-button size="small" type="primary" @click="$router.push({path:'/message/template/add',query:{title:form1.name,id:form1.id}})">确 定</el-button>
         </span>
         </span>
         </el-dialog>
         </el-dialog>
     </section>
     </section>
@@ -77,7 +77,7 @@ export default {
   },
   },
   data(){
   data(){
     return{
     return{
-      edit:0,
+    //   edit:0,
       form:{name:'',page:1,page_size:20},
       form:{name:'',page:1,page_size:20},
       form1:{},
       form1:{},
       total:1,
       total:1,
@@ -91,25 +91,29 @@ export default {
     }
     }
   },
   },
   methods:{
   methods:{
-        getPermissions(){
-            this.$api.getUserPermissions().then(res=>{
-                this.data = res.data.data
-            })
+        search(){
+            let parm = this.form
+            this.getData()
         },
         },
         getData(){
         getData(){
             var parm=this.form;        
             var parm=this.form;        
             this.loading=true
             this.loading=true
-            this.$api.getEnterpriseList(parm).then(res=>{
+            this.$api.getTemplateList(parm).then(res=>{
                 this.list=res.data.data.list;
                 this.list=res.data.data.list;
                 this.total=res.data.data.total
                 this.total=res.data.data.total
                 this.loading=false
                 this.loading=false
             })
             })
         },
         },
+        edit(row){
+            console.log(row)
+            this.form1 = row;
+            this.dialogVisible = true;
+        },
         del(id){
         del(id){
                 this.$confirm('确定删除吗', '提示', {
                 this.$confirm('确定删除吗', '提示', {
                         type: 'warning'
                         type: 'warning'
                     }).then(() => {
                     }).then(() => {
-                    this.$api.deleteEnterprise({id:id}).then((res)=>{
+                    this.$api.delTemplate({id:id}).then((res)=>{
                             this.$message({
                             this.$message({
                                 message: '删除成功',
                                 message: '删除成功',
                                 type: 'success'
                                 type: 'success'
@@ -120,8 +124,7 @@ export default {
         },
         },
   },
   },
   created(){
   created(){
-    //   this.getPermissions()
-    //   this.getData()
+      this.getData()
   }
   }
 }
 }
 </script>
 </script>

+ 78 - 18
src/views/system/Role.vue

@@ -18,7 +18,7 @@
                             <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>
                     <el-form-item>
                     <el-form-item>
-                        <el-button  type="primary">搜索</el-button>
+                        <el-button  type="primary" @click="search">搜索</el-button>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item style="float:right" >
                     <el-form-item style="float:right" >
                         <el-button @click="dialogVisible=true,dialogTitle='新增角色'" type="primary">新增角色</el-button>
                         <el-button @click="dialogVisible=true,dialogTitle='新增角色'" type="primary">新增角色</el-button>
@@ -36,19 +36,19 @@
                     label="角色名称">
                     label="角色名称">
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
-                    prop="username"  
+                    prop="permstr"  
                     label="角色权限">
                     label="角色权限">
                     </el-table-column>
                     </el-table-column>
-                    <el-table-column
+                    <!-- <el-table-column
                     prop="username"  
                     prop="username"  
                     label="角色描述">
                     label="角色描述">
-                    </el-table-column>
+                    </el-table-column> -->
                     <el-table-column  
                     <el-table-column  
                     prop="zip"  width="150"
                     prop="zip"  width="150"
                     label="操作">
                     label="操作">
-                    <template slot-scope="">
-                        <el-button class="edit" type="text" @click="dialogVisible=true,edit=0">编辑</el-button>
-                        <el-button class="del" @click="del" type="text">删除</el-button>
+                    <template slot-scope="scope">
+                        <el-button class="edit" type="text" @click="edit(scope.row.id)">编辑</el-button>
+                        <el-button class="del" @click="del(scope.row.id)" type="text">删除</el-button>
                     </template>
                     </template>
                     </el-table-column>
                     </el-table-column>
             </el-table>
             </el-table>
@@ -67,18 +67,20 @@
                         <el-button slot="append" icon="el-icon-search"></el-button>
                         <el-button slot="append" icon="el-icon-search"></el-button>
                     </el-input> -->
                     </el-input> -->
                     <el-tree
                     <el-tree
+                    ref="tree"
                     :data="data"
                     :data="data"
                     show-checkbox
                     show-checkbox
                     node-key="id" default-expand-all
                     node-key="id" default-expand-all
-                    :props="defaultProps">
+                    :props="defaultProps"
+                    @check-change="handleCheckChange">
                     </el-tree>
                     </el-tree>
                 </el-form-item>
                 </el-form-item>
-                <el-form-item label="角色描述">
+                <!-- <el-form-item label="角色描述">
                     <el-input v-model="form1.desc"></el-input>
                     <el-input v-model="form1.desc"></el-input>
-                </el-form-item>
+                </el-form-item> -->
         </el-form>
         </el-form>
         <span slot="footer" class="dialog-footer">
         <span slot="footer" class="dialog-footer">
-            <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
+            <el-button size="small" type="primary" @click="save">确 定</el-button>
         </span>
         </span>
         </el-dialog>
         </el-dialog>
     </section>
     </section>
@@ -91,7 +93,6 @@ export default {
   },
   },
   data(){
   data(){
     return{
     return{
-      edit:0,
       form:{name:'',page:1,page_size:20},
       form:{name:'',page:1,page_size:20},
       form1:{},
       form1:{},
       total:1,
       total:1,
@@ -102,6 +103,7 @@ export default {
       dialogTitle:"",
       dialogTitle:"",
       defaultProps:{},
       defaultProps:{},
       data: [],
       data: [],
+      selected:[]
     }
     }
   },
   },
   methods:{
   methods:{
@@ -110,20 +112,48 @@ export default {
                 this.data = res.data.data
                 this.data = res.data.data
             })
             })
         },
         },
+        handleCheckChange(data, checked, indeterminate) {
+            this.selected = this.$refs.tree.getCheckedNodes()
+        },
+        search(){
+            let parm = this.form
+            this.getData()
+        },
         getData(){
         getData(){
             var parm=this.form;        
             var parm=this.form;        
             this.loading=true
             this.loading=true
-            this.$api.getEnterpriseList(parm).then(res=>{
-                this.list=res.data.data.list;
-                this.total=res.data.data.total
-                this.loading=false
+            this.$api.getRoleList(parm).then(res=>{
+                let list = res.data.data.list;
+                list.forEach(item => {
+                    let perms = []
+                    let permissions = JSON.parse(item.permissions)
+                    if(permissions){
+                        permissions.forEach(iitem=>{
+                            perms.push(iitem.label)
+                        })
+                        item.permstr = perms.join(",")
+                    }
+                });
+                this.list = list
+                this.total = res.data.data.total
+                this.loading = false
             })
             })
         },
         },
+        edit(id){
+            this.getData()
+            this.$api.getRoleInfo({id:id}).then((res)=>{
+                this.form1 = res.data.data
+                let perms = JSON.parse(res.data.data.permissions)
+                this.$refs.tree.setCheckedNodes(perms)
+                this.selected = perms
+            })
+            this.dialogVisible = true;
+        },
         del(id){
         del(id){
                 this.$confirm('确定删除吗', '提示', {
                 this.$confirm('确定删除吗', '提示', {
                         type: 'warning'
                         type: 'warning'
                     }).then(() => {
                     }).then(() => {
-                    this.$api.deleteEnterprise({id:id}).then((res)=>{
+                    this.$api.delRole({id:id}).then((res)=>{
                             this.$message({
                             this.$message({
                                 message: '删除成功',
                                 message: '删除成功',
                                 type: 'success'
                                 type: 'success'
@@ -132,10 +162,40 @@ export default {
                     })
                     })
                 })
                 })
         },
         },
+        save(){
+            let parm = this.form1
+            parm.permissions = JSON.stringify(this.selected)
+            if(parm.id){
+                this.$api.editRole(parm).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"保存成功!"
+                        })
+                    this.getData()
+                    }else{
+                        this.$message.error("失败!");
+                    }
+                })
+            }else{
+                this.$api.addRole(parm).then(res=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            type:"success",
+                            message:"保存成功!"
+                        })
+                    this.getData()
+                    }else{
+                        this.$message.error("失败!");
+                    }
+                })
+            }
+            this.dialogVisible = false;
+        }
   },
   },
   created(){
   created(){
       this.getPermissions()
       this.getPermissions()
-    //   this.getData()
+      this.getData()
   }
   }
 }
 }
 </script>
 </script>