浏览代码

fix: 增加事项列表滚动条、事项分类不能删除、新建事项后点击组件数据不正确问题

outaozhen 3 年之前
父节点
当前提交
7baca25715

+ 9 - 12
src/pages/Business/Matter/components/AssemblyDetail.tsx

@@ -5,7 +5,6 @@ import { ColumnsType } from 'antd/lib/table'
 import styles from './index.less'
 import useModal from '@/components/Modal'
 import AddAssemblyModal from './AddAssemblyModal'
-import { createUid } from '@/utils/util'
 import { queryMatterDetail } from '@/services/api/business'
 import consts from '@/utils/consts'
 
@@ -31,7 +30,7 @@ interface IState {
 
 const AssemblyDetail: React.FC<AssemblyDetailProps> = ({ refresh, record }) => {
   const [state, setState] = useState<IState>({
-    matterDetail: []
+    matterDetail: {}
   })
   const [modal, ModalDOM] = useModal()
   const tRef = useRef()
@@ -44,19 +43,19 @@ const AssemblyDetail: React.FC<AssemblyDetailProps> = ({ refresh, record }) => {
       title: '组件名称',
       dataIndex: 'name',
       onHeaderCell: () => ({ style: { textAlign: 'center' } }),
-      renderText: name => <span>{assemblyToMap[name]?.name}</span>
+      renderText: (_, record) => <span>{assemblyToMap[record.type].name}</span>
     },
     {
       title: '组件类型',
       dataIndex: 'type',
       align: 'center',
-      renderText: type => <Tag color="blue">{assemblyToMap[type]?.type}</Tag>
+      renderText: (_, record) => <Tag color="blue">{assemblyToMap[record.type].type}</Tag>
     },
     {
       title: '组件标题',
       dataIndex: 'title',
       onHeaderCell: () => ({ style: { textAlign: 'center' } }),
-      renderText: title => <span>{assemblyToMap[title]?.title}</span>
+      renderText: (_, record) => <span>{assemblyToMap[record.type].title}</span>
     },
     {
       title: '操作',
@@ -74,7 +73,7 @@ const AssemblyDetail: React.FC<AssemblyDetailProps> = ({ refresh, record }) => {
     <div className={styles.drawerTableBox}>
       <ProTable
         search={false}
-        rowKey="ID"
+        rowKey="type"
         actionRef={tRef}
         params={{ ID: record?.ID }}
         columns={columns}
@@ -82,12 +81,10 @@ const AssemblyDetail: React.FC<AssemblyDetailProps> = ({ refresh, record }) => {
           const { data = {}, code = -1 } = await queryMatterDetail(params)
           setState({ ...state, matterDetail: data })
           return {
-            data: data?.assembly.map(item => ({
-              ID: createUid(),
-              name: item,
-              type: item,
-              title: item
-            })),
+            data:
+              data?.assembly?.map(item => ({
+                type: item
+              })) || [],
             success: code === consts.RET_CODE.SUCCESS
           }
         }}

+ 14 - 18
src/pages/Business/Matter/hooks/useRowScript.tsx

@@ -139,25 +139,21 @@ export function useRowScript(modal: ModalAction) {
   }
 
   /** 删除 */
-  const deleteMatter = (ID: string, children: any[]) => {
-    if (!children.length) {
-      Modal.confirm({
-        title: '删除',
-        content: '确认删除该行数据?',
-        okText: '确定',
-        cancelText: '取消',
-        onOk: async () => {
-          // 进行删除的接口请求
-          const { code = -1 } = await delMatter({ ID })
-          if (code === consts.RET_CODE.SUCCESS) {
-            message.success('删除成功')
-            refresh()
-          }
+  const deleteMatter = (ID: string) => {
+    Modal.confirm({
+      title: '删除',
+      content: '确认删除该行数据?',
+      okText: '确定',
+      cancelText: '取消',
+      onOk: async () => {
+        // 进行删除的接口请求
+        const { code = -1 } = await delMatter({ ID })
+        if (code === consts.RET_CODE.SUCCESS) {
+          message.success('删除成功')
+          refresh()
         }
-      })
-    } else {
-      message.warning('请先移除该分类下的所有事项')
-    }
+      }
+    })
   }
 
   /** 树表格的展开 */

+ 4 - 14
src/pages/Business/Matter/index.tsx

@@ -62,20 +62,7 @@ const Matter: React.FC = () => {
           )}
         </div>
       )
-      // render: (categoryName, record) => {
-      //   if (record.matterType === MatterType.MATTER) return null
-      //   return categoryName
-      // }
     },
-    // {
-    //   title: '事项名称',
-    //   dataIndex: 'name',
-    //   onHeaderCell: () => ({ style: { textAlign: 'center' } }),
-    //   render: (matterName, record) => {
-    //     if (record.matterType === MatterType.CATEGORY) return null
-    //     return matterName
-    //   }
-    // },
     {
       title: '包含组件',
       dataIndex: 'assemblyName',
@@ -103,7 +90,7 @@ const Matter: React.FC = () => {
           ) : null}
           <span
             className={'pl-2 text-red-500 cursor-pointer hover:text-red-600'}
-            onClick={() => deleteMatter(record.ID, record.children)}>
+            onClick={() => deleteMatter(record.ID)}>
             删除
           </span>
         </div>
@@ -117,6 +104,8 @@ const Matter: React.FC = () => {
     query({ gatherID, businessType })
   }
 
+  const wrapHeight = document.querySelector('.ant-pro-page-container-warp')?.clientHeight || 0
+
   return (
     <PageContainer title={false}>
       <div className="h-full w-full flex flex-row">
@@ -146,6 +135,7 @@ const Matter: React.FC = () => {
               </div>
             }
             loading={loading}
+            scroll={{ y: document.body.clientHeight - (263 + wrapHeight) }}
             columns={columns}
             dataSource={treeList}
             bordered