| | |
| | | @current-change="currentChange" |
| | | @selection-change="selectChange" |
| | | @row-click="rowClickHandler" |
| | | @row-save="rowSaveHandler" |
| | | @row-update="rowUpdateHandler" |
| | | @row-del="rowDelHandler" |
| | | > |
| | | <template slot="status" slot-scope="{row}"> |
| | | <el-tag v-if="row.status === 0" type="success">启用</el-tag> |
| | |
| | | </template> |
| | | |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger">删除</el-button> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">删除</el-button> |
| | | <el-button icon="el-icon-user" plain size="small" type="primary" @click="roleHandler">分配角色</el-button> |
| | | <el-button icon="el-icon-school" plain size="small" type="primary">分配部门</el-button> |
| | | <el-button icon="el-icon-key" plain size="small" type="success">设置密码策略</el-button> |
| | | <el-button icon="el-icon-key" plain size="small" type="success" @click="setPwsHandler">设置密码策略</el-button> |
| | | <el-button icon="el-icon-upload2" plain size="small" type="primary">导入人员</el-button> |
| | | <el-button icon="el-icon-download" plain size="small" type="primary">下载导入模板</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" :transferTitle="transferTitle" title="分配角色" |
| | | @transferSend="roleSendHandler"></transfer> |
| | | <!-- 分配角色穿梭框 --> |
| | | <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" |
| | | :transferTitle="transferTitle" title="分配角色" |
| | | @transferSend="roleSendHandler"> |
| | | </transfer> |
| | | |
| | | <!-- 设置密码策略对话框 --> |
| | | <el-dialog |
| | | v-dialogDrag |
| | | v-loading="pwdLoading" |
| | | :destroy-on-close="true" |
| | | :visible.sync="pwdVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | style="margin-top: -20vh !important;" |
| | | title="设置密码策略" |
| | | width="30%" |
| | | > |
| | | |
| | | <div class="password-strategy-container"> |
| | | <div><i class="el-icon-setting"/>设置密码策略:</div> |
| | | <el-select v-model="pwdValue" placeholder="请选择密码策略"> |
| | | <el-option v-for="(item,index) in pwdList" :key="index" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="pwdVisible = false">取 消</el-button> |
| | | <el-button size="small" type="primary" @click="savePwdHandler">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import basicOption from '@/util/basic-option' |
| | | import {getDataUsers, stopUser, gridRoles, listRoleByUserOid, saveRights, addUser, updateUser, deleteUser} from '@/api/system/user/api' |
| | | import { |
| | | getDataUsers, |
| | | stopUser, |
| | | gridRoles, |
| | | listRoleByUserOid, |
| | | saveRights, |
| | | addUser, |
| | | updateUser, |
| | | deleteUser, |
| | | selectPwdStrategyMap, |
| | | saveUserPasswordStrateg |
| | | } from '@/api/system/user/api' |
| | | import {column} from "./option" |
| | | import func from '@/util/func' |
| | | |
| | |
| | | name: "userManage", |
| | | data() { |
| | | return { |
| | | pwdVisible: false, |
| | | pwdLoading: false, |
| | | pwdValue: '', |
| | | pwdList: [], |
| | | tableLoading: false, |
| | | tableData: [], |
| | | option: { |
| | | ...basicOption, |
| | | dialogWidth: '50%', |
| | | calcHeight: -60, |
| | | column: column |
| | | }, |
| | |
| | | selectList: [], |
| | | leftRoleData: [], // 分配角色穿梭框左侧初始数据 |
| | | rightRoleData: [], // 分配角色穿梭框右侧初始数据 |
| | | transferTitle:['现有角色', '拥有角色'] |
| | | transferTitle: ['现有角色', '拥有角色'] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | // 穿梭框组件回填 |
| | | roleSendHandler(row) { |
| | | let params = { |
| | | userOid: this.selectList[0].oid, |
| | | userOids: this.selectList[0].oid, |
| | | roleIds: row.join(',') |
| | | } |
| | | saveRights(params).then(res => { |
| | |
| | | }).catch(err => { |
| | | this.$message.error(err) |
| | | }) |
| | | }, |
| | | |
| | | // 设置密码策略 |
| | | setPwsHandler() { |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.warning('清先选择人员再进行操作!') |
| | | return; |
| | | } |
| | | this.pwdLoading = false; |
| | | selectPwdStrategyMap().then(res => { |
| | | if (res.data.code === 200) { |
| | | this.pwdList = res.data.data; |
| | | this.pwdValue = res.data.data[0].id; |
| | | console.log(res.data) |
| | | this.pwdVisible = true; |
| | | this.pwdLoading = false; |
| | | } else { |
| | | this.$message.error(res.data.msg); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 保存密码策略 |
| | | savePwdHandler() { |
| | | let params = { |
| | | userIds: this.selectList.map(item => item.oid).join(','), |
| | | passwordStrategId: this.pwdValue |
| | | } |
| | | saveUserPasswordStrateg(params).then(res => { |
| | | this.pwdVisible = false; |
| | | this.$message.success(res.data.obj) |
| | | }).catch(err => { |
| | | this.$message.error(err) |
| | | }) |
| | | }, |
| | | |
| | | // 新增 |
| | | rowSaveHandler(row, done) { |
| | | if (row.password != row.confirmPassword) { |
| | | this.$message.error('请检查两次密码是否输入一致!') |
| | | return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false; |
| | | } |
| | | addUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | } |
| | | }).catch(err => { |
| | | console.log(err); |
| | | }) |
| | | done() |
| | | }, |
| | | |
| | | // 编辑 |
| | | rowUpdateHandler(row, index, done) { |
| | | if (row.password != row.confirmPassword) { |
| | | this.$message.error('请检查两次密码是否输入一致!') |
| | | return this.$refs.userCrud.$refs.dialogForm.$refs.tableForm.allDisabled = false; |
| | | } |
| | | updateUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | } |
| | | }).catch(err => { |
| | | console.log(err); |
| | | }); |
| | | done() |
| | | }, |
| | | |
| | | // 删除 |
| | | rowDelHandler(row) { |
| | | let params = { |
| | | ids: row.oid |
| | | } |
| | | deleteUser(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | } |
| | | }).catch(err => { |
| | | console.log(err); |
| | | }) |
| | | }, |
| | | |
| | | // 多选删除 |
| | | allDelHandler() { |
| | | let params = { |
| | | ids: this.selectList.map(item => item.oid).join(',') |
| | | } |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.warning('请至少选择一条数据进行删除!') |
| | | return; |
| | | } |
| | | this.$confirm('您确定要删除所选择的成员吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteUser(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | .password-strategy-container { |
| | | padding-left: 20px; |
| | | display: flex; |
| | | //justify-content: center; |
| | | align-items: center; |
| | | gap: 10px; |
| | | } |
| | | |
| | | </style> |