changeRole.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <script setup lang="ts">
  2. import { ref, reactive } from "vue";
  3. import { ElMessageBox, ElMessage } from "element-plus";
  4. const dialogVisibleAdd = ref(false);
  5. import { postPageRole } from "@/api/roles";
  6. import { postAssignmentUser } from "@/api/userSetting";
  7. const form = reactive({
  8. name: "",
  9. region: "",
  10. date1: "",
  11. date2: "",
  12. delivery: false,
  13. type: [],
  14. resource: "",
  15. desc: ""
  16. });
  17. const handleClose = () => {
  18. ElMessageBox.confirm("确认关闭弹窗吗?")
  19. .then(() => {
  20. dialogVisibleAdd.value = !dialogVisibleAdd.value;
  21. ElMessage({
  22. message: "已关闭",
  23. type: "success"
  24. });
  25. })
  26. .catch(() => {
  27. // catch error
  28. });
  29. };
  30. const rolesList = reactive({
  31. list: [],
  32. assignmentParams: {
  33. sourceCodes: [],
  34. targetCodes: [],
  35. linkAction: "link",
  36. correlatedModel: "deptRole"
  37. },
  38. rolesName: ""
  39. });
  40. const postAddUserGroupApi = async () => {
  41. const { code } = await postAssignmentUser(rolesList.assignmentParams);
  42. if (code === 200) {
  43. ElMessage({
  44. message: "添加成功",
  45. type: "success"
  46. });
  47. }
  48. };
  49. const rolesData = async () => {
  50. const { code, data } = await postPageRole({
  51. pageNumber: 1,
  52. pageSize: 100
  53. });
  54. if (code === 200) {
  55. rolesList.list = data.records;
  56. }
  57. };
  58. const changeRoles = () => {
  59. rolesList.assignmentParams.sourceCodes = [];
  60. rolesList.assignmentParams.sourceCodes.push(rolesList.rolesName);
  61. };
  62. // 添加部门保存
  63. const saveDepartment = () => {
  64. dialogVisibleAdd.value = false;
  65. postAddUserGroupApi();
  66. };
  67. const open = (item, user) => {
  68. dialogVisibleAdd.value = true;
  69. if (user == "用户") {
  70. console.log("item", item);
  71. rolesList.assignmentParams.targetCodes = [];
  72. rolesList.assignmentParams.targetCodes.push(item.userCode);
  73. } else {
  74. rolesList.assignmentParams.targetCodes = [];
  75. rolesList.assignmentParams.targetCodes.push(item.data.deptCode);
  76. }
  77. rolesData();
  78. };
  79. defineExpose({
  80. open
  81. });
  82. </script>
  83. <template>
  84. <div>
  85. <el-dialog
  86. v-model="dialogVisibleAdd"
  87. title="配置角色"
  88. width="500"
  89. :before-close="handleClose"
  90. >
  91. <el-form :model="form" label-width="auto" style="max-width: 600px">
  92. <el-form-item label="配置角色">
  93. <el-select
  94. v-model="form.region"
  95. placeholder="请选择角色"
  96. @change="changeRoles"
  97. >
  98. <el-option
  99. v-for="(item, index) in rolesList.list"
  100. :key="index"
  101. :label="item.roleName"
  102. :value="item.roleCode"
  103. />
  104. </el-select>
  105. </el-form-item>
  106. </el-form>
  107. <template #footer>
  108. <div class="dialog-footer">
  109. <el-button @click="handleClose">取消</el-button>
  110. <el-button type="primary" @click="saveDepartment"> 确认 </el-button>
  111. </div>
  112. </template>
  113. </el-dialog>
  114. </div>
  115. </template>