You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
24 KiB
1 lines
24 KiB
{"version":3,"sources":["webpack:///./src/api/User.js","webpack:///./src/views/UserList.vue","webpack:///./src/views/UserList.vue?5c10"],"names":["base","listUsers","pageQuery","axios","get","params","enableUser","userId","post","disableUser","getByUserId","createUser","request","renewPassword","id","addSysOwnerTo","removeSysOwnerFrom","delete","updatePassword","body","updateNickname","gutter","span","content","placement","type","icon","style","toCreatePage","userPageQuery","enabled","placeholder","onQuery","clearable","item","key","label","value","nicknameOrUsernameOrEmailContains","prefix-icon","data","userPageData","border","width","prop","min-width","fixed","resizable","underline","onGetUserDetail","scope","row","email","loading","userEnableLoading","onSwitchEnabled","isSysOwner","sysOwnerLoading","onChangeSysOwner","size","onRenewPassword","layout","hide-on-single-page","currentPage","number","page-size","page-sizes","page-count","totalPages","onPageSizeChange","onPageChange","isShowUserDetailDrawer","title","direction","column","userDetailData","nickname","username","createAt","roles","stripe","formatter","roleNameFormatter","groupId","toGroupPage","groupName","isShowEditUserDialog","center","destroy-on-close","model","userData","label-position","rules","userFormRule","ref","password","show-password","plain","onSaveUserData","this","requiredInputValidRule","message","trigger","min","max","page","role","created","fetchUsers","methods","then","resp","errCode","required","val","$confirm","confirmButtonText","cancelButtonText","showClose","duration","currentSize","user","$refs","userFormRef","validate","valid","$message","success","warning","$router","push","path","query","__exports__","render"],"mappings":"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","file":"js/chunk-abb10c56.2eac1d1a.js","sourcesContent":["import axios from '@/utils/fetch';\r\n\r\nconst base = '/api/v1.0/users'\r\n\r\nexport const listUsers = (pageQuery) => {\r\n return axios.get(base, {\r\n params: pageQuery\r\n })\r\n}\r\n\r\nexport const enableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/enable\")\r\n\r\n}\r\n\r\nexport const disableUser = (userId) => {\r\n return axios.post(base+\"/\"+userId+\"/disable\")\r\n}\r\n\r\nexport const getByUserId = (userId) => {\r\n return axios.get(base+\"/\"+userId)\r\n}\r\n\r\nexport const createUser = (request) => {\r\n return axios.post(base, request)\r\n}\r\n\r\nexport const renewPassword = (id) => {\r\n return axios.post(base +'/' + id +'/renew_password')\r\n}\r\n\r\nexport const addSysOwnerTo = (userId) => {\r\n return axios.post(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const removeSysOwnerFrom = (userId) => {\r\n return axios.delete(base +'/' + userId +'/sys_owners')\r\n}\r\n\r\nexport const updatePassword = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/password', body)\r\n}\r\n\r\nexport const updateNickname = (userId, body) => {\r\n return axios.post(base +'/' + userId +'/nickname', body)\r\n}","<template>\r\n <el-container>\r\n <el-header>\r\n <el-row :gutter=\"12\">\r\n <el-col :span=\"2\">\r\n <el-tooltip content=\"创建新用户\" placement=\"top\">\r\n <el-button type=\"primary\" icon=\"plus\" style=\"width: 100%\" @click=\"toCreatePage()\"></el-button>\r\n </el-tooltip>\r\n </el-col>\r\n <el-col :span=\"3\">\r\n <el-select v-model=\"userPageQuery.enabled\" placeholder=\"启用状态\" @change=\"onQuery\" clearable>\r\n <el-option\r\n v-for=\"item in [true, false]\"\r\n :key=\"item\"\r\n :label=\"item?'启用':'禁用'\"\r\n :value=\"item\"\r\n >\r\n </el-option>\r\n </el-select>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-input @change='onQuery' v-model=\"userPageQuery.nicknameOrUsernameOrEmailContains\" label=\"用户名\" placeholder=\"昵称、用户名或邮箱搜索\" prefix-icon=\"search\"/>\r\n </el-col>\r\n </el-row>\r\n </el-header>\r\n <el-main>\r\n <el-table :data=\"userPageData.content\" border width='80%'>\r\n <el-table-column prop=\"id\" label=\"ID\" min-width=\"60\" fixed=\"left\" />\r\n <el-table-column prop=\"nickname\" label=\"昵称\" min-width=\"120\" fixed=\"left\" resizable />\r\n <el-table-column prop=\"username\" label=\"用户名\" min-width=\"120\" resizable />\r\n <el-table-column label=\"邮箱\" width=\"200\" resizable>\r\n <template v-slot=\"scope\">\r\n <el-link :underline=\"true\" @click=\"onGetUserDetail(scope.row)\">{{ scope.row.email }}</el-link>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"启用状态\" resizable >\r\n <template v-slot=\"scope\">\r\n <el-switch v-model=\"scope.row.enabled\" :loading=\"loading.userEnableLoading\" @change=\"onSwitchEnabled(scope.row.id, scope.row.enabled)\">\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"系统管理员\">\r\n <template v-slot=\"scope\">\r\n <el-switch v-model=\"scope.row.isSysOwner\" :loading=\"loading.sysOwnerLoading\" @change=\"onChangeSysOwner(scope.row)\">\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"createAt\" label=\"创建时间\" min-width=\"140\"/>\r\n <el-table-column label=\"操作\" min-width=\"120\" resizable >\r\n <template v-slot=\"scope\">\r\n <el-button type=\"danger\" size=\"small\" @Click.stop=\"onRenewPassword(scope.row.id)\">重置密码</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n </el-main>\r\n <el-footer>\r\n <el-pagination layout=\"sizes, prev, pager, next\" \r\n :hide-on-single-page=\"false\"\r\n :currentPage=\"userPageData.number\" \r\n :page-size=\"userPageQuery.size\" \r\n :page-sizes=\"[10,15,20,30]\"\r\n :page-count=\"userPageData.totalPages\"\r\n @size-change=\"onPageSizeChange\"\r\n @current-change=\"onPageChange\">\r\n </el-pagination>\r\n </el-footer>\r\n\r\n <!-- user detail drawer -->\r\n <el-drawer\r\n v-model=\"isShowUserDetailDrawer\"\r\n title=\"用户详情\"\r\n direction=\"rtl\"\r\n size=\"50%\"\r\n >\r\n <el-descriptions\r\n title=\"基础信息\"\r\n :column=\"1\"\r\n border>\r\n <el-descriptions-item label=\"ID\">{{ userDetailData.id }}</el-descriptions-item>\r\n <el-descriptions-item label=\"昵称\">{{ userDetailData.nickname }}</el-descriptions-item>\r\n <el-descriptions-item label=\"用户名\">{{ userDetailData.username }}</el-descriptions-item>\r\n <el-descriptions-item label=\"邮箱\" :span=\"2\">{{ userDetailData.email }}</el-descriptions-item>\r\n <el-descriptions-item label=\"启用状态\" :span=\"2\">{{ userDetailData.enabled?'启用中':'已禁用' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"注册时间\" :span=\"2\">{{ userDetailData.createAt }}</el-descriptions-item>\r\n </el-descriptions>\r\n <br />\r\n <h3>角色信息</h3>\r\n <el-table :data=\"userDetailData.roles\" stripe>\r\n <el-table-column label=\"角色\" prop=\"role\" :formatter=\"roleNameFormatter\">\r\n </el-table-column>\r\n <el-table-column label=\"所属分组\">\r\n <template v-slot=\"scope\">\r\n <el-link v-if=\"scope.row.groupId\" @click=\"toGroupPage(scope.row.groupId, scope.row.groupName)\">{{ scope.row.groupName }} <el-icon><List /></el-icon></el-link>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"groupId\" label=\"分组 ID\"></el-table-column>\r\n <el-table-column prop=\"createAt\" label=\"角色分配时间\"></el-table-column>\r\n </el-table>\r\n </el-drawer>\r\n\r\n <!-- user create dialog -->\r\n <el-dialog v-model=\"isShowEditUserDialog\" width=\"38%\" center destroy-on-close title=\"创建用户\">\r\n <el-form :model=\"userData\" label-position=\"top\" :rules=\"userFormRule\" ref=\"userFormRef\">\r\n <el-form-item label=\"昵称\" prop=\"nickname\">\r\n <el-input v-model=\"userData.nickname\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"用户名\" prop=\"username\">\r\n <el-input v-model=\"userData.username\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"邮箱\" prop=\"email\"> \r\n <el-input v-model=\"userData.email\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"密码\" prop=\"password\">\r\n <el-input\r\n v-model=\"userData.password\"\r\n type=\"password\"\r\n placeholder=\"请输入密码\"\r\n show-password\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"启用状态\">\r\n <el-switch v-model=\"userData.enabled\">\r\n </el-switch>\r\n </el-form-item>\r\n \r\n <el-form-item>\r\n <el-button type=\"primary\" plain @click=\"onSaveUserData('userFormRef')\">保存</el-button>\r\n <el-button plain @click=\"isShowEditUserDialog = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n \r\n </el-dialog>\r\n </el-container>\r\n</template>\r\n\r\n<script>\r\nimport { listUsers, enableUser, disableUser, renewPassword, createUser, addSysOwnerTo, removeSysOwnerFrom, getByUserId } from \"../api/User\"\r\nimport {ElMessage} from 'element-plus'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n loading: {\r\n sysOwnerLoading: false,\r\n userEnableLoading: false\r\n },\r\n userData: {\r\n enabled: false\r\n },\r\n userFormRule: {\r\n nickname: [this.requiredInputValidRule('昵称不能为空')],\r\n username: [this.requiredInputValidRule('用户名不能为空')],\r\n email: [this.requiredInputValidRule('邮箱不能为空'), { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }],\r\n password: [this.requiredInputValidRule('密码不能为空'), { min: 6, max: 18, message: '密码位数位数要求在 6~18 之间', trigger: 'blur' }],\r\n },\r\n userPageData: {\r\n content: [],\r\n },\r\n userPageQuery: {\r\n nicknameOrUsernameOrEmailContains: null,\r\n enabled: null,\r\n page: 0,\r\n size: 10\r\n },\r\n userDetailData: {\r\n\r\n },\r\n isShowUserDetailDrawer: false,\r\n isShowEditUserDialog: false,\r\n roleNameFormatter: function(row, column, role) {\r\n if (role == 'SYS_OWNER') {\r\n return '系统管理员'\r\n } else if (role == 'GROUP_OWNER') {\r\n return '组长'\r\n } else if (role == 'GROUP_MEMBER') {\r\n return '组员'\r\n } else {\r\n return role\r\n }\r\n }\r\n }\r\n },\r\n\r\n created() {\r\n this.fetchUsers()\r\n },\r\n methods: {\r\n fetchUsers() {\r\n listUsers(this.userPageQuery).then(resp => {\r\n if (!resp.errCode) {\r\n this.userPageData = resp.data\r\n this.userPageData.number = resp.data.number + 1\r\n }\r\n })\r\n },\r\n requiredInputValidRule(message) {\r\n return {\r\n required: true,\r\n message: message,\r\n trigger: 'blur',\r\n }\r\n },\r\n onSwitchEnabled(userId, val) {\r\n if (val) {\r\n enableUser(userId)\r\n } else {\r\n disableUser(userId)\r\n }\r\n },\r\n onRenewPassword(userId) {\r\n this.$confirm('确认重置该用户密码?新密码将通过邮件下发', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n renewPassword(userId).then(resp => {\r\n if (!resp.errCode) {\r\n ElMessage({\r\n showClose: true,\r\n message: '密码重置成功',\r\n type: 'success',\r\n duration: 3 * 1000\r\n });\r\n }\r\n })\r\n })\r\n },\r\n onPageChange(currentPage) {\r\n if (currentPage && (currentPage - 1) != this.userPageQuery.page) {\r\n this.userPageQuery.page = currentPage - 1\r\n this.fetchUsers()\r\n }\r\n },\r\n onPageSizeChange(currentSize) {\r\n if (currentSize) {\r\n this.userPageQuery.size = currentSize\r\n this.fetchUsers()\r\n }\r\n },\r\n onQuery() {\r\n this.userPageQuery.page = 0\r\n this.fetchUsers()\r\n },\r\n onGetUserDetail(user) {\r\n this.isShowUserDetailDrawer = true\r\n getByUserId(user.id).then(resp => {\r\n if(!resp.errCode) {\r\n this.userDetailData = resp.data\r\n }\r\n })\r\n },\r\n onSaveUserData() {\r\n this.$refs.userFormRef.validate(valid => {\r\n if (valid) {\r\n createUser(this.userData).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.success(\"保存用户成功\")\r\n this.isShowEditUserDialog = false\r\n this.userData = {\r\n enabled: false\r\n }\r\n this.fetchUsers()\r\n }\r\n })\r\n return true\r\n } else {\r\n return false\r\n }\r\n })\r\n \r\n },\r\n onChangeSysOwner(user) {\r\n const userId = user.id\r\n this.loading.sysOwnerLoading = true\r\n if (user.isSysOwner) {\r\n return addSysOwnerTo(userId).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.success(\"启用系统管理员成功\")\r\n }\r\n this.loading.sysOwnerLoading = false\r\n })\r\n } else {\r\n return removeSysOwnerFrom(userId).then(resp => {\r\n if (!resp.errCode) {\r\n this.$message.warning(\"禁用系统管理员成功\")\r\n }\r\n this.loading.sysOwnerLoading = false\r\n })\r\n }\r\n },\r\n toCreatePage() {\r\n this.isShowEditUserDialog = true\r\n },\r\n toGroupPage(groupId, groupName) {\r\n if(groupId) {\r\n this.$router.push({path: '/groups/'+groupId, query: { groupName: groupName }})\r\n }\r\n }\r\n }\r\n}\r\n\r\n</script>","import { render } from \"./UserList.vue?vue&type=template&id=19247bc8\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"E:\\\\git_workspace\\\\databasir-frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}
|