Commit 76254928 authored by 前端-许佳敏's avatar 前端-许佳敏

用户管理对接

parent 08294bfa
......@@ -2,7 +2,6 @@ import React from 'react';
import { Space } from 'antd';
const CustomStatus = props => {
console.log(props);
return (
<>
<Space>
......
......@@ -3,9 +3,8 @@ import { Tag, Row } from 'antd'
import { useFormEffects } from '@formily/antd'
const TableTagList = (props) => {
const { value = [], mutators } = props
const { value = [], mutators, editable } = props
const { extra = null, callback = null } = props.props['x-component-props'] ? props.props['x-component-props'] : {}
const handleClose = (id) => {
callback && callback(id)
mutators.remove(value.findIndex(v => v.id === id))
......@@ -14,7 +13,7 @@ const TableTagList = (props) => {
<div className="table-tag-list" style={{width: '100%'}}>
<Row style={{flexWrap: 'wrap'}}>
{
value.map(v => <Tag closable onClose={() => handleClose(v.id)} color="#4279DF" key={v.id} style={{marginBottom: 8}}>{v.roleName}</Tag>)
value.map(v => <Tag closable={editable} onClose={() => handleClose(v.id)} color="#4279DF" key={v.id} style={{marginBottom: 8}}>{v.roleName}</Tag>)
}
</Row>
{extra}
......
......@@ -18,6 +18,7 @@ export interface TabTreeActions {
setSelectKey: (key: ReactText) => void
setSelectKeys: (keys: ReactText[]) => void
getParentPath: (id: ReactText) => string
connected: boolean
}
export interface toolsRenderProps {
......@@ -51,13 +52,13 @@ export interface RenderIconsProps {
export const useTreeActions = (action?): TabTreeActions => {
const actionRef = useRef<any>(null)
actionRef.current = actionRef.current || action || createTreeActions()
return actionRef.current
}
export const createTreeActions = () => {
const actions: TabTreeActions = {
selected: [],
connected: false,
getExpandedKeys(){ return [] },
getSelectKey(){ return '' },
getSelectKeys(){ return [] },
......@@ -166,7 +167,6 @@ const TabTree:React.FC<TabTreeProps> = (props) => {
[]
);
console.log(treeReduction(treeData))
useEffect(() => {
if (getMenuSelectData) {
getMenuSelectData().then(res => {
......@@ -186,7 +186,9 @@ const TabTree:React.FC<TabTreeProps> = (props) => {
if (selfActions) {
selfActions.getExpandedKeys = () => expandkeys
selfActions.getSelectKey = () => selectKey
selfActions.getSelectKeys = () => selected
selfActions.getSelectKeys = () => {
return selected
}
selfActions.selected = selected
selfActions.setSelectKeys = (keys: ReactText[]) => {
setSelected(keys)
......@@ -201,12 +203,18 @@ const TabTree:React.FC<TabTreeProps> = (props) => {
selfActions.getParentPath = (id: ReactText) => {
return getParentTreeTitles(treeData, id)
}
// 链接成功
selfActions.connected = true
}
const batchSelect = (items: any[]) => {
items.forEach(v => select(v))
const batchSelect = (items: any) => {
if (items.checked) {
// 更改为严格模式
items.checked.forEach(v => select(v))
} else {
items.forEach(v => select(v))
}
}
return (
<div>
{title &&
......@@ -221,6 +229,7 @@ const TabTree:React.FC<TabTreeProps> = (props) => {
treeData={data}
blockNode
checkable={checkable}
checkStrictly
checkedKeys={selected}
expandedKeys={expandkeys}
onCheck={(keys, nodes) => {
......@@ -232,7 +241,6 @@ const TabTree:React.FC<TabTreeProps> = (props) => {
const { node, selected } = e
// 用户自定义的选择后触发事件
if (props.handleSelect) {
console.log(node)
const result = props.handleSelect(node.key, node)
// 存在返回值则不执行选中事件, 一般用于切换node时,不希望离开当前页面
if (result !== undefined) {
......
export interface MemberType {
id: number;
typeName: string;
}
export interface BusinessType {
id: number;
typeName: string;
}
export interface Data {
memberType: MemberType[];
businessType: BusinessType[];
}
export interface UseType {
code: number;
message: string;
data: Data;
time: number;
}
export interface UseDetail {
code: number;
message: string;
data?: any;
time: number;
}
export interface UserRegister {
useType: UseType;
useDetail: UseDetail;
}
export interface RuleConfiguration {
value: number;
label: string;
platformType: number;
}
export interface PayWayResponse {
payType: number;
value: number;
label: string;
}
export interface Data {
payType: number;
ruleConfigurations: RuleConfiguration[];
payWayResponses: PayWayResponse[];
}
export interface PayInitializeConfig {
code: number;
message: string;
data: Data[];
time: number;
}
export interface Data {
id: number;
payType: number;
way: string;
isPitchOn: number;
}
export interface PayPlatformPayConfig {
code: number;
message: string;
data: Data[];
time: number;
}
export interface PayConfig {
payInitializeConfig: PayInitializeConfig;
payPlatformPayConfig: PayPlatformPayConfig;
}
export interface CountryList {
name: string;
key: string;
icon: string;
}
export interface Children {
code: string;
}
export interface MenuList {
code: string;
children: Children[];
}
export interface Global {
logo: string;
countryList: CountryList[];
menuList: MenuList[];
}
export interface RootObject {
userRegister: UserRegister;
payConfig: PayConfig;
global: Global;
}
\ No newline at end of file
......@@ -3,6 +3,6 @@ import styles from '../index.less'
export default () => (
<div className={styles.lxLogoWrap}>
<span>数商云</span>
<span>平台后台</span>
</div>
)
\ No newline at end of file
......@@ -40,8 +40,6 @@ const MenuSlider = (props) => {
const menuUtil = new MenuUtil({
formatMessage,
})
console.log(selectedKeys)
// 本地可无权限访问所有路由
if (!isDev) {
menuData
......
......@@ -79,7 +79,7 @@ const Layout = props => {
return (
<ProLayout
title="瓴犀"
title="瓴犀平台后台"
navTheme="light"
formatMessage={formatMessage}
onCollapse={collapse => {
......
......@@ -36,6 +36,8 @@ const TabsItem = Tabs.TabPane
const menuActions = createFormActions()
const treeActions = createTreeActions()
const MemberDetail: React.FC<{}> = () => {
const [form] = Form.useForm();
const value = useContext(historyContainer)
......@@ -49,7 +51,9 @@ const MemberDetail: React.FC<{}> = () => {
getTreeMaps
} = useTreeTabs({
fetchMenuData,
fetchItemDetailData: PublicApi.getMemberRoleAuthButton
fetchItemDetailData: ({id}) => PublicApi.getMemberRoleAuthButton({
menuId: id
})
})
const actionRef = useRef<any>({})
......@@ -61,7 +65,6 @@ const MemberDetail: React.FC<{}> = () => {
id
} = usePageStatus()
const treeActions = createTreeActions()
// 编辑和预览模式下需回显数据
const fetchRoleMenuDetail = async (id) => {
......@@ -100,12 +103,11 @@ const MemberDetail: React.FC<{}> = () => {
// 如果未点击过操作权限tab, 则无法获取到actionRef实例, 需补充手动补充回显的ids, 新增的时候如果未设置按钮,则返回空数组
const buttonCheckIds = actionRef.current.selected || (formValue && formValue.ids) || []
const treeCheckIds = treeActions.getSelectKeys()
const menuIds = [...buttonCheckIds, ...treeCheckIds]
if (pageStatus === PageStatus.EDIT) {
await PublicApi.postMemberRoleUpdate({
...values,
id,
memberRoleId: id,
menuIds
})
} else {
......@@ -195,6 +197,7 @@ const MemberDetail: React.FC<{}> = () => {
actions={treeActions}
treeData={treeData}
handleSelect={handleSelect}
customKey='id'
disabled={pageStatus === PageStatus.PREVIEW}
/>
</Col>
......
......@@ -147,8 +147,11 @@ const AddUser: React.FC<{}> = () => {
setOriginVisible(true)
}
const connectCategory = <div className='connectBtn' onClick={openOriginTree}><LinkOutlined style={{marginRight: 4}}/>关联</div>
const addRoles = <Button block onClick={handleRoleBtn}>添加角色</Button>
const connectCategory = pageStatus !== PageStatus.PREVIEW ?
<div className='connectBtn' onClick={openOriginTree}><LinkOutlined style={{marginRight: 4}}/>关联</div>
:
''
const addRoles = pageStatus !== PageStatus.PREVIEW ? <Button block onClick={handleRoleBtn}>添加角色</Button> : ''
return (
<DetailPage title={titleRender(pageStatus)}>
<div className="common-wrapper user-system">
......@@ -157,6 +160,7 @@ const AddUser: React.FC<{}> = () => {
schema={UserDetailSchema}
initialValues={formData}
actions={userActions}
editable={pageStatus !== PageStatus.PREVIEW}
effects={($, {setFieldState}) => {
$('onFormInit').subscribe(() => {
if (id) {
......@@ -176,8 +180,8 @@ const AddUser: React.FC<{}> = () => {
}}
>
<FormButtonGroup offset={6}>
<Button htmlType='submit' type='primary' loading={loading}>提交</Button>
<Button>取消</Button>
<Button htmlType='submit' type='primary' hidden={pageStatus === PageStatus.PREVIEW} loading={loading}>提交</Button>
<Button onClick={() => history.goBack()}>取消</Button>
</FormButtonGroup>
</NiceForm>
<ModalTable
......
......@@ -201,6 +201,9 @@ export const getParentTreeTitles = (dataSouce, key) => {
let targetKey = key
let targetPath = ''
while (targetKey !== '') {
if (!hashMaps[targetKey]) {
break
}
const title = hashMaps[targetKey].title
targetPath = targetPath === '' ? title : `${title}-${targetPath}`
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment