Commit 61bb2d1b authored by mzx's avatar mzx

系统管理修改提交

parent bbdd90c7
...@@ -8,3 +8,4 @@ export const getRouters = () => { ...@@ -8,3 +8,4 @@ export const getRouters = () => {
// params: { path: '/zhongtai' } // params: { path: '/zhongtai' }
}) })
} }
import request from '@/utils/request' import request from '@/utils/request'
import { praseStrEmpty } from '@/utils/common' import { praseStrEmpty } from '@/utils/common'
import Qs from 'qs' import Qs from 'qs'
import {error} from "autoprefixer/lib/utils";
import test from "@/views/test/test";
// 查询用户列表 // 查询用户列表
export function listUser(query) { export function listUser(query) {
return request({ return request({
...@@ -40,10 +42,10 @@ export function addUser(data) { ...@@ -40,10 +42,10 @@ export function addUser(data) {
// 修改用户 // 修改用户
export function updateUser(data) { export function updateUser(data) {
const businessId = data.businessId // const businessId = data.businessId
data = Qs.stringify(data) data = Qs.stringify(data)
return request({ return request({
url: '/system/user/update/' + businessId, url: '/system/user/update',
method: 'put', method: 'put',
data: data, data: data,
headers: { headers: {
...@@ -52,6 +54,24 @@ export function updateUser(data) { ...@@ -52,6 +54,24 @@ export function updateUser(data) {
}) })
} }
// let instabce = axios.create({
// timeout: 3000,
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded'
// }
// })
// instabce.interceptors.request.use(
// config => {
// config.data = qs.stringify(config.data)
// return config
// },
// error => Promise.error(error)
// )
// export const getInfo = (data) => {
// return instabce.post(testSystemUrl + '/user/pageList/',data);
// };
// 删除用户 // 删除用户
export function delUser(userId) { export function delUser(userId) {
return request({ return request({
......
...@@ -80,10 +80,11 @@ export default { ...@@ -80,10 +80,11 @@ export default {
'avatar' 'avatar'
]) ])
}, },
methods: {
mounted() { mounted() {
this.getInAdhibitions() this.getInAdhibitions()
}, },
methods: {
handleCommand(param) { handleCommand(param) {
if (param) { if (param) {
window.location.href = param window.location.href = param
......
...@@ -328,7 +328,7 @@ export default { ...@@ -328,7 +328,7 @@ export default {
leader: undefined, leader: undefined,
phone: undefined, phone: undefined,
email: undefined, email: undefined,
flag: '0' flag: '1'
} }
this.resetForm('form') this.resetForm('form')
}, },
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
@click="handleExport" @click="handleExport"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" /> <!-- <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />-->
</el-row> </el-row>
</el-form> </el-form>
<div class="placeholder" /> <div class="placeholder" />
...@@ -181,14 +181,16 @@ ...@@ -181,14 +181,16 @@
<el-input v-model.trim="form.dictType" :maxlength="30" placeholder="请输入字典类型" /> <el-input v-model.trim="form.dictType" :maxlength="30" placeholder="请输入字典类型" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="flag"> <el-form-item label="状态" prop="flag">
<el-radio-group v-model="form.flag"> <el-radio v-model="radio" label="1">启用</el-radio>
<el-radio <el-radio v-model="radio" label="0">停用</el-radio>
v-for="dict in statusOptions" <!-- <el-radio-group v-model="form.flag">-->
:key="dict.dictValue" <!-- <el-radio-->
:label="dict.dictValue" <!-- v-for="dict in statusOptions"-->
>{{ dict.dictLabel }} <!-- :key="dict.dictValue"-->
</el-radio> <!-- :label="dict.dictValue"-->
</el-radio-group> <!-- >{{ dict.dictLabel }}-->
<!-- </el-radio>-->
<!-- </el-radio-group>-->
</el-form-item> </el-form-item>
<el-form-item label="父字典名称"> <el-form-item label="父字典名称">
<el-select v-model="form.parentId" style="width: 100%" clearable placeholder="请选择父字典类型" @change="getOptions"> <el-select v-model="form.parentId" style="width: 100%" clearable placeholder="请选择父字典类型" @change="getOptions">
...@@ -235,7 +237,7 @@ import { listType, ...@@ -235,7 +237,7 @@ import { listType,
updateType, updateType,
exportType, exportType,
clearCache, clearCache,
optionselect, // optionselect,
selectRegionCode, selectRegionCode,
checkDictNameUnique, checkDictNameUnique,
selectDictType selectDictType
...@@ -300,6 +302,11 @@ export default { ...@@ -300,6 +302,11 @@ export default {
} }
} }
return { return {
showSearch: '',
getOptions: '',
statusOptions: '',
//状态默认选择
radio: '1',
test: '', test: '',
options: [], options: [],
optionsDict: [], optionsDict: [],
...@@ -320,7 +327,16 @@ export default { ...@@ -320,7 +327,16 @@ export default {
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
// 状态数据字典 // 状态数据字典
statusOptions: [], // statusOptions: [
// {
// dictLabel: '正常',
// dictValue: '1'
// },
// {
// dictLabel: '停用',
// dictValue: '0'
// }
// ],
// 日期范围 // 日期范围
dateRange: [], dateRange: [],
// 查询参数 // 查询参数
...@@ -373,9 +389,9 @@ export default { ...@@ -373,9 +389,9 @@ export default {
this.getDicts(dictCons['NORMAL_DISABLE']).then(response => { this.getDicts(dictCons['NORMAL_DISABLE']).then(response => {
this.statusOptions = response.data this.statusOptions = response.data
}) })
optionselect().then(response => { // optionselect().then(response => {
this.options = response.data // this.options = response.data
}) // })
}, },
methods: { methods: {
/** 查询字典类型列表 */ /** 查询字典类型列表 */
......
...@@ -197,14 +197,14 @@ ...@@ -197,14 +197,14 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" style="margin-right: -1px"> <!-- <el-col :span="12" style="margin-right: -1px">-->
<el-form-item v-if="form.menuType !== 'F'" label="是工作流"> <!-- <el-form-item v-if="form.menuType !== 'F'" label="是工作流">-->
<el-radio-group v-model="form.isProcess"> <!-- <el-radio-group v-model="form.isProcess">-->
<el-radio label="0"></el-radio> <!-- <el-radio label="0">是</el-radio>-->
<el-radio label="1"></el-radio> <!-- <el-radio label="1">否</el-radio>-->
</el-radio-group> <!-- </el-radio-group>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.menuType !== 'F'" label="显示状态"> <el-form-item v-if="form.menuType !== 'F'" label="显示状态">
<el-radio-group v-model="form.visible"> <el-radio-group v-model="form.visible">
...@@ -218,6 +218,7 @@ ...@@ -218,6 +218,7 @@
<el-radio-group v-model="form.flag"> <el-radio-group v-model="form.flag">
<el-radio label="1">启用</el-radio> <el-radio label="1">启用</el-radio>
<el-radio label="0">停用</el-radio> <el-radio label="0">停用</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -290,11 +291,11 @@ export default { ...@@ -290,11 +291,11 @@ export default {
statusOptions: [ statusOptions: [
{ {
dictLabel: '正常', dictLabel: '正常',
dictValue: '0' dictValue: '1'
}, },
{ {
dictLabel: '停用', dictLabel: '停用',
dictValue: '1' dictValue: '0'
} }
], ],
// 查询参数 // 查询参数
...@@ -304,7 +305,8 @@ export default { ...@@ -304,7 +305,8 @@ export default {
}, },
// 表单参数 // 表单参数
form: { form: {
parentId: 0 parentId: 0,
visible: '1'
}, },
// 表单校验 // 表单校验
rules: { rules: {
...@@ -447,9 +449,9 @@ export default { ...@@ -447,9 +449,9 @@ export default {
menuType: 'M', menuType: 'M',
orderNum: undefined, orderNum: undefined,
isFrame: '1', isFrame: '1',
visible: '0', visible: '1',
isProcess: '1', isProcess: '1',
flag: '0' flag: '1'
} }
this.resetForm('form') this.resetForm('form')
}, },
......
...@@ -188,28 +188,48 @@ ...@@ -188,28 +188,48 @@
<el-form-item label="角色名称"> <el-form-item label="角色名称">
<el-input v-model.trim="form.roleName" placeholder="请输入角色名称" show-word-limit :maxlength="30" :disabled="true" /> <el-input v-model.trim="form.roleName" placeholder="请输入角色名称" show-word-limit :maxlength="30" :disabled="true" />
</el-form-item> </el-form-item>
<el-table <!-- <el-table-->
v-loading="loading" <!-- v-loading="loading"-->
:data="menuList" <!-- :data="menuList"-->
row-key="businessId" <!-- row-key="businessId"-->
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" <!-- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"-->
max-height="400px" <!-- max-height="400px"-->
<!-- >-->
<!-- <el-form-item label="权限字符">-->
<!-- <el-input v-model.trim="form.roleKey" placeholder="请输入角色名称" show-word-limit :maxlength="30" :disabled="true" />-->
<!-- </el-form-item>-->
<el-form-item label="菜单权限">
<el-tree
ref="menu2"
class="tree-border"
:data="menuOptions"
:show-checkbox="false"
node-key="id"
empty-text="加载中,请稍后"
:props="{defaultProps, disabled: () => true}"
:default-checked-keys="[]"
:current-node-key="toString()"
:expand-on-click-node="false"
:check-strictly="false"
:filter-node-method="filterNodeMethod"
@node-click="nodeClick"
> >
<!-- <el-form-item label="权限字符">--> </el-tree>
<!-- <el-input v-model.trim="form.roleKey" placeholder="请输入角色名称" show-word-limit :maxlength="30" :disabled="true" />--> </el-form-item>
<!-- </el-form-item>--> <!-- :default-expand-all="true"-->
<el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160" /> <!-- <el-table-column prop="" label="菜单名称" :show-overflow-tooltip="true" width="160" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
icon="el-icon-circle-check" <!-- icon="el-icon-circle-check"-->
@click="handleDataScope(scope.row)" <!-- @click="handleDataScope(scope.row)"-->
>修改</el-button> <!-- >修改</el-button>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
</el-table> <!-- </el-table>-->
</el-form> </el-form>
</el-col> </el-col>
<el-col style="width: 1%"> <el-col style="width: 1%">
...@@ -219,11 +239,11 @@ ...@@ -219,11 +239,11 @@
</el-col> </el-col>
<el-col style="width: 49%"> <el-col style="width: 49%">
<el-form :model="form" label-width="80px"> <el-form :model="form" label-width="80px">
<el-form-item label="菜单名称" prop="roleName"> <el-form-item label="菜单名称" prop="menuId" >
<el-input v-model="form.menuName" placeholder="未选择菜单名称" disabled /> <el-input v-model="form.menuId" placeholder="未选择菜单名称" disabled/>
</el-form-item> </el-form-item>
<el-form-item label="权限范围"> <el-form-item label="权限范围">
<el-select v-model="form.dataScope"> <el-select v-model="form.dataScope" >
<el-option <el-option
v-for="item in dataScopeOptions" v-for="item in dataScopeOptions"
:key="item.value" :key="item.value"
...@@ -263,11 +283,15 @@ ...@@ -263,11 +283,15 @@
import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from '@/api/system/role' import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from '@/api/system/role'
import { roleMenuTreeselectMC, treeselect as menuTreeselect, roleMenuTreeselect } from '@/api/system/menu' import { roleMenuTreeselectMC, treeselect as menuTreeselect, roleMenuTreeselect } from '@/api/system/menu'
import { treeselect as deptTreeselect, roleDeptTreeselect } from '@/api/system/dept' import { treeselect as deptTreeselect, roleDeptTreeselect } from '@/api/system/dept'
import {getMenuList} from '@/api/instance-payApply'
import {error} from "autoprefixer/lib/utils";
// import { getRolesByInsId } from '../../../api/businessManage/template' // import { getRolesByInsId } from '../../../api/businessManage/template'
export default { export default {
name: 'Role', name: 'Role',
data() { data() {
return { return {
data: [],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -341,7 +365,12 @@ export default { ...@@ -341,7 +365,12 @@ export default {
flag: undefined flag: undefined
}, },
// 表单参数 // 表单参数
form: {}, form: {
menuId: '',
deptCheckStrictly: '',
deptIds: '',
businessId: ''
},
defaultProps: { defaultProps: {
children: 'children', children: 'children',
label: 'label' label: 'label'
...@@ -382,7 +411,29 @@ export default { ...@@ -382,7 +411,29 @@ export default {
// this.statusOptions = response.data; // this.statusOptions = response.data;
// }); // });
}, },
// watch: {
// menuOptions() {
// this.menuOptions.forEach(item => {
// this.defaultExpandedKey.push(item.id)
// })
// this.$forceUpdate()
// }
// },
methods: { methods: {
nodeClick(data) {
console.log(data)
this.form.menuId = data.label
this.$forceUpdate()
},
// // 显示组件树选中节点
filterNodeMethod(value, data, node) {
if (node.checked === true) {
return true
} else {
return false
}
},
/** 查询角色列表 */ /** 查询角色列表 */
getList() { getList() {
this.loading = true this.loading = true
...@@ -398,6 +449,9 @@ export default { ...@@ -398,6 +449,9 @@ export default {
getMenuTreeselect() { getMenuTreeselect() {
menuTreeselect().then(response => { menuTreeselect().then(response => {
this.menuOptions = response.data this.menuOptions = response.data
console.log(
this.menuOptions, 'this.menuOptions'
)
}) })
}, },
/** 查询菜单列表 */ /** 查询菜单列表 */
...@@ -490,7 +544,7 @@ export default { ...@@ -490,7 +544,7 @@ export default {
roleName: undefined, roleName: undefined,
roleKey: undefined, roleKey: undefined,
roleSort: 0, roleSort: 0,
flag: undefined, flag: '1',
menuIds: [], menuIds: [],
menuName: undefined, menuName: undefined,
deptIds: [], deptIds: [],
...@@ -575,8 +629,14 @@ export default { ...@@ -575,8 +629,14 @@ export default {
handleMenu(row) { handleMenu(row) {
this.reset() this.reset()
const roleId = row.businessId || this.ids const roleId = row.businessId || this.ids
this.getMenuList(roleId) // 查询菜单列表树形显示 console.log('row', row)
// this.getMenuList(roleId) // 查询菜单列表树形显示
getRole(roleId).then(response => { getRole(roleId).then(response => {
this.getRoleMenuTreeselect(roleId).then(res => { //
this.$refs.menu2.setCheckedKeys(res.data.checkedKeys)//
this.$refs.menu2.setChecked(res.data.checked)//
this.$refs.menu2.filter([])//
})
this.form = response.data this.form = response.data
this.openDataScope = true this.openDataScope = true
this.title = '分配数据权限' this.title = '分配数据权限'
...@@ -589,6 +649,10 @@ export default { ...@@ -589,6 +649,10 @@ export default {
const roleId = this.form.businessId const roleId = this.form.businessId
this.form.menuId = row.businessId this.form.menuId = row.businessId
this.form.menuName = row.menuName this.form.menuName = row.menuName
// this.form.businessId = row.businessId
// this.form.deptCheckStrictly = false
// this.form.deptIds = row.deptIds
const roleDeptTreeselect = this.getRoleDeptTreeselect(roleId, this.form.menuId) const roleDeptTreeselect = this.getRoleDeptTreeselect(roleId, this.form.menuId)
this.$nextTick(() => { this.$nextTick(() => {
roleDeptTreeselect.then(res => { roleDeptTreeselect.then(res => {
...@@ -621,6 +685,7 @@ export default { ...@@ -621,6 +685,7 @@ export default {
}, },
/** 提交按钮(数据权限) */ /** 提交按钮(数据权限) */
submitDataScope: function() { submitDataScope: function() {
if (this.form.businessId !== undefined && this.form.menuId !== undefined) { if (this.form.businessId !== undefined && this.form.menuId !== undefined) {
this.form.deptIds = this.getDeptAllCheckedKeys() this.form.deptIds = this.getDeptAllCheckedKeys()
dataScope(this.form).then(response => { dataScope(this.form).then(response => {
...@@ -628,6 +693,8 @@ export default { ...@@ -628,6 +693,8 @@ export default {
this.openDataScope = false this.openDataScope = false
this.getList() this.getList()
}) })
console.log('form', this.form)
// console.log('tree', this.deptOptions)
} }
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
......
...@@ -118,21 +118,31 @@ ...@@ -118,21 +118,31 @@
:data="userList" :data="userList"
> >
<el-table-column type="index" label="序号" width="50" /> <el-table-column type="index" label="序号" width="50" />
<el-table-column
label="用户编号"
>
<template v-slot:default="scope">
{{ scope.row.businessId || '-' }}
</template>
</el-table-column>
<el-table-column label="登录名" prop="username" :show-overflow-tooltip="true"> <el-table-column label="登录名" prop="username" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.username || '-' }} {{ scope.row.username || '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="用户类型" prop="userType" :show-overflow-tooltip="true"> <el-table-column label="身份证号" prop="idNumber" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.name || '-' }} {{ scope.row.idNumber || '-' }}
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="用户编号"-->
<!-- >-->
<!-- <template v-slot:default="scope">-->
<!-- {{ scope.row.businessId || '-' }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.nickName || '-' }}
</template>
</el-table-column>
<el-table-column label="用户性别" prop="sex" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.sex === '0' ? '男' : scope.row.sex === '1' ? '女' : '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="手机号" prop="phone" :show-overflow-tooltip="true"> <el-table-column label="手机号" prop="phone" :show-overflow-tooltip="true">
...@@ -140,6 +150,22 @@ ...@@ -140,6 +150,22 @@
{{ scope.row.phone || '-' }} {{ scope.row.phone || '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.email || '-' }}
</template>
</el-table-column>
<el-table-column label="用户类型" prop="name" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.name || '-' }}
</template>
</el-table-column>
<!-- <el-table-column label="角色" prop="roleList" :show-overflow-tooltip="true">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.roleList || '-' }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column width="120" label="状态" prop="flag"> <el-table-column width="120" label="状态" prop="flag">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
...@@ -199,6 +225,23 @@ ...@@ -199,6 +225,23 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="登录名" prop="username">
<el-input v-model="form.username" placeholder="请输入登录名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idNumber">
<el-input v-model.trim="form.idNumber" placeholder="请输入身份证号" maxlength="18" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item v-if="form.businessId == undefined" label="用户密码" prop="password">-->
<!-- <el-input v-model="form.password" placeholder="请输入用户密码" type="password" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">
...@@ -206,7 +249,7 @@ ...@@ -206,7 +249,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户性别"> <el-form-item label="用户性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择"> <el-select v-model="form.sex" placeholder="请选择">
<el-option <el-option
v-for="dict in sexOptions" v-for="dict in sexOptions"
...@@ -235,33 +278,50 @@ ...@@ -235,33 +278,50 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.businessId == undefined" label="登录名" prop="username"> <el-form-item label="用户类型" prop="name" required>
<el-input v-model="form.username" placeholder="请输入登录名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.businessId == undefined" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户类型" prop="name">
<el-input v-model.trim="form.name" placeholder="请输入用户类型" /> <el-input v-model.trim="form.name" placeholder="请输入用户类型" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="idNumber"> <el-form-item class="labelHeight" label="角色" prop="roleList">
<el-input v-model.trim="form.idNumber" placeholder="请输入身份证号" maxlength="18" /> <el-select v-model="form.roleList" style="width: 100%" multiple placeholder="请选择角色">
<el-option
v-for="(item,index) in roleOptions"
:key="index"
:label="item.roleName"
:value="item.businessId"
/>
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="角色">-->
<!-- <el-select v-model="form.roleList" style="width: 100%" multiple placeholder="请选择角色">-->
<!-- <el-option-->
<!-- v-for="(item,index) in roleOptions"-->
<!-- :key="index"-->
<!-- :label="item.roleName"-->
<!-- :value="item.businessId"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-col> </el-col>
<!-- <el-radio-group v-model="form.flag">-->
<!-- <el-radio-->
<!-- v-for="dict in statusOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictValue"-->
<!-- >{{ dict.dictLabel }}</el-radio>-->
<!-- </el-radio-group>-->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.businessId == undefined" label="状态"> <!-- <el-form-item label="状态" >-->
<!-- <el-radio v-model="radio" label="1">启用</el-radio>-->
<!-- <el-radio v-model="radio" label="2">停用</el-radio>-->
<!-- </el-form-item>-->
<el-form-item label="状态">
<el-radio-group v-model="form.flag"> <el-radio-group v-model="form.flag">
<el-radio <el-radio
v-for="dict in statusOptions" v-for="dict in statusOptions"
...@@ -274,7 +334,7 @@ ...@@ -274,7 +334,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item class="labelHeight" label="部门" prop="parentId"> <el-form-item class="labelHeight" label="部门" prop="deptId">
<treeSelect <treeSelect
v-model="form.deptId" v-model="form.deptId"
:disable-branch-nodes="false" :disable-branch-nodes="false"
...@@ -297,7 +357,7 @@ ...@@ -297,7 +357,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm" :loading="priLoading">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
...@@ -385,6 +445,7 @@ import { ...@@ -385,6 +445,7 @@ import {
// userLoginManage // userLoginManage
} from '@/api/system/user' } from '@/api/system/user'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { listRole } from '@/api/system/role'
import { getChildrenDept, treeselect } from '@/api/system/dept' import { getChildrenDept, treeselect } from '@/api/system/dept'
import TreeSelect from '@riophae/vue-treeselect' import TreeSelect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
...@@ -428,6 +489,7 @@ export default { ...@@ -428,6 +489,7 @@ export default {
} }
} }
return { return {
ruleOptions: [],
pwdTypeMap: { pwdTypeMap: {
text: true, text: true,
password: false password: false
...@@ -462,6 +524,11 @@ export default { ...@@ -462,6 +524,11 @@ export default {
// 部门名称 // 部门名称
deptName: undefined, deptName: undefined,
importLoading: false, importLoading: false,
userInfoLoading: false,
userImportLoading: false,
userRestLoading: false,
addLoading: false,
priLoading: false,
// // 时间范围 // // 时间范围
// dateRange: ['', ''], // dateRange: ['', ''],
// 状态数据字典 // 状态数据字典
...@@ -488,16 +555,60 @@ export default { ...@@ -488,16 +555,60 @@ export default {
deptChildren: [], deptChildren: [],
// 表单参数 // 表单参数
form: { form: {
// roleList: [],
// nltStartDate: '',
// nltPosition: '',
// nltLw: '',
// nltBz: '',
// remarks: '',
// contract: '',
// username: '',
// phone: '',
// email: '',
// idNumber: '',
// flag: '',
// name: '',
// sex: ''
businessId: '',
username: '', username: '',
phone: '', password: '',
nickName: '',
userType: '',
name: '',
email: '', email: '',
phone: '',
sex: '',
idNumber: '', idNumber: '',
name: '' loginIp: '',
loginDate: '',
delFlag: '',
remarks: '',
avatar: '',
flag: '',
createDate: '',
beginTime: '',
endTime: '',
identity: '',
wxOpenid: '',
address: '',
nltBz: '',
nltLw: '',
nltPosition: '',
nltStartDate: '',
deptId: '',
deptName: '',
roleNames: '',
roleIds: '',
contract: '',
roleList: []
}, },
defaultProps: { defaultProps: {
children: 'children', children: 'children',
label: 'label' label: 'label'
}, },
ruleForm: { ruleForm: {
newPassword: '', newPassword: '',
row: undefined row: undefined
...@@ -534,6 +645,9 @@ export default { ...@@ -534,6 +645,9 @@ export default {
}, },
// 表单校验 // 表单校验
rules: { rules: {
roleList: [
{ required: true, message: '请选择角色', trigger: 'blur' }
],
username: [ username: [
{ required: true, message: '请输入登录名', trigger: 'blur' } { required: true, message: '请输入登录名', trigger: 'blur' }
], ],
...@@ -542,7 +656,10 @@ export default { ...@@ -542,7 +656,10 @@ export default {
{ validator: trueGroupName, message: '请输入正确的用户昵称' } { validator: trueGroupName, message: '请输入正确的用户昵称' }
], ],
deptId: [ deptId: [
{ required: false, message: '请输入归属部门', trigger: 'blur' } { required: true, message: '请选择归属部门', trigger: 'blur' }
],
sex: [
{ required: true, message: '请选择用户性别', trigger: 'blur' }
], ],
password: [ password: [
{ required: true, message: '请输入用户密码', trigger: 'blur' }, { required: true, message: '请输入用户密码', trigger: 'blur' },
...@@ -553,7 +670,7 @@ export default { ...@@ -553,7 +670,7 @@ export default {
} }
], ],
name: [ name: [
{ require: true, message: '用户姓名不能为空', trigger: 'blur' }, { require: true, message: '请输入用户类型', trigger: 'blur' },
{ validator: name, trigger: 'blur' } { validator: name, trigger: 'blur' }
], ],
email: [ email: [
...@@ -568,26 +685,24 @@ export default { ...@@ -568,26 +685,24 @@ export default {
{ required: true, message: '请输入密码', trigger: 'blur' }, { required: true, message: '请输入密码', trigger: 'blur' },
{ min: 8, max: 16, message: '长度在 8 到 16 个字符', trigger: 'blur' }, { min: 8, max: 16, message: '长度在 8 到 16 个字符', trigger: 'blur' },
{ validator: passwordCheck, trigger: 'blur' } { validator: passwordCheck, trigger: 'blur' }
],
phone: [
{ required: false, message: '请输入手机号码', trigger: 'blur' },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
},
{ validator: phone, trigger: 'blur' }
],
idNumber: [
{ require: true, message: '请输入身份证号', trigger: 'blur' },
{ min: 18, max: 18, message: '长度18字符', trigger: 'blur' },
{ validator: idNumber, trigger: 'blur' }
] ]
// phone: [
// { required: false, message: '请输入手机号码', trigger: 'blur' },
// {
// pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
// message: '请输入正确的手机号码',
// trigger: 'blur'
// },
// { validator: phone, trigger: 'blur' }
// ],
// idNumber: [
// { require: true, message: '请输入身份证号', trigger: 'blur' },
// { min: 18, max: 18, message: '长度18字符', trigger: 'blur' },
// { validator: idNumber, trigger: 'blur' }
// ]
}, },
userInfoLoading: false,
userImportLoading: false,
userRestLoading: false,
addLoading: false
} }
}, },
/** 路由离开前存储筛选条件*/ /** 路由离开前存储筛选条件*/
...@@ -614,8 +729,16 @@ export default { ...@@ -614,8 +729,16 @@ export default {
} }
this.getList() this.getList()
this.getTreeSelect() this.getTreeSelect()
this.getRoleList()
}, },
methods: { methods: {
// 获取角色列表
getRoleList() {
listRole().then(res => {
this.roleOptions = res.rows
})
// new Promise()
},
changeValue() { changeValue() {
this.$refs.form.validateField('id') this.$refs.form.validateField('id')
}, },
...@@ -691,20 +814,68 @@ export default { ...@@ -691,20 +814,68 @@ export default {
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
userId: undefined, // roleList: [],
deptId: undefined, // nltStartDate: undefined,
phone: undefined, // nltPosition: undefined,
// nltLw: undefined,
// nltBz: undefined,
// remarks: undefined,
// contract: undefined,
// username: undefined,
// phone: undefined,
// email: undefined,
// idNumber: undefined,
// flag: '1',
// name: undefined,
// sex: undefined,
businessId: undefined,
username: undefined, username: undefined,
userType: undefined,
nickName: undefined,
password: undefined, password: undefined,
idNumber: undefined, nickName: undefined,
userType: undefined,
name: undefined,
email: undefined, email: undefined,
sex: undefined, phone: undefined,
flag: undefined, sex: '0',
remark: undefined, idNumber: undefined,
postIds: [], loginIp: undefined,
roleIds: [] loginDate: undefined,
delFlag: undefined,
remarks: undefined,
avatar: undefined,
flag: '1',
createDate: undefined,
beginTime: undefined,
endTime: undefined,
identity: undefined,
wxOpenid: undefined,
address: undefined,
nltBz: undefined,
nltLw: undefined,
nltPosition: undefined,
nltStartDate: undefined,
deptId: undefined,
deptName: undefined,
roleNames: undefined,
roleIds: undefined,
contract: undefined,
roleList: []
// userId: undefined,
// deptId: undefined,
// phone: undefined,
// username: undefined,
// userType: undefined,
// nickName: undefined,
// password: undefined,
// idNumber: undefined,
// email: undefined,
// sex: undefined,
// flag: undefined,
// remark: undefined,
// postIds: [],
// roleIds: []
} }
this.resetForm('form') this.resetForm('form')
}, },
...@@ -746,6 +917,12 @@ export default { ...@@ -746,6 +917,12 @@ export default {
getUser(userId).then(response => { getUser(userId).then(response => {
this.open = true this.open = true
this.form = response.data this.form = response.data
if (response.data.roleIds !== null) {
this.$set(this.form, 'roleList', response.data.roleIds.split(',').map(num => { return Number(num) }))
}
console.log('详情', this.form)
this.title = '修改' this.title = '修改'
}) })
// this.getChildrenDept(userId) // this.getChildrenDept(userId)
...@@ -790,6 +967,41 @@ export default { ...@@ -790,6 +967,41 @@ export default {
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
if (this.form.businessId !== undefined) { if (this.form.businessId !== undefined) {
console.log('form', this.form)
// const aaa = {
// businessId: 471,
// username: 66,
// password: '$2a$10$WSAfytKED2BHjThH3TSG6u/mHuXUXVpcmqdw/BYvajBeY0nnWSoSO',
// nickName: '',
// userType: 1,
// name: 66,
// email: '',
// phone: '',
// sex: 0,
// idNumber: '',
// loginIp: '',
// loginDate: '',
// delFlag: 0,
// remarks: '',
// avatar: '',
// flag: 1,
// createDate: '2022-06-02 14:27:15',
// beginTime: '',
// endTime: '',
// identity: '',
// wxOpenid: '',
// address: '',
// nltBz: 6,
// nltLw: 6,
// nltPosition: 66,
// nltStartDate: '2022-06-06',
// deptId: 101,
// deptName: '诺兰特移动通信配件(北京)有限公司',
// roleNames: '',
// roleIds: '',
// contract: '',
// roleList: [156]
// }
updateUser(this.form).then(response => { updateUser(this.form).then(response => {
this.$message({ this.$message({
message: '修改成功', message: '修改成功',
...@@ -799,6 +1011,7 @@ export default { ...@@ -799,6 +1011,7 @@ export default {
this.getList() this.getList()
}) })
} else { } else {
console.log('xxxxx', this.form)
addUser(this.form).then(response => { addUser(this.form).then(response => {
this.$message({ this.$message({
message: '新增成功', type: 'success' message: '新增成功', type: 'success'
...@@ -973,4 +1186,8 @@ export default { ...@@ -973,4 +1186,8 @@ export default {
margin-left: 0!important; margin-left: 0!important;
} }
} }
.el-form-item__label {
width: 80px;
height: 32px;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment