From 64d172717748c383a5c88348037354bffd60f966 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 27 五月 2025 17:52:03 +0800 Subject: [PATCH] 页面样式修改 --- src/views/system/user/authRole.vue | 123 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) diff --git a/src/views/system/user/authRole.vue b/src/views/system/user/authRole.vue new file mode 100644 index 0000000..a7546aa --- /dev/null +++ b/src/views/system/user/authRole.vue @@ -0,0 +1,123 @@ +<template> + <div class="app-container"> + <h4 class="form-header h4">鍩烘湰淇℃伅</h4> + <el-form :model="form" label-width="80px"> + <el-row> + <el-col :span="8" :offset="2"> + <el-form-item label="鐢ㄦ埛鏄电О" prop="nickName"> + <el-input v-model="form.nickName" disabled /> + </el-form-item> + </el-col> + <el-col :span="8" :offset="2"> + <el-form-item label="鐧诲綍璐﹀彿" prop="userName"> + <el-input v-model="form.userName" disabled /> + </el-form-item> + </el-col> + </el-row> + </el-form> + + <h4 class="form-header h4">瑙掕壊淇℃伅</h4> + <el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="roleRef" @selection-change="handleSelectionChange" :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"> + <el-table-column label="搴忓彿" width="55" type="index" align="center"> + <template #default="scope"> + <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> + </template> + </el-table-column> + <el-table-column type="selection" :reserve-selection="true" :selectable="checkSelectable" width="55"></el-table-column> + <el-table-column label="瑙掕壊缂栧彿" align="center" prop="roleId" /> + <el-table-column label="瑙掕壊鍚嶇О" align="center" prop="roleName" /> + <el-table-column label="鏉冮檺瀛楃" align="center" prop="roleKey" /> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"> + <template #default="scope"> + <span>{{ parseTime(scope.row.createTime) }}</span> + </template> + </el-table-column> + </el-table> + + <pagination v-show="total > 0" :total="total" v-model:page="pageNum" v-model:limit="pageSize" /> + + <el-form label-width="100px"> + <div style="text-align: center;margin-left:-120px;margin-top:30px;"> + <el-button type="primary" @click="submitForm()">鎻愪氦</el-button> + <el-button @click="close()">杩斿洖</el-button> + </div> + </el-form> + </div> +</template> + +<script setup name="AuthRole"> +import { getAuthRole, updateAuthRole } from "@/api/system/user" + +const route = useRoute() +const { proxy } = getCurrentInstance() + +const loading = ref(true) +const total = ref(0) +const pageNum = ref(1) +const pageSize = ref(10) +const roleIds = ref([]) +const roles = ref([]) +const form = ref({ + nickName: undefined, + userName: undefined, + userId: undefined +}) + +/** 鍗曞嚮閫変腑琛屾暟鎹� */ +function clickRow(row) { + if (checkSelectable(row)) { + proxy.$refs["roleRef"].toggleRowSelection(row) + } +} + +/** 澶氶�夋閫変腑鏁版嵁 */ +function handleSelectionChange(selection) { + roleIds.value = selection.map(item => item.roleId) +} + +/** 淇濆瓨閫変腑鐨勬暟鎹紪鍙� */ +function getRowKey(row) { + return row.roleId +} + +// 妫�鏌ヨ鑹茬姸鎬� +function checkSelectable(row) { + return row.status === "0" ? true : false +} + +/** 鍏抽棴鎸夐挳 */ +function close() { + const obj = { path: "/system/user" } + proxy.$tab.closeOpenPage(obj) +} + +/** 鎻愪氦鎸夐挳 */ +function submitForm() { + const userId = form.value.userId + const rIds = roleIds.value.join(",") + updateAuthRole({ userId: userId, roleIds: rIds }).then(response => { + proxy.$modal.msgSuccess("鎺堟潈鎴愬姛") + close() + }) +} + +(() => { + const userId = route.params && route.params.userId + if (userId) { + loading.value = true + getAuthRole(userId).then(response => { + form.value = response.user + roles.value = response.roles + total.value = roles.value.length + nextTick(() => { + roles.value.forEach(row => { + if (row.flag) { + proxy.$refs["roleRef"].toggleRowSelection(row) + } + }) + }) + loading.value = false + }) + } +})() +</script> -- Gitblit v1.9.3