|
@@ -1,4 +1,5 @@
|
|
|
import { Assembly, assemblyToMap } from '@/pages/Business/Matter/components/AssemblyDetail'
|
|
|
+import { InfoCircleOutlined } from '@ant-design/icons'
|
|
|
import { Card, Checkbox } from 'antd'
|
|
|
import { flatMapDeep } from 'lodash'
|
|
|
|
|
@@ -15,35 +16,42 @@ type MatterPermissionProps = {
|
|
|
|
|
|
const MatterPermission: React.FC<MatterPermissionProps> = ({ defaultValue, toggleMatter, matterList }) => {
|
|
|
const matterFlattenList = flatMapDeep(matterList, item => [item, ...(item?.children || [])])
|
|
|
+
|
|
|
return (
|
|
|
<div
|
|
|
style={{ maxHeight: document.querySelector('body')?.clientHeight - 186 }}
|
|
|
className="overflow-y-auto">
|
|
|
- {defaultValue.map(matter => (
|
|
|
- <Card
|
|
|
- key={matter.matterID}
|
|
|
- size="small"
|
|
|
- className="mb-2!"
|
|
|
- title={matterFlattenList.find(item => item.ID === matter.matterID)?.name}>
|
|
|
- {matterFlattenList
|
|
|
- .find(item => item.ID === matter.matterID)
|
|
|
- ?.assembly?.map((item: Assembly) => (
|
|
|
- <div key={item} className="flex justify-between items-center my-1">
|
|
|
- <div className="flex-1">{assemblyToMap[item].name}</div>
|
|
|
- <div className="w-40">
|
|
|
- <Checkbox.Group
|
|
|
- defaultValue={matter[assemblyToMap[item].permKey]}
|
|
|
- options={[
|
|
|
- { label: '查看', value: 'view' },
|
|
|
- { label: '编辑', value: 'edit' }
|
|
|
- ]}
|
|
|
- onChange={checkedValue => toggleMatter(matter.matterID, { [item]: checkedValue })}
|
|
|
- />
|
|
|
- </div>
|
|
|
+ {defaultValue.map(matter => {
|
|
|
+ const currMatter = matterFlattenList.find(item => item.ID === matter.matterID)
|
|
|
+ return (
|
|
|
+ <Card key={matter.matterID} size="small" className="mb-2!" title={currMatter?.name}>
|
|
|
+ {!currMatter?.assembly?.length ? (
|
|
|
+ <div className="p-2">
|
|
|
+ <InfoCircleOutlined style={{ color: '#FEA100' }} />
|
|
|
+ <span className="ml-2">当前事项未绑定组件</span>
|
|
|
</div>
|
|
|
- ))}
|
|
|
- </Card>
|
|
|
- ))}
|
|
|
+ ) : (
|
|
|
+ currMatter?.assembly?.map((item: Assembly) => (
|
|
|
+ <div key={item} className="flex justify-between items-center my-1">
|
|
|
+ <div className="flex-1">{assemblyToMap[item].name}</div>
|
|
|
+ <div className="w-40">
|
|
|
+ <Checkbox.Group
|
|
|
+ defaultValue={matter[assemblyToMap[item].permKey]}
|
|
|
+ options={[
|
|
|
+ { label: '查看', value: 'view' },
|
|
|
+ { label: '编辑', value: 'edit' }
|
|
|
+ ]}
|
|
|
+ onChange={checkedValue =>
|
|
|
+ toggleMatter(matter.matterID, { [assemblyToMap[item].permKey]: checkedValue })
|
|
|
+ }
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ ))
|
|
|
+ )}
|
|
|
+ </Card>
|
|
|
+ )
|
|
|
+ })}
|
|
|
</div>
|
|
|
)
|
|
|
}
|