Browse Source

fix: update api

hi-cactus! 3 years ago
parent
commit
907a73edbb

+ 2 - 0
.eslintrc.js

@@ -65,6 +65,8 @@ module.exports = {
     'no-unused-vars': 2,
     'no-use-before-define': 0,
     'prefer-template': 2,
+    // "space-before-function-paren": 2,
+    "space-before-function-paren": ["error", "never"],
     'react/destructuring-assignment': 0,
     'react-hooks/rules-of-hooks': 'error',
     'react-hooks/exhaustive-deps': 'error',

+ 43 - 33
app/containers/DataGovernanceAuaitAnalysis/index.tsx

@@ -11,8 +11,15 @@ import styles from './index.less'
 import { AnalysisReportDetailModal } from 'containers/DataGovernanceAuaitAnalysis/AnalysisReportDetailModal'
 import { IClassification } from 'containers/DataGovernanceQualityAudit/types'
 import moment, { Moment } from 'moment'
+import * as querystring from 'querystring'
+
+export default function DataGovernanceAuaitAnalysis(props: {
+  location: Location
+}) {
+  const qs: any = querystring.decode(
+    props?.location?.search?.replace('?', '') ?? ''
+  )
 
-export default function DataGovernanceAuaitAnalysis() {
   const [tableLoading, setTableLoading] = useState(false)
   const [detailVisible, setDetailVisible] = useState(false)
   const [detailForm, setDetailForm] = useState<IReport>()
@@ -20,21 +27,26 @@ export default function DataGovernanceAuaitAnalysis() {
   const [reports, setReports] = useState<IReport[]>([])
 
   const [classifications, setClassifications] = useState<IClassification[]>([])
-  const [systemId, setSystemId] = useState<number>(null)
-  const [time, setTime] = useState<Moment>(moment())
+  const [systemId, setSystemId] = useState<number>(
+    qs.systemId ? Number(qs.systemId) : null
+  )
+  const [time, setTime] = useState<[Moment, Moment]>([
+    qs.starTime ? moment(qs.starTime) : moment(),
+    qs.endTime ? moment(qs.endTime) : moment()
+  ])
 
   const workbench = useMemo(() => {
     const total = reports
       .map(
         (item) =>
           item.accuracyCorrect ??
-          0 + item.accuracyError ??
-          0 + item.integrityCorrect ??
-          0 + item.integrityError ??
-          0 + item.normativeCorrect ??
-          0 + item.normativeError ??
-          0 + item.uniformityCorrect ??
-          0 + item.uniformityError ??
+          item.accuracyError ??
+          item.integrityCorrect ??
+          item.integrityError ??
+          item.normativeCorrect ??
+          item.normativeError ??
+          item.uniformityCorrect ??
+          item.uniformityError ??
           0
       )
       .reduce((c, n) => c + n, 0)
@@ -43,9 +55,9 @@ export default function DataGovernanceAuaitAnalysis() {
       .map(
         (item) =>
           item.accuracyCorrect ??
-          0 + item.integrityCorrect ??
-          0 + item.normativeCorrect ??
-          0 + item.uniformityCorrect ??
+          item.integrityCorrect ??
+          item.normativeCorrect ??
+          item.uniformityCorrect ??
           0
       )
       .reduce((c, n) => c + n, 0)
@@ -55,7 +67,7 @@ export default function DataGovernanceAuaitAnalysis() {
       .map((item) => item.integrityCorrect ?? 0)
       .reduce((c, n) => c + n, 0)
     const integrityTotal = reports
-      .map((item) => item.integrityCorrect ?? 0 + item.integrityError)
+      .map((item) => item.integrityCorrect ?? item.integrityError)
       .reduce((c, n) => c + n, 0)
 
     // 一致性
@@ -63,7 +75,7 @@ export default function DataGovernanceAuaitAnalysis() {
       .map((item) => item.uniformityCorrect ?? 0)
       .reduce((c, n) => c + n, 0)
     const uniformityTotal = reports
-      .map((item) => item.uniformityCorrect ?? 0 + item.uniformityError)
+      .map((item) => item.uniformityCorrect ?? item.uniformityError)
       .reduce((c, n) => c + n, 0)
 
     // 规范性
@@ -71,14 +83,14 @@ export default function DataGovernanceAuaitAnalysis() {
       .map((item) => item.normativeCorrect ?? 0)
       .reduce((c, n) => c + n, 0)
     const normativeTotal = reports
-      .map((item) => item.normativeCorrect ?? 0 + item.normativeError)
+      .map((item) => item.normativeCorrect ?? item.normativeError)
       .reduce((c, n) => c + n, 0)
     // 准确性
     const accuracyCorrect = reports
       .map((item) => item.accuracyCorrect ?? 0)
       .reduce((c, n) => c + n, 0)
     const accuracyTotal = reports
-      .map((item) => item.accuracyCorrect ?? 0 + item.accuracyError)
+      .map((item) => item.accuracyCorrect ?? item.accuracyError)
       .reduce((c, n) => c + n, 0)
     return [
       {
@@ -255,16 +267,16 @@ export default function DataGovernanceAuaitAnalysis() {
     }
   ]
 
-  const queryReports = async () => {
-    if (!systemId || !time) {
+  const queryReports = async function(id?: number) {
+    const sysId = id || systemId
+    if (!sysId || !time) {
       return
     }
     try {
       setTableLoading(true)
+      const selfTime = time.map((t) => t.format('YYYY-MM-DD'))
       const data = await request(
-        `${api.qualityReport}?systemId=${systemId}&time=${time.format(
-          'YYYY-MM-DD'
-        )}`,
+        `${api.qualityReport}?systemId=${sysId}&starTime=${selfTime[0]}&endTime=${selfTime[1]}`,
         {
           method: 'GET'
         }
@@ -276,7 +288,7 @@ export default function DataGovernanceAuaitAnalysis() {
     }
   }
 
-  const querySystem = async () => {
+  const querySystem = async() => {
     try {
       setTableLoading(true)
       const data = await request(`${api.getAuditClassification}`, {
@@ -285,7 +297,11 @@ export default function DataGovernanceAuaitAnalysis() {
       // @ts-ignore
       setClassifications(data?.payload ?? [])
       // @ts-ignore
-      setSystemId(data?.payload?.[0].id)
+      if (!systemId) {
+        setSystemId(data?.payload?.[0].id)
+      }
+      // @ts-ignore
+      queryReports(systemId || data?.payload?.[0].id)
     } finally {
       setTableLoading(false)
     }
@@ -298,14 +314,8 @@ export default function DataGovernanceAuaitAnalysis() {
     }
     queryReports()
   }
-
   useEffect(() => {
-    async function query() {
-      await querySystem()
-      await queryReports()
-    }
-
-    query()
+    querySystem()
   }, [])
 
   return (
@@ -335,9 +345,9 @@ export default function DataGovernanceAuaitAnalysis() {
               </div>
               <div>
                 <span>时间选择:</span>
-                <DatePicker
-                  onChange={(e) => setTime(e)}
+                <DatePicker.RangePicker
                   value={time}
+                  onChange={(e) => setTime(e)}
                   format="YYYY-MM-DD"
                 />
               </div>

+ 5 - 5
app/containers/DataGovernanceQualityAudit/components/MetadataModal.tsx

@@ -126,7 +126,7 @@ const MetadataModal = (props: IMetadataModalProps) => {
             }}
           >
             <span className={styles.treeNodeLeft}>
-              <Icon type='file' />
+              <Icon type="file" />
               {c.name}
             </span>
           </div>
@@ -158,12 +158,12 @@ const MetadataModal = (props: IMetadataModalProps) => {
 
   return (
     <Modal
-      title='选择元数据'
+      title="选择元数据"
       visible={visible}
       onCancel={onCancel}
       onOk={handleSave}
       destroyOnClose
-      width='80%'
+      width="80%"
     >
       <div className={styles.treeTableContainer}>
         <div className={styles.treeContainer}>
@@ -177,7 +177,7 @@ const MetadataModal = (props: IMetadataModalProps) => {
 
         <div style={{ flex: 1 }}>
           <div style={{ padding: '0 0 20px' }}>
-            <Button type='primary' icon='plus'>
+            <Button type="primary" icon="plus">
               查询
             </Button>
           </div>
@@ -192,7 +192,7 @@ const MetadataModal = (props: IMetadataModalProps) => {
             }}
             style={{ flex: 1 }}
             bordered
-            rowKey='id'
+            rowKey="id"
             loading={tableLoading}
             dataSource={tableMetadata}
             columns={tableColumns}

+ 10 - 2
app/containers/DataGovernanceQualityAudit/components/QualityTaskFormModal.tsx

@@ -88,7 +88,7 @@ const QualityTaskFormModal = ({
             <>
               <Divider type='vertical' />
               <Popconfirm
-                title='确定删除?'
+                title='确定取消关联?'
                 placement='bottom'
                 onConfirm={() => handleResetSmForm(data)}
               >
@@ -127,7 +127,7 @@ const QualityTaskFormModal = ({
     // selection
     setMateDataConfig((meta) => {
       return [
-        ...meta.filter((s) => s.fieldName !== smFormView.fieldName)
+        ...meta.filter((s) => s.fieldName !== (smFormView?.fieldName || data?.fieldName))
       ]
     })
   }
@@ -177,6 +177,14 @@ const QualityTaskFormModal = ({
   }, [selection])
 
   useEffect(() => {
+    if (!visible) {
+      console.log(111)
+      setTableData([])
+      setSelection([])
+    }
+  }, [visible])
+
+  useEffect(() => {
     const d = selection
       ?.map((s) => s?.metadataConfig)
       .reduce((c, n) => {

+ 45 - 37
app/containers/DataGovernanceQualityAudit/index.tsx

@@ -25,11 +25,11 @@ import {
 import ClassificationsFormModal from 'containers/DataGovernanceQualityAudit/components/ClassificationsFormModal'
 import QualityTaskFormModal from 'containers/DataGovernanceQualityAudit/components/QualityTaskFormModal'
 import ScheduleFormModal from 'containers/DataGovernanceQualityAudit/components/ScheduleFormModal'
-import header from 'containers/Display/Editor/Header'
+// import header from 'containers/Display/Editor/Header'
 import { RouteComponentProps, withRouter } from 'react-router-dom'
 
 function DataGovernanceQualityAudit(props: RouteComponentProps) {
-  const { match } = props
+  const { history, match } = props
 
   const [tableLoading, setTableLoading] = useState(false)
 
@@ -76,12 +76,21 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
           >
             编辑
           </a>
-          <Divider type="vertical" />
+          <Divider type='vertical' />
           <Dropdown
             overlay={
               <Menu>
                 <Menu.Item
-                  key="0"
+                  key='00'
+                  onClick={() => {
+                    // eslint-disable-next-line react/prop-types
+                    history.push(`/project/${match.params.projectId}/dataGovernance/auditAnalysiss?systemId=${data.pId}&starTime=${data.startTime}&endTime=${data.endTime}`)
+                  }}
+                >
+                  稽查历史
+                </Menu.Item>
+                <Menu.Item
+                  key='0'
                   onClick={() => {
                     setQtForm(data)
                     setScVisible(true)
@@ -89,19 +98,19 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
                 >
                   设置调度
                 </Menu.Item>
-                <Menu.Item key="1">
+                <Menu.Item key='1'>
                   <Popconfirm
-                    title="确定立即稽查吗?"
-                    placement="bottom"
+                    title='确定立即稽查吗?'
+                    placement='bottom'
                     onConfirm={() => handleSetDispatchRightNow(data)}
                   >
                     <a>立即稽查</a>
                   </Popconfirm>
                 </Menu.Item>
-                <Menu.Item key="3">
+                <Menu.Item key='3'>
                   <Popconfirm
-                    title="确定删除?"
-                    placement="bottom"
+                    title='确定删除?'
+                    placement='bottom'
                     onConfirm={() => handleDeleteTask(data.id)}
                   >
                     <a>删除</a>
@@ -112,7 +121,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
           >
             <a>
               {' '}
-              更多 <Icon type="down" />
+              更多 <Icon type='down' />
             </a>
           </Dropdown>
         </>
@@ -125,7 +134,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
     setCfVisible(true)
   }
 
-  const handleDeleteTreeItem = async (c: IClassification) => {
+  const handleDeleteTreeItem = async(c: IClassification) => {
     try {
       setTreeLoading(true)
       const data = await request(`${api.deleteAuditClassification}${c.id}`, {
@@ -160,19 +169,19 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
               setSelectedKey(c.id)
             }}
           >
-            <Icon type="file" />
+            <Icon type='file' />
             {c.name}
           </span>
           <Dropdown
             overlay={() => (
               <Menu>
-                <Menu.Item key="0" onClick={() => handleEditTreeItem(c)}>
+                <Menu.Item key='0' onClick={() => handleEditTreeItem(c)}>
                   编辑
                 </Menu.Item>
-                <Menu.Item key="1">
+                <Menu.Item key='1'>
                   <Popconfirm
-                    title="确定删除?"
-                    placement="bottom"
+                    title='确定删除?'
+                    placement='bottom'
                     onConfirm={() => handleDeleteTreeItem(c)}
                   >
                     <a>删除</a>
@@ -182,35 +191,34 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
             )}
             trigger={['click']}
           >
-            <Icon type="more" />
+            <Icon type='more' />
           </Dropdown>
         </div>
       ))}
     </>
   )
 
-  const handleSetDispatchRightNow = async (data: IQualityTask) => {
+  const handleSetDispatchRightNow = async(data: IQualityTask) => {
     try {
       setTableLoading(true)
       const result = await request(`${api.setDispatchRightNow}${data.id}`, {
         method: 'GET'
+      }).catch((err) => {
+        if (err?.response?.data?.header?.msg) {
+          message.error({ content: err?.response?.data?.header?.msg })
+        }
       })
       // @ts-ignore
-      if (result.header.code === 200) {
+      if (result?.header?.code === 200) {
         message.success({ content: '立即稽核完成' })
-      } else {
-        // @ts-ignore
-        // tslint:disable-next-line:no-unused-expression
-        result?.header?.msg && message.error({ content: result.header.msg })
       }
     } finally {
       setTableLoading(false)
     }
   }
 
-  const handleDispatch = async (form) => {
+  const handleDispatch = async(form) => {
     try {
-      setTableLoading(true)
       setSCLoading(true)
       const result = await request(`${api.setDispatch}${qtForm.id}`, {
         method: 'PUT',
@@ -229,16 +237,16 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
       })
       // @ts-ignore
       if (result.header.code === 200) {
+        setScVisible(false);
         message.success({ content: '设置调度成功' })
         queryQualityTasks()
       }
     } finally {
-      setTableLoading(false)
       setSCLoading(false)
     }
   }
 
-  const queryClassifications = async () => {
+  const queryClassifications = async() => {
     try {
       setTreeLoading(true)
       const data = await request(api.getAuditClassification, { method: 'GET' })
@@ -251,7 +259,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
     }
   }
 
-  const queryQualityTasks = async () => {
+  const queryQualityTasks = async() => {
     try {
       setTableLoading(true)
       const data = await request(`${api.getQualityTask}?pId=${selectedKey}`, {
@@ -264,7 +272,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
     }
   }
 
-  const handleSaveCfForm = async (form: IClassification) => {
+  const handleSaveCfForm = async(form: IClassification) => {
     try {
       setCfLoading(true)
       const url = cfForm.id
@@ -284,7 +292,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
     }
   }
 
-  const handleSaveQtForm = async (view) => {
+  const handleSaveQtForm = async(view) => {
     try {
       setQtLoading(true)
       const url = qtForm?.id
@@ -304,7 +312,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
     }
   }
 
-  const handleDeleteTask = async (id: number) => {
+  const handleDeleteTask = async(id: number) => {
     try {
       setTableLoading(true)
       const data = await request(`${api.deleteQualityTask}${id}`, {
@@ -332,7 +340,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
 
   return (
     <Container>
-      <Helmet title="质量稽核" />
+      <Helmet title='质量稽核' />
       <ContainerBody>
         <Box>
           <Box.Header>
@@ -350,7 +358,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
                       setCfVisible(true)
                     }}
                   >
-                    <Icon type="plus" />
+                    <Icon type='plus' />
                   </div>
                 </div>
                 <div className={styles.treeContent}>
@@ -363,8 +371,8 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
               <div style={{ flex: 1 }}>
                 <div style={{ padding: '0 0 20px' }}>
                   <Button
-                    type="primary"
-                    icon="plus"
+                    type='primary'
+                    icon='plus'
                     onClick={() => {
                       setQtVisible(true)
                       setQtForm(null)
@@ -376,7 +384,7 @@ function DataGovernanceQualityAudit(props: RouteComponentProps) {
                 <Table
                   style={{ flex: 1 }}
                   bordered
-                  rowKey="id"
+                  rowKey='id'
                   loading={tableLoading}
                   dataSource={qualityTasks}
                   columns={tableColumns}