作者 shenhailong

....

@@ -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’即可
  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 +})};
  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 {
  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>
  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 },