作者 shenhailong

....

... ... @@ -23,13 +23,13 @@ module.exports = {
},
dev: {
env: require('./dev.env'),
port: 8082,
port: 8001,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api':{
target: 'http://127.0.0.1:7003',//设置你调用的接口域名和端口号 别忘了加http
target: 'http://127.0.0.1:8002',//设置你调用的接口域名和端口号 别忘了加http
changeOrigin: true,
pathRewrite: {
'^/api': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
... ...
import axios from 'axios'
let base = '/company';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const edit = params => { return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
export const add = params => { return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
... ...
import axios from 'axios'
let base = '/department';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
export const remove = params => { return axios({
method: 'DELETE',
url: `${base}/del`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
//批量删除
export const batchRemove = params => { return axios.get(`${base}/batchremove`, { params: params }); };
export const edit = params => { return axios({
method: 'PUT',
url: `${base}/edit`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
export const add = params => { return axios({
method: 'POST',
url: `${base}/add`,
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})};
\ No newline at end of file
... ...
import axios from 'axios'
axios.defaults.baseURL = 'http://localhost:8082/api';
let base = axios.defaults.baseURL+'/system/log';
let base = '/system/log';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
... ...
import axios from 'axios'
axios.defaults.baseURL = 'http://localhost:8082/api';
let base = axios.defaults.baseURL+'/perm';
let base = '/perm';
export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
... ...
var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
var DEFAULT_PATTERN = 'yyyy-MM-dd';
function padding(s, len) {
var len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; }
... ...
import babelpolyfill from 'babel-polyfill'
import Vue from 'vue'
import App from './App'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-default/index.css'
//import './assets/theme/theme-green/index.css'
import VueRouter from 'vue-router'
import store from './vuex/store'
import Vuex from 'vuex'
import axios from 'axios'
//import NProgress from 'nprogress'
//import 'nprogress/nprogress.css'
import rout from './routes'
import Mock from './mock'
import i18n from './lang'
import 'font-awesome/css/font-awesome.min.css'
import ElementUI from 'element-ui'
//定义一个全局过滤器实现日期格式化
Vue.filter('datefmt',function(input,fmtstring){
... ...
... ... @@ -7,6 +7,8 @@ import Role from './views/nav1/role.vue'
import Perm from './views/nav1/perm.vue'
import LOG from './views/nav1/Log.vue'
import PreManifest from './views/agent/PreManifest.vue'
import Company from './views/nav1/company.vue'
import Department from './views/nav1/department.vue'
// import Form from './views/nav1/Form.vue'
import User from './views/nav1/user.vue'
... ... @@ -46,9 +48,11 @@ let routes = [
iconCls: 'el-icon-setting',//图标样式class
children: [
{ path: '/user', component: User, name: '用户管理' },
{ path: '/role', component: Role, name: '角色管理' },
{ path: '/role', component: Role, name: '岗位管理' },
{ path: '/perm', component: Perm, name: '权限管理' },
{ path: '/log', component: LOG, name: '系统日志' },
{ path: '/department', component: Department, name: '部门管理' },
{ path: '/company', component: Company, name: '公司管理'},
]
},
{
... ...
... ... @@ -37,7 +37,7 @@
<li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">
<template v-if="!item.leaf">
<div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>
<ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">
<ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">
<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>
</ul>
</template>
... ... @@ -70,6 +70,7 @@
</el-row>
</template>
<script>
import rt from '../routes'
export default {
... ...
<template>
<section>
<!--工具条-->
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-form :inline="true" :model="filters">
<el-form-item>
<el-input v-model="filters.companyName" placeholder="公司名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" v-on:click="getCompanys()">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="companyAdd">新增</el-button>
</el-form-item>
</el-form>
</el-col>
<!--列表-->
<el-table :data="companyList" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column type="index">
</el-table-column>
<el-table-column prop="companyId" label="ID" sortable>
</el-table-column>
<el-table-column prop="companyName" label="公司名称" sortable>
</el-table-column>
<el-table-column prop="creatTime" label="入库时间" sortable>
</el-table-column>
<el-table-column label="操作" min-width="150">
<template slot-scope="scope">
<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--工具条-->
<el-col :span="24" class="toolbar">
<el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button>
<el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;">
</el-pagination>
</el-col>
<!--编辑界面-->
<el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false">
<el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm">
<el-form-item label="ID">
<span>{{editForm.companyId}}</span>
</el-form-item>
<el-form-item label="公司名称">
<el-input v-model="editForm.companyName" auto-complete="off" placeholder="请输入公司名称"></el-input>
</el-form-item>
<el-form-item label="集团名称">
<el-input v-model="editForm.groupId" auto-complete="off" placeholder=""></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="editFormVisible = false">取消</el-button>
<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>
</div>
</el-dialog>
<!--新增界面-->
<el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false">
<el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="addForm.companyName" auto-complete="off" placeholder="请输入公司名称"></el-input>
</el-form-item>
<el-form-item label="集团名称" prop="groupId">
<el-input v-model="addForm.groupId" auto-complete="off" placeholder="请输入集团名称"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="addFormVisible = false">取消</el-button>
<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
</div>
</el-dialog>
</section>
</template>
<script>
import util from '../../common/js/util'
import NProgress from 'nprogress'
import { getList, remove, batchRemove, edit, add } from '../../api/company';
import moment from 'moment'
export default {
data() {
return {
filters: {
companyName: ''
},
companyList: [],
permIds: [],
total: 0,
pageNum: 1,
pageSize: 5,
listLoading: false,
sels: [],//列表选中列
//编辑界面是否显示
editFormVisible: false,
editLoading: false,
editFormRules: {
companyName: [
{ required: true, message: '请输入公司名称', trigger: 'blur' }
]
},
//编辑界面数据
editForm: {
companyId: '',
companyName: '',
groupId: ''
},
//设置权限数据
setPermForm: {},
//新增界面是否显示
addFormVisible: false,
//设置权限界面是否显示
PermFormVisible: false,
addLoading: false,
addFormRules: {
companyName: [
{ required: true, message: '请输入公司名称', trigger: 'blur' }
]
},
//新增界面数据
addForm: {
companyName: '',
groupId: ''
},
companyFrom: {
companyId: 1,
companyName: '',
companys: []
}
}
},
mounted() {
this.getCompanys();
},
methods: {
//性别显示转换
formatSex: function (row, column) {
return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知';
},
formatState: function (row, column) {
return row.state == true ? '是' : row.state == false ? '否' : '未知';
},
handleCurrentChange(val) {
this.pageNum = val;
this.getRoles();
},
//获取公司列表
getCompanys() {
let para = {
pageNum: this.pageNum,
pageSize: this.pageSize,
companyName: this.filters.companyName
};
this.listLoading = true;
//NProgress.start();
getList(para).then((res) => {
this.total = res.data.total;
this.companyList = res.data.list;
console.log(this.companyList);
this.listLoading = false;
//NProgress.done();
}).catch((error) => {
this.listLoading = false;
if(null!= error.response && error.response!==undefined){
let status= error.response.status;
let msg = error.response.statusText;
alert(status+msg);
}else {
alert(error);
}
});
},
//删除
handleDel: function (index, row) {
this.$confirm('确认删除该记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { companyId: row.companyId };
remove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getCompanys();
}).catch((error) => {
this.listLoading = false;
alert(error);
});
}).catch();
},
/**
* 显示编辑界面
* @param index
* @param row 为这行的数据对象
*/
handleEdit: function (index, row) {
this.editFormVisible = true;
this.editForm = Object.assign({}, row);
},
setPerm: function (index, row) {
var _this = this;
this.companyIds = [];
this.PermFormVisible = true;
this.companyFrom = Object.assign({}, row);
let rolePerms = this.companyFrom.companys;
if (util.checkNull(rolePerms)){
rolePerms.forEach(function (company,v_index,v_arr) {
if(util.checkNull(perm)){
_this.companyIds[v_index] = company.companyId;
}
});
}
this.getPermList();
},
//显示新增界面,每次点开初始化数据
companyAdd: function () {
this.addFormVisible = true;
this.addForm = {
companyName: '',
groupId: ''
};
},
//新增
addSubmit: function () {
this.$refs.addForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.addLoading = true;
//NProgress.start();
let para = Object.assign({}, this.addForm);
add(para).then((res) => {
this.addLoading = false;
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['addForm'].resetFields();
this.addFormVisible = false;
this.getCompanys();
}).catch(error => alert(error));
});
}
});
},
//编辑
editSubmit: function () {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.editLoading = true;
let para = Object.assign({}, this.editForm);
this.editLoading = false;
edit(para).then((res) => {
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['editForm'].resetFields();
this.editFormVisible = false;
this.getCompanys();
}).catch(error => alert(error));
});
}
});
},
selsChange: function (sels) {
this.sels = sels;
},
//批量删除
batchRemove: function () {
var ids = this.sels.map(item => item.companyId).toString();
console.log(ids);
this.$confirm('确认删除选中记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { ids: ids };
batchRemove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getCompanys();
});
}).catch(() => {
});
}
},
}
</script>
\ No newline at end of file
... ...
<template>
<section>
<!--工具条-->
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-form :inline="true" :model="filters">
<el-form-item>
<el-input v-model="filters.departmentName" placeholder="部门名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" v-on:click="getDepartments()">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="departmentAdd">新增</el-button>
</el-form-item>
</el-form>
</el-col>
<!--列表-->
<el-table :data="departmentList" highlight-current-row v-loading="listLoading" @selection-change="selsChange" style="width: 100%;">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column type="index">
</el-table-column>
<el-table-column prop="departmentId" label="ID" sortable>
</el-table-column>
<el-table-column prop="departmentName" label="部门名称" sortable>
</el-table-column>
<el-table-column prop="creatTime" label="入库时间" sortable>
</el-table-column>
<el-table-column label="操作" min-width="150">
<template slot-scope="scope">
<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--工具条-->
<el-col :span="24" class="toolbar">
<el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button>
<el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="5" :total="total" style="float:right;">
</el-pagination>
</el-col>
<!--编辑界面-->
<el-dialog title="编辑" v-model="editFormVisible" :close-on-click-modal="false">
<el-form :model="editForm" label-width="80px" :rules="editFormRules" ref="editForm">
<el-form-item label="ID">
<span>{{editForm.departmentId}}</span>
</el-form-item>
<el-form-item label="部门名称">
<el-input v-model="editForm.departmentName" auto-complete="off" placeholder="请输入公司名称"></el-input>
</el-form-item>
<el-form-item label="公司名称">
<el-input v-model="editForm.companyId" auto-complete="off" placeholder=""></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="editFormVisible = false">取消</el-button>
<el-button type="primary" @click.native="editSubmit" :loading="editLoading">提交</el-button>
</div>
</el-dialog>
<!--新增界面-->
<el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false">
<el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="addForm.departmentName" auto-complete="off" placeholder="请输入公司名称"></el-input>
</el-form-item>
<el-form-item label="集团名称" prop="groupId">
<el-input v-model="addForm.companyId" auto-complete="off" placeholder="请输入集团名称"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="addFormVisible = false">取消</el-button>
<el-button type="primary" @click.native="addSubmit" :loading="addLoading">提交</el-button>
</div>
</el-dialog>
</section>
</template>
<script>
import util from '../../common/js/util'
import NProgress from 'nprogress'
import { getList, remove, batchRemove, edit, add } from '../../api/department';
import moment from 'moment'
export default {
data() {
return {
filters: {
companyName: ''
},
departmentList: [],
permIds: [],
total: 0,
pageNum: 1,
pageSize: 5,
listLoading: false,
sels: [],//列表选中列
//编辑界面是否显示
editFormVisible: false,
editLoading: false,
editFormRules: {
departmentName: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
//编辑界面数据
editForm: {
departmentId: '',
departmentName: '',
companyId: ''
},
//设置权限数据
setPermForm: {},
//新增界面是否显示
addFormVisible: false,
//设置权限界面是否显示
PermFormVisible: false,
addLoading: false,
addFormRules: {
departmentName: [
{ required: true, message: '请输入部门名称', trigger: 'blur' }
]
},
//新增界面数据
addForm: {
departmentName: '',
companyId: ''
},
departmentFrom: {
departmentId: 1,
departmentName: '',
departments: []
}
}
},
mounted() {
this.getDepartments();
},
methods: {
handleCurrentChange(val) {
this.pageNum = val;
this.getDepartments();
},
//获取公司列表
getDepartments() {
let para = {
pageNum: this.pageNum,
pageSize: this.pageSize,
departmentName: this.filters.departmentName
};
this.listLoading = true;
//NProgress.start();
getList(para).then((res) => {
this.total = res.data.total;
this.departmentList = res.data.list;
this.listLoading = false;
//NProgress.done();
}).catch((error) => {
this.listLoading = false;
if(null!= error.response && error.response!==undefined){
let status= error.response.status;
let msg = error.response.statusText;
alert(status+msg);
}else {
alert(error);
}
});
},
//删除
handleDel: function (index, row) {
this.$confirm('确认删除该记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { departmentId: row.departmentId };
remove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getDepartments();
}).catch((error) => {
this.listLoading = false;
alert(error);
});
}).catch();
},
/**
* 显示编辑界面
* @param index
* @param row 为这行的数据对象
*/
handleEdit: function (index, row) {
this.editFormVisible = true;
this.editForm = Object.assign({}, row);
},
setPerm: function (index, row) {
var _this = this;
this.departmentIds = [];
this.PermFormVisible = true;
this.departmentFrom = Object.assign({}, row);
let rolePerms = this.departmentFrom.departments;
if (util.checkNull(rolePerms)){
rolePerms.forEach(function (department,v_index,v_arr) {
if(util.checkNull(perm)){
_this.departmentIds[v_index] = department.departmentId;
}
});
}
this.getPermList();
},
//显示新增界面,每次点开初始化数据
departmentAdd: function () {
this.addFormVisible = true;
this.addForm = {
departmentName: '',
companyId: ''
};
},
//新增
addSubmit: function () {
this.$refs.addForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.addLoading = true;
//NProgress.start();
let para = Object.assign({}, this.addForm);
add(para).then((res) => {
this.addLoading = false;
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['addForm'].resetFields();
this.addFormVisible = false;
this.getDepartments();
}).catch(error => alert(error));
});
}
});
},
//编辑
editSubmit: function () {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.editLoading = true;
let para = Object.assign({}, this.editForm);
this.editLoading = false;
edit(para).then((res) => {
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['editForm'].resetFields();
this.editFormVisible = false;
this.getDepartments();
}).catch(error => alert(error));
});
}
});
},
selsChange: function (sels) {
this.sels = sels;
},
//批量删除
batchRemove: function () {
var ids = this.sels.map(item => item.departmentId).toString();
console.log(ids);
this.$confirm('确认删除选中记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = { ids: ids };
batchRemove(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getDepartments();
});
}).catch(() => {
});
}
},
}
</script>
\ No newline at end of file
... ...
... ... @@ -23,7 +23,7 @@
</el-table-column>
<el-table-column prop="permissionId" label="ID" width="100" sortable>
</el-table-column>
<el-table-column prop="permissionName" label="权限名称" min-width="200" sortable>
<el-table-column prop="name" label="权限名称" min-width="200" sortable>
</el-table-column>
<el-table-column prop="description" label="描述" min-width="200" sortable>
</el-table-column>
... ... @@ -74,8 +74,8 @@
<!--新增界面-->
<el-dialog title="新增" v-model="addFormVisible" :close-on-click-modal="false">
<el-form :model="addForm" label-width="80px" :rules="addFormRules" ref="addForm">
<el-form-item label="权限名称" prop="permissionName">
<el-input v-model="addForm.roleName" auto-complete="off" placeholder="请输入权限名称:例如:用户新增权限"></el-input>
<el-form-item label="权限名称" prop="name">
<el-input v-model="addForm.name" auto-complete="off" placeholder="请输入权限名称:例如:用户新增权限"></el-input>
</el-form-item>
<el-form-item label="权限描述" prop="description">
<el-input v-model="addForm.description" auto-complete="off" placeholder="请输入权限描述:例如:用户管理员"></el-input>
... ... @@ -147,8 +147,11 @@
//新增界面数据
addForm: {
description: '',
roleName: '',
roleSign: 1
name: '',
url: '',
path: '',
parent_id: '',
}
}
... ...
... ... @@ -4,7 +4,7 @@
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-form :inline="true" :model="filters">
<el-form-item>
<el-input v-model="filters.roleName" placeholder="角色名称"></el-input>
<el-input v-model="filters.roleName" placeholder="部门名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" v-on:click="getRoles()">查询</el-button>
... ... @@ -23,9 +23,9 @@
</el-table-column>
<el-table-column prop="roleId" label="ID" width="100" sortable>
</el-table-column>
<el-table-column prop="roleName" label="角色名称" min-width="200" sortable>
<el-table-column prop="roleName" label="部门名称" min-width="200" sortable>
</el-table-column>
<el-table-column prop="description" label="角色描述" min-width="200" sortable>
<el-table-column prop="description" label="部门描述" min-width="200" sortable>
</el-table-column>
<el-table-column prop="roleSign" label="排序" width="100" sortable>
</el-table-column>
... ... @@ -139,8 +139,7 @@
roleName: '',
roleSign: 1
},
//设置权限数据
setPermForm: {},
//新增界面是否显示
addFormVisible: false,
//设置权限界面是否显示
... ... @@ -207,8 +206,6 @@
alert(error);
}
});
},
... ...