正在显示
13 个修改的文件
包含
725 行增加
和
24 行删除
| @@ -23,13 +23,13 @@ module.exports = { | @@ -23,13 +23,13 @@ module.exports = { | ||
| 23 | }, | 23 | }, |
| 24 | dev: { | 24 | dev: { |
| 25 | env: require('./dev.env'), | 25 | env: require('./dev.env'), |
| 26 | - port: 8082, | 26 | + port: 8001, |
| 27 | autoOpenBrowser: true, | 27 | autoOpenBrowser: true, |
| 28 | assetsSubDirectory: 'static', | 28 | assetsSubDirectory: 'static', |
| 29 | assetsPublicPath: '/', | 29 | assetsPublicPath: '/', |
| 30 | proxyTable: { | 30 | proxyTable: { |
| 31 | '/api':{ | 31 | '/api':{ |
| 32 | - target: 'http://127.0.0.1:7003',//设置你调用的接口域名和端口号 别忘了加http | 32 | + target: 'http://127.0.0.1:8002',//设置你调用的接口域名和端口号 别忘了加http |
| 33 | changeOrigin: true, | 33 | changeOrigin: true, |
| 34 | pathRewrite: { | 34 | pathRewrite: { |
| 35 | '^/api': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 | 35 | '^/api': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 |
src/api/company.js
0 → 100644
| 1 | +import axios from 'axios' | ||
| 2 | + | ||
| 3 | +let base = '/company'; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +export const remove = params => { return axios({ | ||
| 10 | + method: 'DELETE', | ||
| 11 | + url: `${base}/del`, | ||
| 12 | + data: params, | ||
| 13 | + headers: { | ||
| 14 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 15 | + } | ||
| 16 | +})}; | ||
| 17 | + | ||
| 18 | +//批量删除 | ||
| 19 | +export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); }; | ||
| 20 | + | ||
| 21 | +export const edit = params => { return axios({ | ||
| 22 | + method: 'PUT', | ||
| 23 | + url: `${base}/edit`, | ||
| 24 | + data: params, | ||
| 25 | + headers: { | ||
| 26 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 27 | + } | ||
| 28 | +})}; | ||
| 29 | + | ||
| 30 | +export const add = params => { return axios({ | ||
| 31 | + method: 'POST', | ||
| 32 | + url: `${base}/add`, | ||
| 33 | + data: params, | ||
| 34 | + headers: { | ||
| 35 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 36 | + } | ||
| 37 | +})}; |
src/api/department.js
0 → 100644
| 1 | +import axios from 'axios' | ||
| 2 | + | ||
| 3 | +let base = '/department'; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +export const remove = params => { return axios({ | ||
| 10 | + method: 'DELETE', | ||
| 11 | + url: `${base}/del`, | ||
| 12 | + data: params, | ||
| 13 | + headers: { | ||
| 14 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 15 | + } | ||
| 16 | +})}; | ||
| 17 | + | ||
| 18 | +//批量删除 | ||
| 19 | +export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); }; | ||
| 20 | + | ||
| 21 | +export const edit = params => { return axios({ | ||
| 22 | + method: 'PUT', | ||
| 23 | + url: `${base}/edit`, | ||
| 24 | + data: params, | ||
| 25 | + headers: { | ||
| 26 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 27 | + } | ||
| 28 | +})}; | ||
| 29 | + | ||
| 30 | +export const add = params => { return axios({ | ||
| 31 | + method: 'POST', | ||
| 32 | + url: `${base}/add`, | ||
| 33 | + data: params, | ||
| 34 | + headers: { | ||
| 35 | + 'Content-Type': 'application/json;charset=UTF-8' | ||
| 36 | + } | ||
| 37 | +})}; |
| 1 | import axios from 'axios' | 1 | import axios from 'axios' |
| 2 | 2 | ||
| 3 | -axios.defaults.baseURL = 'http://localhost:8082/api'; | ||
| 4 | -let base = axios.defaults.baseURL+'/system/log'; | 3 | +let base = '/system/log'; |
| 5 | 4 | ||
| 6 | 5 | ||
| 7 | export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; | 6 | export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; |
| 1 | import axios from 'axios' | 1 | import axios from 'axios' |
| 2 | 2 | ||
| 3 | -axios.defaults.baseURL = 'http://localhost:8082/api'; | ||
| 4 | -let base = axios.defaults.baseURL+'/perm'; | 3 | +let base = '/perm'; |
| 5 | 4 | ||
| 6 | 5 | ||
| 7 | export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; | 6 | export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; |
| 1 | var SIGN_REGEXP = /([yMdhsm])(\1*)/g; | 1 | var SIGN_REGEXP = /([yMdhsm])(\1*)/g; |
| 2 | var DEFAULT_PATTERN = 'yyyy-MM-dd'; | 2 | var DEFAULT_PATTERN = 'yyyy-MM-dd'; |
| 3 | + | ||
| 3 | function padding(s, len) { | 4 | function padding(s, len) { |
| 4 | var len = len - (s + '').length; | 5 | var len = len - (s + '').length; |
| 5 | for (var i = 0; i < len; i++) { s = '0' + s; } | 6 | for (var i = 0; i < len; i++) { s = '0' + s; } |
| 1 | -import babelpolyfill from 'babel-polyfill' | 1 | + |
| 2 | import Vue from 'vue' | 2 | import Vue from 'vue' |
| 3 | import App from './App' | 3 | import App from './App' |
| 4 | -import ElementUI from 'element-ui' | ||
| 5 | import 'element-ui/lib/theme-default/index.css' | 4 | import 'element-ui/lib/theme-default/index.css' |
| 6 | //import './assets/theme/theme-green/index.css' | 5 | //import './assets/theme/theme-green/index.css' |
| 7 | import VueRouter from 'vue-router' | 6 | import VueRouter from 'vue-router' |
| 8 | import store from './vuex/store' | 7 | import store from './vuex/store' |
| 9 | import Vuex from 'vuex' | 8 | import Vuex from 'vuex' |
| 10 | import axios from 'axios' | 9 | import axios from 'axios' |
| 11 | -//import NProgress from 'nprogress' | ||
| 12 | -//import 'nprogress/nprogress.css' | ||
| 13 | import rout from './routes' | 10 | import rout from './routes' |
| 14 | import Mock from './mock' | 11 | import Mock from './mock' |
| 15 | import i18n from './lang' | 12 | import i18n from './lang' |
| 16 | import 'font-awesome/css/font-awesome.min.css' | 13 | import 'font-awesome/css/font-awesome.min.css' |
| 14 | +import ElementUI from 'element-ui' | ||
| 17 | 15 | ||
| 18 | //定义一个全局过滤器实现日期格式化 | 16 | //定义一个全局过滤器实现日期格式化 |
| 19 | Vue.filter('datefmt',function(input,fmtstring){ | 17 | Vue.filter('datefmt',function(input,fmtstring){ |
| @@ -7,6 +7,8 @@ import Role from './views/nav1/role.vue' | @@ -7,6 +7,8 @@ import Role from './views/nav1/role.vue' | ||
| 7 | import Perm from './views/nav1/perm.vue' | 7 | import Perm from './views/nav1/perm.vue' |
| 8 | import LOG from './views/nav1/Log.vue' | 8 | import LOG from './views/nav1/Log.vue' |
| 9 | import PreManifest from './views/agent/PreManifest.vue' | 9 | import PreManifest from './views/agent/PreManifest.vue' |
| 10 | +import Company from './views/nav1/company.vue' | ||
| 11 | +import Department from './views/nav1/department.vue' | ||
| 10 | // import Form from './views/nav1/Form.vue' | 12 | // import Form from './views/nav1/Form.vue' |
| 11 | 13 | ||
| 12 | import User from './views/nav1/user.vue' | 14 | import User from './views/nav1/user.vue' |
| @@ -46,9 +48,11 @@ let routes = [ | @@ -46,9 +48,11 @@ let routes = [ | ||
| 46 | iconCls: 'el-icon-setting',//图标样式class | 48 | iconCls: 'el-icon-setting',//图标样式class |
| 47 | children: [ | 49 | children: [ |
| 48 | { path: '/user', component: User, name: '用户管理' }, | 50 | { path: '/user', component: User, name: '用户管理' }, |
| 49 | - { path: '/role', component: Role, name: '角色管理' }, | 51 | + { path: '/role', component: Role, name: '岗位管理' }, |
| 50 | { path: '/perm', component: Perm, name: '权限管理' }, | 52 | { path: '/perm', component: Perm, name: '权限管理' }, |
| 51 | { path: '/log', component: LOG, name: '系统日志' }, | 53 | { path: '/log', component: LOG, name: '系统日志' }, |
| 54 | + { path: '/department', component: Department, name: '部门管理' }, | ||
| 55 | + { path: '/company', component: Company, name: '公司管理'}, | ||
| 52 | ] | 56 | ] |
| 53 | }, | 57 | }, |
| 54 | { | 58 | { |
| @@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
| 37 | <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item"> | 37 | <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item"> |
| 38 | <template v-if="!item.leaf"> | 38 | <template v-if="!item.leaf"> |
| 39 | <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div> | 39 | <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div> |
| 40 | - <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"> | 40 | + <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"> |
| 41 | <li v-for="child in item.children" v-if="!child.hidden" :key="child.path" class="el-menu-item" style="padding-left: 40px;" :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">{{child.name}}</li> | 41 | <li v-for="child in item.children" v-if="!child.hidden" :key="child.path" class="el-menu-item" style="padding-left: 40px;" :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">{{child.name}}</li> |
| 42 | </ul> | 42 | </ul> |
| 43 | </template> | 43 | </template> |
| @@ -70,6 +70,7 @@ | @@ -70,6 +70,7 @@ | ||
| 70 | </el-row> | 70 | </el-row> |
| 71 | </template> | 71 | </template> |
| 72 | 72 | ||
| 73 | + | ||
| 73 | <script> | 74 | <script> |
| 74 | import rt from '../routes' | 75 | import rt from '../routes' |
| 75 | export default { | 76 | export default { |
src/views/nav1/company.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <section> | ||
| 3 | + <!--工具条--> | ||
| 4 | + <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> | ||
| 5 | + <el-form :inline="true" :model="filters"> | ||
| 6 | + <el-form-item> | ||
| 7 | + <el-input v-model="filters.companyName" placeholder="公司名称"></el-input> | ||
| 8 | + </el-form-item> | ||
| 9 | + <el-form-item> | ||
| 10 | + <el-button type="primary" v-on:click="getCompanys()">查询</el-button> | ||
| 11 | + </el-form-item> | ||
| 12 | + <el-form-item> | ||
| 13 | + <el-button type="primary" @click="companyAdd">新增</el-button> | ||
| 14 | + </el-form-item> | ||
| 15 | + </el-form> | ||
| 16 | + </el-col> | ||
| 17 | + | ||
| 18 | + <!--列表--> | ||
| 19 | + <el-table :data="companyList" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;"> | ||
| 20 | + <el-table-column type="selection" width="55"> | ||
| 21 | + </el-table-column> | ||
| 22 | + <el-table-column type="index"> | ||
| 23 | + </el-table-column> | ||
| 24 | + <el-table-column prop="companyId" label="ID" sortable> | ||
| 25 | + </el-table-column> | ||
| 26 | + <el-table-column prop="companyName" label="公司名称" sortable> | ||
| 27 | + </el-table-column> | ||
| 28 | + <el-table-column prop="creatTime" label="入库时间" sortable> | ||
| 29 | + </el-table-column> | ||
| 30 | + <el-table-column label="操作" min-width="150"> | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
| 33 | + <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | ||
| 34 | + </template> | ||
| 35 | + </el-table-column> | ||
| 36 | + </el-table> | ||
| 37 | + | ||
| 38 | + <!--工具条--> | ||
| 39 | + <el-col :span="24" class="toolbar"> | ||
| 40 | + <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> | ||
| 41 | + <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;"> | ||
| 42 | + </el-pagination> | ||
| 43 | + </el-col> | ||
| 44 | + | ||
| 45 | + <!--编辑界面--> | ||
| 46 | + <el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false"> | ||
| 47 | + <el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm"> | ||
| 48 | + <el-form-item label="ID"> | ||
| 49 | + <span>{{editForm.companyId}}</span> | ||
| 50 | + </el-form-item> | ||
| 51 | + <el-form-item label="公司名称"> | ||
| 52 | + <el-input v-model="editForm.companyName" auto-complete="off" placeholder="请输入公司名称"></el-input> | ||
| 53 | + </el-form-item> | ||
| 54 | + <el-form-item label="集团名称"> | ||
| 55 | + <el-input v-model="editForm.groupId" auto-complete="off" placeholder=""></el-input> | ||
| 56 | + </el-form-item> | ||
| 57 | + </el-form> | ||
| 58 | + <div slot="footer" class="dialog-footer"> | ||
| 59 | + <el-button @click.native="editFormVisible = false">取消</el-button> | ||
| 60 | + <el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button> | ||
| 61 | + </div> | ||
| 62 | + </el-dialog> | ||
| 63 | + | ||
| 64 | + <!--新增界面--> | ||
| 65 | + <el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false"> | ||
| 66 | + <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> | ||
| 67 | + <el-form-item label="公司名称" prop="companyName"> | ||
| 68 | + <el-input v-model="addForm.companyName" auto-complete="off" placeholder="请输入公司名称"></el-input> | ||
| 69 | + </el-form-item> | ||
| 70 | + <el-form-item label="集团名称" prop="groupId"> | ||
| 71 | + <el-input v-model="addForm.groupId" auto-complete="off" placeholder="请输入集团名称"></el-input> | ||
| 72 | + </el-form-item> | ||
| 73 | + </el-form> | ||
| 74 | + <div slot="footer" class="dialog-footer"> | ||
| 75 | + <el-button @click.native="addFormVisible = false">取消</el-button> | ||
| 76 | + <el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button> | ||
| 77 | + </div> | ||
| 78 | + </el-dialog> | ||
| 79 | + </section> | ||
| 80 | +</template> | ||
| 81 | + | ||
| 82 | +<script> | ||
| 83 | + import util from '../../common/js/util' | ||
| 84 | + import NProgress from 'nprogress' | ||
| 85 | + import { getList, remove, batchRemove, edit, add } from '../../api/company'; | ||
| 86 | + import moment from 'moment' | ||
| 87 | + | ||
| 88 | + export default { | ||
| 89 | + data() { | ||
| 90 | + return { | ||
| 91 | + filters: { | ||
| 92 | + companyName: '' | ||
| 93 | + }, | ||
| 94 | + companyList: [], | ||
| 95 | + permIds: [], | ||
| 96 | + total: 0, | ||
| 97 | + pageNum: 1, | ||
| 98 | + pageSize: 5, | ||
| 99 | + listLoading: false, | ||
| 100 | + sels: [],//列表选中列 | ||
| 101 | + //编辑界面是否显示 | ||
| 102 | + editFormVisible: false, | ||
| 103 | + editLoading: false, | ||
| 104 | + editFormRules: { | ||
| 105 | + companyName: [ | ||
| 106 | + { required: true, message: '请输入公司名称', trigger: 'blur' } | ||
| 107 | + ] | ||
| 108 | + }, | ||
| 109 | + //编辑界面数据 | ||
| 110 | + editForm: { | ||
| 111 | + companyId: '', | ||
| 112 | + companyName: '', | ||
| 113 | + groupId: '' | ||
| 114 | + }, | ||
| 115 | + //设置权限数据 | ||
| 116 | + setPermForm: {}, | ||
| 117 | + //新增界面是否显示 | ||
| 118 | + addFormVisible: false, | ||
| 119 | + //设置权限界面是否显示 | ||
| 120 | + PermFormVisible: false, | ||
| 121 | + addLoading: false, | ||
| 122 | + addFormRules: { | ||
| 123 | + companyName: [ | ||
| 124 | + { required: true, message: '请输入公司名称', trigger: 'blur' } | ||
| 125 | + ] | ||
| 126 | + }, | ||
| 127 | + //新增界面数据 | ||
| 128 | + addForm: { | ||
| 129 | + companyName: '', | ||
| 130 | + groupId: '' | ||
| 131 | + }, | ||
| 132 | + companyFrom: { | ||
| 133 | + companyId: 1, | ||
| 134 | + companyName: '', | ||
| 135 | + companys: [] | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + } | ||
| 139 | + }, | ||
| 140 | + mounted() { | ||
| 141 | + this.getCompanys(); | ||
| 142 | + }, | ||
| 143 | + methods: { | ||
| 144 | + //性别显示转换 | ||
| 145 | + formatSex: function (row, column) { | ||
| 146 | + return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知'; | ||
| 147 | + }, | ||
| 148 | + formatState: function (row, column) { | ||
| 149 | + return row.state == true ? '是' : row.state == false ? '否' : '未知'; | ||
| 150 | + }, | ||
| 151 | + handleCurrentChange(val) { | ||
| 152 | + this.pageNum = val; | ||
| 153 | + this.getRoles(); | ||
| 154 | + }, | ||
| 155 | + //获取公司列表 | ||
| 156 | + getCompanys() { | ||
| 157 | + let para = { | ||
| 158 | + pageNum: this.pageNum, | ||
| 159 | + pageSize: this.pageSize, | ||
| 160 | + companyName: this.filters.companyName | ||
| 161 | + }; | ||
| 162 | + this.listLoading = true; | ||
| 163 | + //NProgress.start(); | ||
| 164 | + getList(para).then((res) => { | ||
| 165 | + this.total = res.data.total; | ||
| 166 | + this.companyList = res.data.list; | ||
| 167 | + console.log(this.companyList); | ||
| 168 | + this.listLoading = false; | ||
| 169 | + //NProgress.done(); | ||
| 170 | + }).catch((error) => { | ||
| 171 | + | ||
| 172 | + this.listLoading = false; | ||
| 173 | + if(null!= error.response && error.response!==undefined){ | ||
| 174 | + let status= error.response.status; | ||
| 175 | + let msg = error.response.statusText; | ||
| 176 | + alert(status+msg); | ||
| 177 | + }else { | ||
| 178 | + alert(error); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + }); | ||
| 182 | + | ||
| 183 | + }, | ||
| 184 | + | ||
| 185 | + //删除 | ||
| 186 | + handleDel: function (index, row) { | ||
| 187 | + this.$confirm('确认删除该记录吗?', '提示', { | ||
| 188 | + type: 'warning' | ||
| 189 | + }).then(() => { | ||
| 190 | + this.listLoading = true; | ||
| 191 | + //NProgress.start(); | ||
| 192 | + let para = { companyId: row.companyId }; | ||
| 193 | + remove(para).then((res) => { | ||
| 194 | + this.listLoading = false; | ||
| 195 | + //NProgress.done(); | ||
| 196 | + this.$message({ | ||
| 197 | + message: '删除成功', | ||
| 198 | + type: 'success' | ||
| 199 | + }); | ||
| 200 | + this.getCompanys(); | ||
| 201 | + }).catch((error) => { | ||
| 202 | + this.listLoading = false; | ||
| 203 | + alert(error); | ||
| 204 | + }); | ||
| 205 | + }).catch(); | ||
| 206 | + }, | ||
| 207 | + /** | ||
| 208 | + * 显示编辑界面 | ||
| 209 | + * @param index | ||
| 210 | + * @param row 为这行的数据对象 | ||
| 211 | + */ | ||
| 212 | + handleEdit: function (index, row) { | ||
| 213 | + this.editFormVisible = true; | ||
| 214 | + this.editForm = Object.assign({}, row); | ||
| 215 | + }, | ||
| 216 | + setPerm: function (index, row) { | ||
| 217 | + var _this = this; | ||
| 218 | + this.companyIds = []; | ||
| 219 | + this.PermFormVisible = true; | ||
| 220 | + this.companyFrom = Object.assign({}, row); | ||
| 221 | + let rolePerms = this.companyFrom.companys; | ||
| 222 | + if (util.checkNull(rolePerms)){ | ||
| 223 | + rolePerms.forEach(function (company,v_index,v_arr) { | ||
| 224 | + if(util.checkNull(perm)){ | ||
| 225 | + _this.companyIds[v_index] = company.companyId; | ||
| 226 | + } | ||
| 227 | + }); | ||
| 228 | + } | ||
| 229 | + this.getPermList(); | ||
| 230 | + }, | ||
| 231 | + //显示新增界面,每次点开初始化数据 | ||
| 232 | + companyAdd: function () { | ||
| 233 | + this.addFormVisible = true; | ||
| 234 | + this.addForm = { | ||
| 235 | + companyName: '', | ||
| 236 | + groupId: '' | ||
| 237 | + }; | ||
| 238 | + }, | ||
| 239 | + | ||
| 240 | + //新增 | ||
| 241 | + addSubmit: function () { | ||
| 242 | + this.$refs.addForm.validate((valid) => { | ||
| 243 | + if (valid) { | ||
| 244 | + this.$confirm('确认提交吗?', '提示', {}).then(() => { | ||
| 245 | + this.addLoading = true; | ||
| 246 | + //NProgress.start(); | ||
| 247 | + let para = Object.assign({}, this.addForm); | ||
| 248 | + add(para).then((res) => { | ||
| 249 | + this.addLoading = false; | ||
| 250 | + //NProgress.done(); | ||
| 251 | + this.$message({ | ||
| 252 | + message: '提交成功', | ||
| 253 | + type: 'success' | ||
| 254 | + }); | ||
| 255 | + this.$refs['addForm'].resetFields(); | ||
| 256 | + this.addFormVisible = false; | ||
| 257 | + this.getCompanys(); | ||
| 258 | + }).catch(error => alert(error)); | ||
| 259 | + }); | ||
| 260 | + } | ||
| 261 | + }); | ||
| 262 | + }, | ||
| 263 | + //编辑 | ||
| 264 | + editSubmit: function () { | ||
| 265 | + this.$refs.editForm.validate((valid) => { | ||
| 266 | + if (valid) { | ||
| 267 | + this.$confirm('确认提交吗?', '提示', {}).then(() => { | ||
| 268 | + this.editLoading = true; | ||
| 269 | + let para = Object.assign({}, this.editForm); | ||
| 270 | + this.editLoading = false; | ||
| 271 | + edit(para).then((res) => { | ||
| 272 | + | ||
| 273 | + //NProgress.done(); | ||
| 274 | + this.$message({ | ||
| 275 | + message: '提交成功', | ||
| 276 | + type: 'success' | ||
| 277 | + }); | ||
| 278 | + this.$refs['editForm'].resetFields(); | ||
| 279 | + this.editFormVisible = false; | ||
| 280 | + this.getCompanys(); | ||
| 281 | + }).catch(error => alert(error)); | ||
| 282 | + }); | ||
| 283 | + } | ||
| 284 | + }); | ||
| 285 | + }, | ||
| 286 | + | ||
| 287 | + selsChange: function (sels) { | ||
| 288 | + this.sels = sels; | ||
| 289 | + }, | ||
| 290 | + //批量删除 | ||
| 291 | + batchRemove: function () { | ||
| 292 | + var ids = this.sels.map(item => item.companyId).toString(); | ||
| 293 | + console.log(ids); | ||
| 294 | + this.$confirm('确认删除选中记录吗?', '提示', { | ||
| 295 | + type: 'warning' | ||
| 296 | + }).then(() => { | ||
| 297 | + this.listLoading = true; | ||
| 298 | + //NProgress.start(); | ||
| 299 | + let para = { ids: ids }; | ||
| 300 | + batchRemove(para).then((res) => { | ||
| 301 | + this.listLoading = false; | ||
| 302 | + //NProgress.done(); | ||
| 303 | + this.$message({ | ||
| 304 | + message: '删除成功', | ||
| 305 | + type: 'success' | ||
| 306 | + }); | ||
| 307 | + this.getCompanys(); | ||
| 308 | + }); | ||
| 309 | + }).catch(() => { | ||
| 310 | + | ||
| 311 | + }); | ||
| 312 | + } | ||
| 313 | + }, | ||
| 314 | + | ||
| 315 | + } | ||
| 316 | +</script> |
src/views/nav1/department.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <section> | ||
| 3 | + <!--工具条--> | ||
| 4 | + <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> | ||
| 5 | + <el-form :inline="true" :model="filters"> | ||
| 6 | + <el-form-item> | ||
| 7 | + <el-input v-model="filters.departmentName" placeholder="部门名称"></el-input> | ||
| 8 | + </el-form-item> | ||
| 9 | + <el-form-item> | ||
| 10 | + <el-button type="primary" v-on:click="getDepartments()">查询</el-button> | ||
| 11 | + </el-form-item> | ||
| 12 | + <el-form-item> | ||
| 13 | + <el-button type="primary" @click="departmentAdd">新增</el-button> | ||
| 14 | + </el-form-item> | ||
| 15 | + </el-form> | ||
| 16 | + </el-col> | ||
| 17 | + | ||
| 18 | + <!--列表--> | ||
| 19 | + <el-table :data="departmentList" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;"> | ||
| 20 | + <el-table-column type="selection" width="55"> | ||
| 21 | + </el-table-column> | ||
| 22 | + <el-table-column type="index"> | ||
| 23 | + </el-table-column> | ||
| 24 | + <el-table-column prop="departmentId" label="ID" sortable> | ||
| 25 | + </el-table-column> | ||
| 26 | + <el-table-column prop="departmentName" label="部门名称" sortable> | ||
| 27 | + </el-table-column> | ||
| 28 | + <el-table-column prop="creatTime" label="入库时间" sortable> | ||
| 29 | + </el-table-column> | ||
| 30 | + <el-table-column label="操作" min-width="150"> | ||
| 31 | + <template slot-scope="scope"> | ||
| 32 | + <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> | ||
| 33 | + <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> | ||
| 34 | + </template> | ||
| 35 | + </el-table-column> | ||
| 36 | + </el-table> | ||
| 37 | + | ||
| 38 | + <!--工具条--> | ||
| 39 | + <el-col :span="24" class="toolbar"> | ||
| 40 | + <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> | ||
| 41 | + <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;"> | ||
| 42 | + </el-pagination> | ||
| 43 | + </el-col> | ||
| 44 | + | ||
| 45 | + <!--编辑界面--> | ||
| 46 | + <el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false"> | ||
| 47 | + <el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm"> | ||
| 48 | + <el-form-item label="ID"> | ||
| 49 | + <span>{{editForm.departmentId}}</span> | ||
| 50 | + </el-form-item> | ||
| 51 | + <el-form-item label="部门名称"> | ||
| 52 | + <el-input v-model="editForm.departmentName" auto-complete="off" placeholder="请输入公司名称"></el-input> | ||
| 53 | + </el-form-item> | ||
| 54 | + <el-form-item label="公司名称"> | ||
| 55 | + <el-input v-model="editForm.companyId" auto-complete="off" placeholder=""></el-input> | ||
| 56 | + </el-form-item> | ||
| 57 | + </el-form> | ||
| 58 | + <div slot="footer" class="dialog-footer"> | ||
| 59 | + <el-button @click.native="editFormVisible = false">取消</el-button> | ||
| 60 | + <el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button> | ||
| 61 | + </div> | ||
| 62 | + </el-dialog> | ||
| 63 | + | ||
| 64 | + <!--新增界面--> | ||
| 65 | + <el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false"> | ||
| 66 | + <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> | ||
| 67 | + <el-form-item label="公司名称" prop="companyName"> | ||
| 68 | + <el-input v-model="addForm.departmentName" auto-complete="off" placeholder="请输入公司名称"></el-input> | ||
| 69 | + </el-form-item> | ||
| 70 | + <el-form-item label="集团名称" prop="groupId"> | ||
| 71 | + <el-input v-model="addForm.companyId" auto-complete="off" placeholder="请输入集团名称"></el-input> | ||
| 72 | + </el-form-item> | ||
| 73 | + </el-form> | ||
| 74 | + <div slot="footer" class="dialog-footer"> | ||
| 75 | + <el-button @click.native="addFormVisible = false">取消</el-button> | ||
| 76 | + <el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button> | ||
| 77 | + </div> | ||
| 78 | + </el-dialog> | ||
| 79 | + </section> | ||
| 80 | +</template> | ||
| 81 | + | ||
| 82 | +<script> | ||
| 83 | + import util from '../../common/js/util' | ||
| 84 | + import NProgress from 'nprogress' | ||
| 85 | + import { getList, remove, batchRemove, edit, add } from '../../api/department'; | ||
| 86 | + import moment from 'moment' | ||
| 87 | + | ||
| 88 | + export default { | ||
| 89 | + data() { | ||
| 90 | + return { | ||
| 91 | + filters: { | ||
| 92 | + companyName: '' | ||
| 93 | + }, | ||
| 94 | + departmentList: [], | ||
| 95 | + permIds: [], | ||
| 96 | + total: 0, | ||
| 97 | + pageNum: 1, | ||
| 98 | + pageSize: 5, | ||
| 99 | + listLoading: false, | ||
| 100 | + sels: [],//列表选中列 | ||
| 101 | + //编辑界面是否显示 | ||
| 102 | + editFormVisible: false, | ||
| 103 | + editLoading: false, | ||
| 104 | + editFormRules: { | ||
| 105 | + departmentName: [ | ||
| 106 | + { required: true, message: '请输入部门名称', trigger: 'blur' } | ||
| 107 | + ] | ||
| 108 | + }, | ||
| 109 | + //编辑界面数据 | ||
| 110 | + editForm: { | ||
| 111 | + departmentId: '', | ||
| 112 | + departmentName: '', | ||
| 113 | + companyId: '' | ||
| 114 | + }, | ||
| 115 | + //设置权限数据 | ||
| 116 | + setPermForm: {}, | ||
| 117 | + //新增界面是否显示 | ||
| 118 | + addFormVisible: false, | ||
| 119 | + //设置权限界面是否显示 | ||
| 120 | + PermFormVisible: false, | ||
| 121 | + addLoading: false, | ||
| 122 | + addFormRules: { | ||
| 123 | + departmentName: [ | ||
| 124 | + { required: true, message: '请输入部门名称', trigger: 'blur' } | ||
| 125 | + ] | ||
| 126 | + }, | ||
| 127 | + //新增界面数据 | ||
| 128 | + addForm: { | ||
| 129 | + departmentName: '', | ||
| 130 | + companyId: '' | ||
| 131 | + }, | ||
| 132 | + departmentFrom: { | ||
| 133 | + departmentId: 1, | ||
| 134 | + departmentName: '', | ||
| 135 | + departments: [] | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + } | ||
| 139 | + }, | ||
| 140 | + mounted() { | ||
| 141 | + this.getDepartments(); | ||
| 142 | + }, | ||
| 143 | + methods: { | ||
| 144 | + | ||
| 145 | + handleCurrentChange(val) { | ||
| 146 | + this.pageNum = val; | ||
| 147 | + this.getDepartments(); | ||
| 148 | + }, | ||
| 149 | + //获取公司列表 | ||
| 150 | + getDepartments() { | ||
| 151 | + let para = { | ||
| 152 | + pageNum: this.pageNum, | ||
| 153 | + pageSize: this.pageSize, | ||
| 154 | + departmentName: this.filters.departmentName | ||
| 155 | + }; | ||
| 156 | + this.listLoading = true; | ||
| 157 | + //NProgress.start(); | ||
| 158 | + getList(para).then((res) => { | ||
| 159 | + this.total = res.data.total; | ||
| 160 | + this.departmentList = res.data.list; | ||
| 161 | + this.listLoading = false; | ||
| 162 | + //NProgress.done(); | ||
| 163 | + }).catch((error) => { | ||
| 164 | + | ||
| 165 | + this.listLoading = false; | ||
| 166 | + if(null!= error.response && error.response!==undefined){ | ||
| 167 | + let status= error.response.status; | ||
| 168 | + let msg = error.response.statusText; | ||
| 169 | + alert(status+msg); | ||
| 170 | + }else { | ||
| 171 | + alert(error); | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + }); | ||
| 175 | + | ||
| 176 | + }, | ||
| 177 | + | ||
| 178 | + //删除 | ||
| 179 | + handleDel: function (index, row) { | ||
| 180 | + this.$confirm('确认删除该记录吗?', '提示', { | ||
| 181 | + type: 'warning' | ||
| 182 | + }).then(() => { | ||
| 183 | + this.listLoading = true; | ||
| 184 | + //NProgress.start(); | ||
| 185 | + let para = { departmentId: row.departmentId }; | ||
| 186 | + remove(para).then((res) => { | ||
| 187 | + this.listLoading = false; | ||
| 188 | + //NProgress.done(); | ||
| 189 | + this.$message({ | ||
| 190 | + message: '删除成功', | ||
| 191 | + type: 'success' | ||
| 192 | + }); | ||
| 193 | + this.getDepartments(); | ||
| 194 | + }).catch((error) => { | ||
| 195 | + this.listLoading = false; | ||
| 196 | + alert(error); | ||
| 197 | + }); | ||
| 198 | + }).catch(); | ||
| 199 | + }, | ||
| 200 | + /** | ||
| 201 | + * 显示编辑界面 | ||
| 202 | + * @param index | ||
| 203 | + * @param row 为这行的数据对象 | ||
| 204 | + */ | ||
| 205 | + handleEdit: function (index, row) { | ||
| 206 | + this.editFormVisible = true; | ||
| 207 | + this.editForm = Object.assign({}, row); | ||
| 208 | + }, | ||
| 209 | + setPerm: function (index, row) { | ||
| 210 | + var _this = this; | ||
| 211 | + this.departmentIds = []; | ||
| 212 | + this.PermFormVisible = true; | ||
| 213 | + this.departmentFrom = Object.assign({}, row); | ||
| 214 | + let rolePerms = this.departmentFrom.departments; | ||
| 215 | + if (util.checkNull(rolePerms)){ | ||
| 216 | + rolePerms.forEach(function (department,v_index,v_arr) { | ||
| 217 | + if(util.checkNull(perm)){ | ||
| 218 | + _this.departmentIds[v_index] = department.departmentId; | ||
| 219 | + } | ||
| 220 | + }); | ||
| 221 | + } | ||
| 222 | + this.getPermList(); | ||
| 223 | + }, | ||
| 224 | + //显示新增界面,每次点开初始化数据 | ||
| 225 | + departmentAdd: function () { | ||
| 226 | + this.addFormVisible = true; | ||
| 227 | + this.addForm = { | ||
| 228 | + departmentName: '', | ||
| 229 | + companyId: '' | ||
| 230 | + }; | ||
| 231 | + }, | ||
| 232 | + | ||
| 233 | + //新增 | ||
| 234 | + addSubmit: function () { | ||
| 235 | + this.$refs.addForm.validate((valid) => { | ||
| 236 | + if (valid) { | ||
| 237 | + this.$confirm('确认提交吗?', '提示', {}).then(() => { | ||
| 238 | + this.addLoading = true; | ||
| 239 | + //NProgress.start(); | ||
| 240 | + let para = Object.assign({}, this.addForm); | ||
| 241 | + add(para).then((res) => { | ||
| 242 | + this.addLoading = false; | ||
| 243 | + //NProgress.done(); | ||
| 244 | + this.$message({ | ||
| 245 | + message: '提交成功', | ||
| 246 | + type: 'success' | ||
| 247 | + }); | ||
| 248 | + this.$refs['addForm'].resetFields(); | ||
| 249 | + this.addFormVisible = false; | ||
| 250 | + this.getDepartments(); | ||
| 251 | + }).catch(error => alert(error)); | ||
| 252 | + }); | ||
| 253 | + } | ||
| 254 | + }); | ||
| 255 | + }, | ||
| 256 | + //编辑 | ||
| 257 | + editSubmit: function () { | ||
| 258 | + this.$refs.editForm.validate((valid) => { | ||
| 259 | + if (valid) { | ||
| 260 | + this.$confirm('确认提交吗?', '提示', {}).then(() => { | ||
| 261 | + this.editLoading = true; | ||
| 262 | + let para = Object.assign({}, this.editForm); | ||
| 263 | + this.editLoading = false; | ||
| 264 | + edit(para).then((res) => { | ||
| 265 | + | ||
| 266 | + //NProgress.done(); | ||
| 267 | + this.$message({ | ||
| 268 | + message: '提交成功', | ||
| 269 | + type: 'success' | ||
| 270 | + }); | ||
| 271 | + this.$refs['editForm'].resetFields(); | ||
| 272 | + this.editFormVisible = false; | ||
| 273 | + this.getDepartments(); | ||
| 274 | + }).catch(error => alert(error)); | ||
| 275 | + }); | ||
| 276 | + } | ||
| 277 | + }); | ||
| 278 | + }, | ||
| 279 | + | ||
| 280 | + selsChange: function (sels) { | ||
| 281 | + this.sels = sels; | ||
| 282 | + }, | ||
| 283 | + //批量删除 | ||
| 284 | + batchRemove: function () { | ||
| 285 | + var ids = this.sels.map(item => item.departmentId).toString(); | ||
| 286 | + console.log(ids); | ||
| 287 | + this.$confirm('确认删除选中记录吗?', '提示', { | ||
| 288 | + type: 'warning' | ||
| 289 | + }).then(() => { | ||
| 290 | + this.listLoading = true; | ||
| 291 | + //NProgress.start(); | ||
| 292 | + let para = { ids: ids }; | ||
| 293 | + batchRemove(para).then((res) => { | ||
| 294 | + this.listLoading = false; | ||
| 295 | + //NProgress.done(); | ||
| 296 | + this.$message({ | ||
| 297 | + message: '删除成功', | ||
| 298 | + type: 'success' | ||
| 299 | + }); | ||
| 300 | + this.getDepartments(); | ||
| 301 | + }); | ||
| 302 | + }).catch(() => { | ||
| 303 | + | ||
| 304 | + }); | ||
| 305 | + } | ||
| 306 | + }, | ||
| 307 | + | ||
| 308 | + } | ||
| 309 | +</script> |
| @@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
| 23 | </el-table-column> | 23 | </el-table-column> |
| 24 | <el-table-column prop="permissionId" label="ID" width="100" sortable> | 24 | <el-table-column prop="permissionId" label="ID" width="100" sortable> |
| 25 | </el-table-column> | 25 | </el-table-column> |
| 26 | - <el-table-column prop="permissionName" label="权限名称" min-width="200" sortable> | 26 | + <el-table-column prop="name" label="权限名称" min-width="200" sortable> |
| 27 | </el-table-column> | 27 | </el-table-column> |
| 28 | <el-table-column prop="description" label="描述" min-width="200" sortable> | 28 | <el-table-column prop="description" label="描述" min-width="200" sortable> |
| 29 | </el-table-column> | 29 | </el-table-column> |
| @@ -74,8 +74,8 @@ | @@ -74,8 +74,8 @@ | ||
| 74 | <!--新增界面--> | 74 | <!--新增界面--> |
| 75 | <el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false"> | 75 | <el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false"> |
| 76 | <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> | 76 | <el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm"> |
| 77 | - <el-form-item label="权限名称" prop="permissionName"> | ||
| 78 | - <el-input v-model="addForm.roleName" auto-complete="off" placeholder="请输入权限名称:例如:用户新增权限"></el-input> | 77 | + <el-form-item label="权限名称" prop="name"> |
| 78 | + <el-input v-model="addForm.name" auto-complete="off" placeholder="请输入权限名称:例如:用户新增权限"></el-input> | ||
| 79 | </el-form-item> | 79 | </el-form-item> |
| 80 | <el-form-item label="权限描述" prop="description"> | 80 | <el-form-item label="权限描述" prop="description"> |
| 81 | <el-input v-model="addForm.description" auto-complete="off" placeholder="请输入权限描述:例如:用户管理员"></el-input> | 81 | <el-input v-model="addForm.description" auto-complete="off" placeholder="请输入权限描述:例如:用户管理员"></el-input> |
| @@ -147,8 +147,11 @@ | @@ -147,8 +147,11 @@ | ||
| 147 | //新增界面数据 | 147 | //新增界面数据 |
| 148 | addForm: { | 148 | addForm: { |
| 149 | description: '', | 149 | description: '', |
| 150 | - roleName: '', | ||
| 151 | - roleSign: 1 | 150 | + name: '', |
| 151 | + url: '', | ||
| 152 | + path: '', | ||
| 153 | + parent_id: '', | ||
| 154 | + | ||
| 152 | } | 155 | } |
| 153 | 156 | ||
| 154 | } | 157 | } |
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> | 4 | <el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> |
| 5 | <el-form :inline="true" :model="filters"> | 5 | <el-form :inline="true" :model="filters"> |
| 6 | <el-form-item> | 6 | <el-form-item> |
| 7 | - <el-input v-model="filters.roleName" placeholder="角色名称"></el-input> | 7 | + <el-input v-model="filters.roleName" placeholder="部门名称"></el-input> |
| 8 | </el-form-item> | 8 | </el-form-item> |
| 9 | <el-form-item> | 9 | <el-form-item> |
| 10 | <el-button type="primary" v-on:click="getRoles()">查询</el-button> | 10 | <el-button type="primary" v-on:click="getRoles()">查询</el-button> |
| @@ -23,9 +23,9 @@ | @@ -23,9 +23,9 @@ | ||
| 23 | </el-table-column> | 23 | </el-table-column> |
| 24 | <el-table-column prop="roleId" label="ID" width="100" sortable> | 24 | <el-table-column prop="roleId" label="ID" width="100" sortable> |
| 25 | </el-table-column> | 25 | </el-table-column> |
| 26 | - <el-table-column prop="roleName" label="角色名称" min-width="200" sortable> | 26 | + <el-table-column prop="roleName" label="部门名称" min-width="200" sortable> |
| 27 | </el-table-column> | 27 | </el-table-column> |
| 28 | - <el-table-column prop="description" label="角色描述" min-width="200" sortable> | 28 | + <el-table-column prop="description" label="部门描述" min-width="200" sortable> |
| 29 | </el-table-column> | 29 | </el-table-column> |
| 30 | <el-table-column prop="roleSign" label="排序" width="100" sortable> | 30 | <el-table-column prop="roleSign" label="排序" width="100" sortable> |
| 31 | </el-table-column> | 31 | </el-table-column> |
| @@ -139,8 +139,7 @@ | @@ -139,8 +139,7 @@ | ||
| 139 | roleName: '', | 139 | roleName: '', |
| 140 | roleSign: 1 | 140 | roleSign: 1 |
| 141 | }, | 141 | }, |
| 142 | - //设置权限数据 | ||
| 143 | - setPermForm: {}, | 142 | + |
| 144 | //新增界面是否显示 | 143 | //新增界面是否显示 |
| 145 | addFormVisible: false, | 144 | addFormVisible: false, |
| 146 | //设置权限界面是否显示 | 145 | //设置权限界面是否显示 |
| @@ -207,8 +206,6 @@ | @@ -207,8 +206,6 @@ | ||
| 207 | alert(error); | 206 | alert(error); |
| 208 | } | 207 | } |
| 209 | 208 | ||
| 210 | - | ||
| 211 | - | ||
| 212 | }); | 209 | }); |
| 213 | 210 | ||
| 214 | }, | 211 | }, |
-
请 注册 或 登录 后发表评论