| | |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="sizes[1]"> |
| | | <basic-container> |
| | | <basic-container |
| | | :class="[ |
| | | $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :search.sync="search" |
| | |
| | | <el-tag>{{ row.roleName }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="deptName"> |
| | | <el-tag>{{ row.deptName }}</el-tag> |
| | | <el-tag>{{ row.deptName.split(",").join(" ,") }}</el-tag> |
| | | </template> |
| | | <template slot-scope="{ row }" slot="userTypeName"> |
| | | <el-tag>{{ row.userTypeName }}</el-tag> |
| | |
| | | getUserPlatform, |
| | | remove, |
| | | update, |
| | | updateUser, |
| | | updatePlatform, |
| | | add, |
| | | grant, |
| | | resetPassword, |
| | | getJurisdiction, |
| | | } from "@/api/system/user"; |
| | | import { getDeptTree, getDeptLazyTree } from "@/api/system/dept"; |
| | | import { getSecurityDeptTree, getDeptLazyTree } from "@/api/system/dept"; |
| | | import { getRoleTree } from "@/api/system/role"; |
| | | import { getPostList } from "@/api/system/post"; |
| | | import { mapGetters } from "vuex"; |
| | |
| | | callback(); |
| | | } |
| | | }; |
| | | |
| | | return { |
| | | isguanli: true, |
| | | |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | platformPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | init: { |
| | | roleTree: [], |
| | |
| | | treeData: [], |
| | | treeOption: { |
| | | nodeKey: "id", |
| | | lazy: true, |
| | | treeLoad: function (node, resolve) { |
| | | const parentId = node.level === 0 ? 0 : node.data.id; |
| | | getDeptLazyTree(parentId).then((res) => { |
| | | resolve( |
| | | res.data.data.map((item) => { |
| | | return { |
| | | ...item, |
| | | leaf: !item.hasChildren, |
| | | }; |
| | | }) |
| | | ); |
| | | }); |
| | | }, |
| | | defaultExpandedKeys: [], |
| | | // defaultExpandAll:true, |
| | | // lazy: false, |
| | | // treeLoad: "", //处理权限 在created中 |
| | | // function (node, resolve) { |
| | | // const parentId = node.level === 0 ? 0 : node.data.id; |
| | | // //公安局进入 |
| | | |
| | | // getDeptLazyTree(parentId, jurisdiction).then((res) => { |
| | | // resolve( |
| | | // res.data.data.map((item) => { |
| | | // return { |
| | | // ...item, |
| | | // leaf: !item.hasChildren, |
| | | // }; |
| | | // }) |
| | | // ); |
| | | // }); |
| | | // }, |
| | | addBtn: false, |
| | | menu: false, |
| | | size: "small", |
| | |
| | | children: "children", |
| | | }, |
| | | }, |
| | | // treeOption:{ |
| | | // nodeKey: "id", |
| | | // defaultExpandAll:true, |
| | | // addBtn: false, |
| | | // menu: false, |
| | | // size: "small", |
| | | // formOption:{ |
| | | // labelWidth:100, |
| | | // column:[{ |
| | | // label:'自定义项', |
| | | // prop:'test' |
| | | // }], |
| | | // }, |
| | | // props:{ |
| | | // labelText:'标题', |
| | | // label:'label', |
| | | // value:'value', |
| | | // children:'children' |
| | | // } |
| | | // }, |
| | | option: { |
| | | height: "auto", |
| | | calcHeight: 80, |
| | |
| | | viewBtn: true, |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | search: true, |
| | | width: 190, |
| | | display: false, |
| | | }, |
| | | { |
| | |
| | | width: 130, |
| | | display: false, |
| | | }, |
| | | // { |
| | | // label: "所属部门", |
| | | // prop: "deptName", |
| | | // slot: true, |
| | | // display: false |
| | | // }, |
| | | // { |
| | | // label: "用户平台", |
| | | // prop: "userTypeName", |
| | | // addDisplay:false, |
| | | // viewDisplay:false, |
| | | // editDisplay:false, |
| | | // slot: true, |
| | | // display: false |
| | | // }, |
| | | // { |
| | | // label: "用户平台", |
| | | // type: "select", |
| | | // dicUrl: "/api/blade-system/dict/dictionary?code=user_type", |
| | | // props: { |
| | | // label: "dictValue", |
| | | // value: "dictKey" |
| | | // }, |
| | | // dataType: "number", |
| | | // search: true, |
| | | // hide: true, |
| | | // addDisplay:false, |
| | | // viewDisplay:false, |
| | | // editDisplay:false, |
| | | // display: false, |
| | | // prop: "userType", |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请选择用户平台", |
| | | // trigger: "blur" |
| | | // }] |
| | | // }, |
| | | ], |
| | | group: [ |
| | | { |
| | |
| | | label: "所属组织机构", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/dept/lazy-tree", |
| | | defaultExpandAll: true, |
| | | // dicUrl: "/api/blade-system/dept/lazy-tree", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | hide: !website.tenantMode, |
| | | addDisplay: website.tenantMode, |
| | | editDisplay: website.tenantMode, |
| | | viewDisplay: website.tenantMode, |
| | | dicData: [], |
| | | // hide: !website.tenantMode, |
| | | // addDisplay: website.tenantMode, |
| | | // editDisplay: website.tenantMode, |
| | | // viewDisplay: website.tenantMode, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | span: 24, |
| | | span: 12, |
| | | }, |
| | | { |
| | | label: "登录账号", |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "用户平台", |
| | | // type: "select", |
| | | // dicUrl: "/api/blade-system/dict/dictionary?code=user_type", |
| | | // props: { |
| | | // label: "dictValue", |
| | | // value: "dictKey" |
| | | // }, |
| | | // dataType: "number", |
| | | // slot: true, |
| | | // prop: "userType", |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请选择用户平台", |
| | | // trigger: "blur" |
| | | // }] |
| | | // }, |
| | | { |
| | | label: "密码", |
| | | prop: "password", |
| | |
| | | hide: true, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | span: 12, |
| | | rules: [ |
| | | { required: true, validator: validatePass, trigger: "blur" }, |
| | | ], |
| | |
| | | prop: "password2", |
| | | type: "password", |
| | | hide: true, |
| | | span: 12, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | rules: [ |
| | |
| | | icon: "el-icon-s-order", |
| | | column: [ |
| | | { |
| | | label: "用户昵称", |
| | | prop: "name", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入用户昵称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "用户姓名", |
| | | prop: "realName", |
| | | rules: [ |
| | |
| | | message: "姓名长度在2到5个字符", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | hide: true, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [ |
| | | { |
| | | label: "男", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2, |
| | | }, |
| | | // { |
| | | // label: "未知", |
| | | // value: 3, |
| | | // }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择性别", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "用户生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | format: "yyyy-MM-dd hh:mm:ss", |
| | | valueFormat: "yyyy-MM-dd hh:mm:ss", |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "账号状态", |
| | | prop: "statusName", |
| | | hide: true, |
| | | display: false, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "职责信息", |
| | | labelWidth: "110", |
| | | prop: "dutyInfo", |
| | | icon: "el-icon-s-custom", |
| | | column: [ |
| | | { |
| | | label: "用户编号", |
| | | prop: "code", |
| | | }, |
| | | { |
| | | label: "所属角色", |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "所属部门", |
| | | // prop: "deptId", |
| | | // type: "tree", |
| | | // multiple: true, |
| | | // dicData: [], |
| | | // props: { |
| | | // label: "title" |
| | | // }, |
| | | // checkStrictly: true, |
| | | // slot: true, |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请选择所属部门", |
| | | // trigger: "click" |
| | | // }] |
| | | // }, |
| | | { |
| | | label: "所属岗位", |
| | | prop: "postId", |
| | | type: "tree", |
| | | multiple: true, |
| | | dicData: [], |
| | | props: { |
| | | label: "postName", |
| | | value: "id", |
| | | }, |
| | | // rules: [{ |
| | | // required: true, |
| | | // message: "请选择所属岗位", |
| | | // trigger: "click" |
| | | // }], |
| | | label: "警号", |
| | | prop: "code", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入警号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "身份证号码", |
| | | prop: "cardid", |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入身份证号码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "用户性别", |
| | | prop: "sex", |
| | | type: "select", |
| | | dicData: [ |
| | | { |
| | | label: "男", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "女", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | hide: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择性别", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | watch: { |
| | | "form.tenantId"() { |
| | | if (this.form.tenantId !== "" && this.initFlag) { |
| | | this.initData(this.form.tenantId); |
| | | this.initData(this.form.tenantId, this.userInfo.role_name); |
| | | } |
| | | }, |
| | | "form.deptId"() { |
| | | this.initData(this.form.tenantId); |
| | | this.initData(this.form.tenantId, this.userInfo.role_name); |
| | | }, |
| | | "excelForm.isCovered"() { |
| | | if (this.excelForm.isCovered !== "") { |
| | |
| | | }, |
| | | }, |
| | | created() { |
| | | console.log(this.userInfo.role_name); |
| | | if (this.userInfo.role_name == "保安公司管理员") { |
| | | // console.log(this.userInfo.role_name); |
| | | if ( |
| | | this.userInfo.role_name == "保安公司管理员" || |
| | | this.userInfo.role_name == "分公司管理员" |
| | | ) { |
| | | this.deptids = this.userInfo.dept_id; |
| | | this.sizes = [0, 24]; |
| | | this.isguanli = false; |
| | | // this.option.group[2].value = this.userInfo.Id; |
| | | this.option.group[0].column[0]["value"] = this.userInfo.dept_id; |
| | | // this.option.group[0].column[0]["disabled"] = true; |
| | | // this.option.group[2].column[1]["disabled"] = true; |
| | | } else { |
| | | this.deptids = null; |
| | | this.sizes = [5, 19]; |
| | | } |
| | | |
| | | var that = this; |
| | | //公安局进入 |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | var parentId = this.userInfo.dept_id; |
| | | var userId = this.userInfo.Id; |
| | | getDeptLazyTree(parentId, userId).then((res) => { |
| | | that.treeData = res.data.data; |
| | | that.treeOption.defaultExpandedKeys = []; |
| | | res.data.data.forEach((item) => { |
| | | that.treeOption.defaultExpandedKeys.push(item.id); |
| | | }); |
| | | }); |
| | | } else { |
| | | // this.treeOption.treeLoad = function (node, resolve) { |
| | | // const parentId = node.level === 0 ? 0 : node.data.id; |
| | | // getDeptLazyTree(parentId).then((res) => { |
| | | // resolve( |
| | | // res.data.data.map((item) => { |
| | | // return { |
| | | // ...item, |
| | | // leaf: !item.hasChildren, |
| | | // }; |
| | | // }) |
| | | // ); |
| | | // }); |
| | | // }; |
| | | getDeptLazyTree(0).then((res) => { |
| | | that.treeData = res.data.data; |
| | | }); |
| | | // var parentId1 = this.userInfo.dept_id; |
| | | // getSecurityDeptTree(null,null,this.userInfo.dept_id).then((res) => { |
| | | // that.treeData = res.data.data; |
| | | // }); |
| | | } |
| | | }, |
| | | mounted() { |
| | | // 非保安单位模式默认加载管理组数据 |
| | | if (!website.tenantMode) { |
| | | this.initData(website.tenantId); |
| | | this.initData(website.tenantId, this.userInfo.role_name); |
| | | } |
| | | }, |
| | | methods: { |
| | | nodeClick(data) { |
| | | this.treeDeptId = data.id; |
| | | if (data.id == "1123598813738675201") { |
| | | data.id = "1372091709474910209"; |
| | | } |
| | | this.treeDeptId = data; |
| | | this.page.currentPage = 1; |
| | | // console.log(this.treeDeptId); |
| | | this.onLoad(this.page); |
| | | }, |
| | | initData(tenantId) { |
| | | initData(tenantId, d) { |
| | | getRoleTree(tenantId).then((res) => { |
| | | const column = this.findObject(this.option.group, "roleId"); |
| | | column.dicData = res.data.data; |
| | | var k = res.data.data; |
| | | var b = []; |
| | | if (d == "保安公司管理员") { |
| | | // console.log(k); |
| | | for (var n in k) { |
| | | if (k[n].title == "保安" || k[n].title == "保安公司管理员" || k[n].title == "分公司管理员") { |
| | | b.push(k[n]); |
| | | } |
| | | } |
| | | column.dicData = b; |
| | | } else if (d == "分公司管理员") { |
| | | for (var j in k) { |
| | | if (k[j].title == "分公司管理员" || k[j].title == "保安") { |
| | | b.push(k[j]); |
| | | } |
| | | if(k[j].children){ |
| | | for (var h in k[j].children) { |
| | | if (k[j].children[h].title == "分公司管理员" || k[j].children[h].title == "保安") { |
| | | b.push(k[j].children[h]); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | column.dicData = b; |
| | | }else if (d == "公安管理员") { |
| | | for (var i in k) { |
| | | if (k[i].title == "公安管理员") { |
| | | b.push(k[i]); |
| | | } |
| | | } |
| | | column.dicData = b; |
| | | } else { |
| | | column.dicData = k; |
| | | } |
| | | }); |
| | | getDeptTree(tenantId).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | getPostList(tenantId).then((res) => { |
| | | const column = this.findObject(this.option.group, "postId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | // this.userInfo.role_name == "保安公司管理员" |
| | | //公安局进入 |
| | | if ( |
| | | this.userInfo.role_name == "公安管理员" |
| | | ) { |
| | | var parentId = this.userInfo.dept_id; |
| | | var userId = this.userInfo.Id; |
| | | getDeptLazyTree(parentId, userId).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | } else if( this.userInfo.role_name == "administrator"){ |
| | | getDeptLazyTree(0).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | }else { |
| | | getSecurityDeptTree(null,null,this.userInfo.dept_id).then((res) => { |
| | | const column = this.findObject(this.option.group, "deptId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | } |
| | | // getDeptTree(tenantId).then((res) => { |
| | | // const column = this.findObject(this.option.group, "deptId"); |
| | | // column.dicData = res.data.data; |
| | | // }); |
| | | // getPostList(tenantId).then((res) => { |
| | | // const column = this.findObject(this.option.group, "postId"); |
| | | // column.dicData = res.data.data; |
| | | // }); |
| | | }, |
| | | submitRole() { |
| | | const roleList = this.$refs.treeRole.getCheckedKeys().join(","); |
| | |
| | | rowSave(row, done, loading) { |
| | | row.deptId = row.deptId; |
| | | row.roleId = row.roleId.join(","); |
| | | row.postId = row.postId.join(","); |
| | | console.log(row, "row"); |
| | | var params = { |
| | | deptname: row.$deptId, |
| | | }; |
| | | getJurisdiction(params).then((res) => { |
| | | // console.log(res.data.data); |
| | | // return; |
| | | if (res.data.msg != "暂无承载数据") { |
| | | row.jurisdiction = res.data.data; |
| | | } else { |
| | |
| | | rowUpdate(row, index, done, loading) { |
| | | row.deptId = row.deptId; |
| | | row.roleId = row.roleId.join(","); |
| | | row.postId = row.postId.join(","); |
| | | update(row).then( |
| | | // row.postId = row.postId.join(","); |
| | | delete row.postId; |
| | | updateUser(row).then( |
| | | () => { |
| | | this.initFlag = false; |
| | | this.onLoad(this.page); |
| | |
| | | }, |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | if (this.userInfo.role_name != "公安管理员") { |
| | | const column = this.findObject(this.option.group, "code"); |
| | | column.display = false; |
| | | } |
| | | |
| | | getUser(this.form.id).then((res) => { |
| | | this.form = res.data.data; |
| | | if (this.form.hasOwnProperty("deptId")) { |
| | |
| | | this.form.postId = this.form.postId.split(","); |
| | | } |
| | | }); |
| | | } |
| | | if (["add"].includes(type)) { |
| | | if (this.userInfo.role_name != "公安管理员") { |
| | | const column = this.findObject(this.option.group, "code"); |
| | | column.display = false; |
| | | } |
| | | } |
| | | this.initFlag = true; |
| | | done(); |
| | |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | var deptid = this.deptids == null ? this.treeDeptId : this.deptids; |
| | | var deptid = this.deptids == null ? this.treeDeptId.id : this.deptids; |
| | | //公安局进入 |
| | | if (this.userInfo.role_name == "公安管理员") { |
| | | params["jurisdiction"] = this.userInfo.jurisdiction; |
| | | params["roleId"] = "1"; |
| | | } |
| | | var test = /派出所|分局|公安局|市公安局$/g; |
| | | var jurisdiction = ""; |
| | | if (test.test(this.treeDeptId.title)) { |
| | | jurisdiction = this.treeDeptId.id; |
| | | } |
| | | params["status"] = 1; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query), |
| | | deptid |
| | | deptid, |
| | | jurisdiction |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | |
| | | }, |
| | | platformOnLoad(page, params = {}) { |
| | | this.platformLoading = true; |
| | | var jurisdiction = ""; |
| | | var deptid = this.deptids == null ? this.treeDeptId : this.deptids; |
| | | getList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query), |
| | | deptid |
| | | deptid, |
| | | jurisdiction |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.platformPage.total = data.total; |