|
@@ -2,22 +2,48 @@ import { useModel, useRequest } from 'umi'
|
|
import { Delete, EveryUser } from '@icon-park/react'
|
|
import { Delete, EveryUser } from '@icon-park/react'
|
|
import ProForm, { ProFormCheckbox, ProFormDependency, ProFormSwitch } from '@ant-design/pro-form'
|
|
import ProForm, { ProFormCheckbox, ProFormDependency, ProFormSwitch } from '@ant-design/pro-form'
|
|
import type { FormInstance } from 'antd'
|
|
import type { FormInstance } from 'antd'
|
|
-import { message, Table, Tabs } from 'antd'
|
|
|
|
|
|
+import { message, Table, Tabs, Radio, Space } from 'antd'
|
|
import React, { useRef, useMemo, useState, useEffect } from 'react'
|
|
import React, { useRef, useMemo, useState, useEffect } from 'react'
|
|
|
|
|
|
import {
|
|
import {
|
|
fetchRoleStaffListByRoleId,
|
|
fetchRoleStaffListByRoleId,
|
|
updateRolePermission,
|
|
updateRolePermission,
|
|
- getRolePermissions
|
|
|
|
|
|
+ getRolePermissions,
|
|
|
|
+ updatePermDataByRoleId
|
|
} from '@/services/user/api'
|
|
} from '@/services/user/api'
|
|
import type { ColumnsType } from 'antd/lib/table'
|
|
import type { ColumnsType } from 'antd/lib/table'
|
|
import { formatPermission } from '@/utils/utils'
|
|
import { formatPermission } from '@/utils/utils'
|
|
import RoleMenu from '../System/components/RoleMenu'
|
|
import RoleMenu from '../System/components/RoleMenu'
|
|
import ConnectModal from '../System/components/ConnectModal'
|
|
import ConnectModal from '../System/components/ConnectModal'
|
|
|
|
+import FormItem from 'antd/lib/form/FormItem'
|
|
|
|
+
|
|
|
|
+const permData = [
|
|
|
|
+ {
|
|
|
|
+ label: '本人',
|
|
|
|
+ value: 'onsself'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '本人及下属',
|
|
|
|
+ value: 'underling'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '本部门',
|
|
|
|
+ value: 'department'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '本部门及下属部门',
|
|
|
|
+ value: 'departmentAll'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '全部',
|
|
|
|
+ value: 'all'
|
|
|
|
+ }
|
|
|
|
+]
|
|
|
|
|
|
const Customer = () => {
|
|
const Customer = () => {
|
|
const { TabPane } = Tabs
|
|
const { TabPane } = Tabs
|
|
const formRef = useRef<FormInstance>(null)
|
|
const formRef = useRef<FormInstance>(null)
|
|
|
|
+ const formRef2 = useRef<FormInstance>(null)
|
|
|
|
|
|
const columns: ColumnsType<API.RoleStaffListItem> = [
|
|
const columns: ColumnsType<API.RoleStaffListItem> = [
|
|
{
|
|
{
|
|
@@ -66,6 +92,7 @@ const Customer = () => {
|
|
id: '',
|
|
id: '',
|
|
roleStaff: [],
|
|
roleStaff: [],
|
|
rolePermission: {},
|
|
rolePermission: {},
|
|
|
|
+ dataPermission: {},
|
|
activeKey: ''
|
|
activeKey: ''
|
|
})
|
|
})
|
|
const onSelect = (id: string) => {
|
|
const onSelect = (id: string) => {
|
|
@@ -86,7 +113,11 @@ const Customer = () => {
|
|
manual: true,
|
|
manual: true,
|
|
onSuccess: (result: API.GetRolePermissionResultModel) => {
|
|
onSuccess: (result: API.GetRolePermissionResultModel) => {
|
|
const values = { ...formatPermission('init', result.permission) }
|
|
const values = { ...formatPermission('init', result.permission) }
|
|
- setState({ ...state, rolePermission: values })
|
|
|
|
|
|
+ setState({
|
|
|
|
+ ...state,
|
|
|
|
+ rolePermission: values,
|
|
|
|
+ dataPermission: JSON.parse(result.dataPermission)
|
|
|
|
+ })
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
@@ -98,6 +129,9 @@ const Customer = () => {
|
|
if (state.activeKey === '2') {
|
|
if (state.activeKey === '2') {
|
|
formRef.current?.setFieldsValue({ ...state.rolePermission })
|
|
formRef.current?.setFieldsValue({ ...state.rolePermission })
|
|
}
|
|
}
|
|
|
|
+ if (state.activeKey === '3') {
|
|
|
|
+ formRef2.current?.setFieldsValue({ ...state.dataPermission })
|
|
|
|
+ }
|
|
}, [state.id, state.activeKey])
|
|
}, [state.id, state.activeKey])
|
|
|
|
|
|
return (
|
|
return (
|
|
@@ -202,6 +236,37 @@ const Customer = () => {
|
|
)}
|
|
)}
|
|
</div>
|
|
</div>
|
|
</TabPane>
|
|
</TabPane>
|
|
|
|
+ <TabPane tab="数据权限" key="3">
|
|
|
|
+ {state.id && (
|
|
|
|
+ <ProForm
|
|
|
|
+ formRef={formRef2}
|
|
|
|
+ layout="vertical"
|
|
|
|
+ onFinish={async values => {
|
|
|
|
+ try {
|
|
|
|
+ await updatePermDataByRoleId({
|
|
|
|
+ id: state.id,
|
|
|
|
+ dataPermission: JSON.stringify(values)
|
|
|
|
+ })
|
|
|
|
+ } catch (error) {
|
|
|
|
+ return message.error(error.toString())
|
|
|
|
+ }
|
|
|
|
+ message.success('设置成功')
|
|
|
|
+ return true
|
|
|
|
+ }}>
|
|
|
|
+ <FormItem name="access" label="联系人/客户可见" required>
|
|
|
|
+ <Radio.Group>
|
|
|
|
+ <Space direction="vertical">
|
|
|
|
+ {permData.map(item => (
|
|
|
|
+ <Radio key={item.value} value={item.value}>
|
|
|
|
+ {item.label}
|
|
|
|
+ </Radio>
|
|
|
|
+ ))}
|
|
|
|
+ </Space>
|
|
|
|
+ </Radio.Group>
|
|
|
|
+ </FormItem>
|
|
|
|
+ </ProForm>
|
|
|
|
+ )}
|
|
|
|
+ </TabPane>
|
|
</Tabs>
|
|
</Tabs>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|