瀏覽代碼

集团角色分配

zhengnaiwen_citu 4 月之前
父節點
當前提交
3d9a6cf6b1
共有 1 個文件被更改,包括 75 次插入0 次删除
  1. 75 0
      src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

+ 75 - 0
src/views/recruit/enterprise/systemManagement/groupAccount/index.vue

@@ -62,6 +62,7 @@
             <v-btn v-if="item.userType === '0'" color="primary" variant="text" @click="handleEdit(item)">编辑</v-btn>
             <v-btn v-if="item.status === '1' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 0, item)">{{ $t('enterprise.userManagement.enable') }}</v-btn>
             <v-btn v-if="item.status === '0' && item.userType !== '1'" color="primary" variant="text" @click="handleAction('', 1, item)">{{ $t('enterprise.userManagement.disable') }}</v-btn>
+            <v-btn color="primary" variant="text" @click="handleRole(item)">分配角色</v-btn>
           </template>
         </CtTable>
       </v-col>
@@ -93,6 +94,11 @@
     </CtForm>
   </CtDialog>
 
+
+  <CtDialog :visible="showRole" :widthType="2" titleClass="text-h6" title="分配角色" @close="showRole = false; roleItem = null" @submit="handleSubmitRole">
+    <CtForm v-loading="roleLoading" ref="CtFormRef" class="mt-3" :items="roleForm"></CtForm>
+  </CtDialog>
+
   <ImgCropper :visible="isShowCopper" :image="selectPic" :cropBoxResizable="true" @submit="handleHideCopper" :aspectRatio="1 / 1" @close="isShowCopper = false"></ImgCropper>
 </template>
 
@@ -112,6 +118,12 @@ import { uploadFile } from '@/api/common'
 import { getToken } from '@/utils/auth'
 import { formatName } from '@/utils/getText';
 
+import {
+  getRoleList,
+  getRolePageSimple,
+  saveUserRole
+} from '@/api/recruit/enterprise/system/role'
+
 const { t } = useI18n()
 const showBadge = ref(false) // 性别设置甲方要求已去掉
 const total = ref(0)
@@ -149,6 +161,42 @@ const textItem = ref({
 //   return (item && item.sex) ? (item.sex === '1' ? 'mdi-gender-male' : 'mdi-gender-female') : 'mdi-gender-female'
 // })
 
+
+// 角色分配
+const showRole = ref(false)
+const roleLoading = ref(false)
+const roleItem = ref(null)
+const roleForm = ref({
+  options: [
+    {
+      type: 'text',
+      key: 'name',
+      value: null,
+      label: t('login.username'),
+      disabled: true
+    },
+    {
+      type: 'text',
+      key: 'enterpriseAnotherName',
+      value: null,
+      label: t('enterprise.userManagement.affiliatedEnterprise'),
+      disabled: true
+    },
+    {
+      type: 'autocomplete',
+      key: 'roleIds',
+      value: [],
+      label: '角色选择',
+      multiple: true,
+      itemText: 'name',
+      itemValue: 'id',
+      items: []
+    }
+  ]
+})
+
+
+
 // 获取用户列表
 const getUserList = async () => {
   loading.value = true
@@ -329,6 +377,33 @@ const handleHideCopper = (data) => {
   }
 }
 
+const handleRole = async (item) => {
+  roleItem.value = item
+  showRole.value = true
+  const list = await getRolePageSimple()
+  const data = await getRoleList({ bindId: item.id })
+  roleForm.value.options.forEach(e => {
+    if (e.key === 'roleIds') {
+      e.items = list
+      e.value = data
+      return
+    }
+    e.value = item[e.key]
+  })
+} 
+
+const handleSubmitRole = async () => {
+  roleLoading.value = true
+  try {
+    await saveUserRole({ bindId: roleItem.value.id, roleIds: roleForm.value.options.find(e => e.key === 'roleIds').value })
+    Snackbar.success('保存成功')
+    showRole.value = false
+  } finally {
+    roleLoading.value = false
+  }
+}
+
+
 // 提交
 const handleSubmit = async () => {
   const { valid } = await CtFormRef.value.formRef.validate()