| | |
| | | <template> |
| | | <div> |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="角色名称:" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.roleName" |
| | | class="input-form" |
| | | placeholder="请输入角色名称" |
| | | style="width:250px" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="权限:" class="sermargin"> |
| | | <el-input |
| | | v-model="searchData.permission" |
| | | class="input-form" |
| | | placeholder="请输入权限" |
| | | style="width:250px" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="search">查询</el-button> |
| | | <el-button type="primary" plain @click="reset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-form> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="addRole" icon="el-icon-plus">新增权限</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-box"> |
| | | <el-table |
| | | :max-height="800" |
| | | :cell-style="{textAlign: 'center'}" |
| | | :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" |
| | | :data="roleTable" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | min-width="8%" |
| | | /> |
| | | <el-table-column |
| | | prop="rolename" |
| | | label="角色名称" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="permission" |
| | | label="权限" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="create_time" |
| | | label="创建时间" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | prop="update_time" |
| | | label="更新时间" |
| | | min-width="20%" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | min-width="12%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" >编辑</el-button> |
| | | <el-button type="text" size="small" >删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页器 --> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage" |
| | | :page-sizes="[5, 10, 20]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="修改密码" :visible.sync="dialogTableVisible" width="30%"> |
| | | <el-form :model="updateData" ref="updateData" label-position="right" label-width="100px"> |
| | | <el-form-item label="原密码:"> |
| | | <el-input style="width: 300px" v-model="updateData.oldPassWord" placeholder="请输入原密码" > |
| | | <div class="content-main"> |
| | | <div class="top-bar"> |
| | | <el-form ref="form" :inline="true" :model="searchData"> |
| | | <el-form-item label="角色名称:" class="sermargin"> |
| | | <el-input v-model="searchData.roleName" class="input-form" placeholder="请输入角色名称" style="width:250px"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="新密码:"> |
| | | <el-input style="width: 300px" v-model="updateData.newPassWord" placeholder="请输入新密码"> |
| | | <el-form-item label="权限:" class="sermargin"> |
| | | <el-input v-model="searchData.permission" class="input-form" placeholder="请输入权限" style="width:250px"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认密码:"> |
| | | <el-input style="width: 300px" v-model="updateData.confirmPassWord" placeholder="再次输入密码"> |
| | | </el-input> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary">查询</el-button> |
| | | <el-button type="primary" plain>重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="changePassword">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-form> |
| | | <el-form-item class="rightBtn"> |
| | | <el-button type="primary" @click="addClickRole" icon="el-icon-plus">新增角色</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <div class="library-table"> |
| | | <div class="table-box"> |
| | | <el-table :max-height="800" :cell-style="{ textAlign: 'center' }" |
| | | :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" |
| | | :data="roleTable" style="width: 100%"> |
| | | <el-table-column type="selection" min-width="8%" /> |
| | | <el-table-column prop="rolename" label="角色名称" min-width="20%" /> |
| | | <el-table-column prop="permission" label="权限" min-width="20%" /> |
| | | <el-table-column prop="create_time" label="创建时间" min-width="20%" /> |
| | | <el-table-column prop="update_time" label="更新时间" min-width="20%" /> |
| | | <el-table-column label="操作" min-width="12%"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">编辑</el-button> |
| | | <el-button type="text" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- 分页器 --> |
| | | <div class="pagination"> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="新增角色" :visible.sync="dialogTableVisible" width="60%"> |
| | | <el-form :model="roleAdd" ref="roleAdd" label-position="right" label-width="100px"> |
| | | <el-form-item label="角色名:"> |
| | | <el-input style="width: 300px" v-model="roleAdd.roleName" placeholder="请输入角色名"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="功能选择:"> |
| | | <el-cascader size="medium " v-model="roleAdd.menuData" :options="menuInfo"> |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.label }}</span> |
| | | <span v-if="!node.isLeaf"> ({{ }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="addRole">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure' |
| | | import { getMenusTree } from '@/api/laboratory/role' |
| | | export default { |
| | | data() { |
| | | return { |
| | | searchData:{ |
| | | props: { multiple: true }, |
| | | roleAdd: { |
| | | roleName: null, |
| | | menuData: null |
| | | }, |
| | | searchData: { |
| | | roleName: '', |
| | | permission: '' |
| | | }, |
| | | roleTable:[{ |
| | | menuInfo: [], |
| | | roleTable: [{ |
| | | rolename: '部长', |
| | | permission: 'ROOT', |
| | | create_time: '2023-07-04 12:12:12', |
| | | update_time: '2023-07-04 12:12:12' |
| | | },{ |
| | | }, { |
| | | rolename: '组长', |
| | | permission: '--', |
| | | create_time: '2023-07-04 12:12:12', |
| | | update_time: '2023-07-04 12:12:12' |
| | | }], |
| | | updateData:{ |
| | | updateData: { |
| | | oldPassWord: '', |
| | | newPassWord: '', |
| | | confirmPassWord: '' |
| | |
| | | total: 20 |
| | | } |
| | | }, |
| | | created(){ |
| | | |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | addRole(){ |
| | | async addClickRole() { |
| | | let res = await getMenusTree(); |
| | | this.menuInfo = res.data |
| | | this.menuInfo.forEach(item => { |
| | | item.select = false |
| | | item.add = false |
| | | item.update = false |
| | | item.delete = false |
| | | if (item.children.length == 0) { |
| | | delete item['children'] |
| | | } else { |
| | | item.children.forEach(c => { |
| | | c.select = false |
| | | c.add = false |
| | | c.update = false |
| | | c.delete = false |
| | | if (c.children.length == 0) { |
| | | delete c['children'] |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.dialogTableVisible = true |
| | | // console.log(this.dialogTableVisible) |
| | | }, |
| | | addRole() { |
| | | console.log(this.roleAdd); |
| | | }, |
| | | // search(){}, |
| | | // reset(){}, |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .top-bar { |
| | | margin: -25px -15px; |
| | | background: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | |
| | | .top-bar{ |
| | | margin: -25px -15px; |
| | | .sermargin { |
| | | margin-right: 60px; |
| | | } |
| | | } |
| | | |
| | | .rightBtn { |
| | | margin-right: 50px |
| | | } |
| | | |
| | | .library-table { |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .table-box { |
| | | padding: 10px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 5px 24px 0px 24px; |
| | | .sermargin{ |
| | | margin-right: 60px; |
| | | flex-direction: column; |
| | | |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | } |
| | | .rightBtn{ |
| | | margin-right: 50px |
| | | } |
| | | .library-table{ |
| | | background-color: #fff; |
| | | flex: 1; |
| | | margin: 0px -15px; |
| | | margin-top: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .table-box{ |
| | | padding: 10px 20px; |
| | | margin-top: 0px; |
| | | flex: 1; |
| | | background: #fff; |
| | | /* padding: 20px 20px 10px 20px; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | .el-table { |
| | | flex: 1; |
| | | } |
| | | } |
| | | .pagination{ |
| | | display:flex; |
| | | justify-content:end; |
| | | margin-top: 20px |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-top: 20px |
| | | } |
| | | } |
| | | </style> |