瀏覽代碼

完成条文管理接口联调

code4eat 3 年之前
父節點
當前提交
6e6779522a

+ 8 - 0
config/config.ts

@@ -1,3 +1,11 @@
+/*
+ * @Author: your name
+ * @Date: 2021-09-03 14:28:27
+ * @LastEditTime: 2021-09-16 09:44:48
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /MedicalWisdomCheckSys/config/config.ts
+ */
 // https://umijs.org/config/
 import { defineConfig } from 'umi';
 import { join } from 'path';

+ 1 - 1
config/routes.ts

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-03 14:28:27
- * @LastEditTime: 2021-09-14 10:27:17
+ * @LastEditTime: 2021-09-16 09:58:25
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/config/routes.ts

+ 9 - 3
src/app.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-03 14:28:27
- * @LastEditTime: 2021-09-14 09:40:44
+ * @LastEditTime: 2021-09-16 17:27:02
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/app.tsx
@@ -101,7 +101,8 @@ const authHeaderInterceptor = (url: string, options: RequestOptionsInit) => {
 
 
 const responseInterceptors = async (response: Response, options: RequestOptionsInit) => {
-  console.log({response});
+  console.log({response,options});
+  const requestMethod = options.method;
   try {
     const {status} = response;
     if(status == 200){
@@ -110,10 +111,15 @@ const responseInterceptors = async (response: Response, options: RequestOptionsI
         const { status: dataStatus,errorMessage,data} = _response;
         if(dataStatus == 200){
              //接口请求成功
+             if(requestMethod=='POST'){
+               notification.success({
+                message:'操作成功!'
+               });
+             }
+
              if(data){
               return data;
              }
-             
              return true;
         }else {
              //接口请求不成功

+ 8 - 0
src/components/MccsClickableTabs/README.md

@@ -0,0 +1,8 @@
+<!--
+ * @Author: your name
+ * @Date: 2021-09-16 14:31:38
+ * @LastEditTime: 2021-09-16 14:31:39
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /MedicalWisdomCheckSys/src/components/MccsClickableTabs/README.md
+-->

+ 2 - 2
src/components/MccsClickableTabs/index.less

@@ -5,11 +5,11 @@
     display: flex;
     width: 100%;
     flex-direction: row;
-    justify-content:space-evenly;
+    justify-content:space-around;
     flex-wrap: wrap;
     align-items: center;
     .tab {
-        width: 140px;
+        width:30%;
         height: 28px;
         cursor: pointer;
         text-align: center;

+ 11 - 6
src/components/MccsClickableTabs/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-15 18:38:41
- * @LastEditTime: 2021-09-15 19:20:22
+ * @LastEditTime: 2021-09-16 14:39:10
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/components/MccsClickableTabs/index.tsx
@@ -15,12 +15,13 @@ import './index.less';
 
 const MccsClickableTabs:React.FC<MccsClickableTabs.propsType> = (props)=>{
     const [list,setList] = useState<MccsClickableTabs.TabType[]>([]);
-    const [activedIndex,setActivedIndex] = useState(-1);
-    const {tabClickHandle} = props;
+    const {tabClickHandle,defaultTabValue=-1,onChange} = props;
+    const [activedTab,setActivedTab] = useState(defaultTabValue);
 
-    const clickHandle = (item:MccsClickableTabs.TabType,index:number)=>{
+    const clickHandle = (item:MccsClickableTabs.TabType)=>{
         tabClickHandle&&tabClickHandle(item);
-        setActivedIndex(index);
+        onChange?.(item);  //Form传递过来的onChange,设置表单值
+        setActivedTab(item.value);
     }
 
     useEffect(()=>{
@@ -28,12 +29,16 @@ const MccsClickableTabs:React.FC<MccsClickableTabs.propsType> = (props)=>{
         setList(data);
     },[props]);
 
+    // useEffect(()=>{
+    //     console.log({props});
+    // },[]);
+
     return (
         <div className='wrap'>
                 {
                    list.map((item,index)=>{
                         return (
-                            <div className={activedIndex==index?'tab on':'tab'} key={index} onClick={()=>clickHandle(item,index)}>{item.label}</div>
+                            <div className={activedTab==item.value?'tab on':'tab'} key={index} onClick={()=>clickHandle(item)}>{item.label}</div>
                         )
                    })
                 }

+ 3 - 1
src/components/MccsClickableTabs/typings.d.ts

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-15 18:39:49
- * @LastEditTime: 2021-09-15 19:03:12
+ * @LastEditTime: 2021-09-16 14:36:05
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/components/MccsClickableTabs/typings.d.ts
@@ -11,6 +11,8 @@
 declare namespace MccsClickableTabs {
       type propsType = {
         data:TabType[],
+        defaultTabValue?:number|string,
+        onChange?:(value:TabType)=>void,
         tabClickHandle?:(data:TabType)=>{}
       }
 

+ 1 - 1
src/components/MccsDrawerForm/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-15 16:25:53
- * @LastEditTime: 2021-09-15 16:59:06
+ * @LastEditTime: 2021-09-16 14:20:12
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/components/MccsDrawerForm/index.tsx

+ 54 - 54
src/components/MccsRecordList/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-15 09:17:28
- * @LastEditTime: 2021-09-15 19:16:17
+ * @LastEditTime: 2021-09-16 15:17:37
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/components/MccsRecordList/index.tsx
@@ -41,59 +41,59 @@ const MccsRecordList: React.FC<MccsRecordList.propsType> = (props) => {
 
 
     useEffect(() => {
-        // if (list) {
-        //     setData(list);
-        // }
-        setData([
-            {
-                evaluation: 'C',
-                details: [
-                    {
-                        name: '张三',
-                        fileName: '文件名',
-                        fileUrl: '',
-                        createTime: '2021-05-02 18:27',
-                        recordTypeName: '自查',
-                        historyRecords: [
-                            {
-                                versionName: '当前版本',
-                                name: '麻子',
-                                time: '2021-05-02 18:27',
-                            }
-                        ]
-                    },
-                    {
-                        name: '张三',
-                        fileName: '文件名',
-                        fileUrl: '',
-                        createTime: '2021-05-02 18:27',
-                        recordTypeName: '自查',
-                        historyRecords: []
-                    }
-                ]
-            },
-            {
-                evaluation: 'C',
-                details: [
-                    {
-                        name: '张三',
-                        fileName: '文件名',
-                        fileUrl: '',
-                        createTime: '2021-05-02 18:27',
-                        recordTypeName: '自查',
-                        historyRecords: []
-                    },
-                    {
-                        name: '张三',
-                        fileName: '文件名',
-                        fileUrl: '',
-                        createTime: '2021-05-02 18:27',
-                        recordTypeName: '自查',
-                        historyRecords: []
-                    }
-                ]
-            }
-        ])
+        if (list) {
+            setData(list);
+        }
+        // setData([
+        //     {
+        //         evaluation: 'C',
+        //         details: [
+        //             {
+        //                 name: '张三',
+        //                 fileName: '文件名',
+        //                 fileUrl: '',
+        //                 createTime: '2021-05-02 18:27',
+        //                 recordTypeName: '自查',
+        //                 historyRecords: [
+        //                     {
+        //                         versionName: '当前版本',
+        //                         name: '麻子',
+        //                         time: '2021-05-02 18:27',
+        //                     }
+        //                 ]
+        //             },
+        //             {
+        //                 name: '张三',
+        //                 fileName: '文件名',
+        //                 fileUrl: '',
+        //                 createTime: '2021-05-02 18:27',
+        //                 recordTypeName: '自查',
+        //                 historyRecords: []
+        //             }
+        //         ]
+        //     },
+        //     {
+        //         evaluation: 'C',
+        //         details: [
+        //             {
+        //                 name: '张三',
+        //                 fileName: '文件名',
+        //                 fileUrl: '',
+        //                 createTime: '2021-05-02 18:27',
+        //                 recordTypeName: '自查',
+        //                 historyRecords: []
+        //             },
+        //             {
+        //                 name: '张三',
+        //                 fileName: '文件名',
+        //                 fileUrl: '',
+        //                 createTime: '2021-05-02 18:27',
+        //                 recordTypeName: '自查',
+        //                 historyRecords: []
+        //             }
+        //         ]
+        //     }
+        // ])
     }, [props]);
 
     return (

+ 3 - 4
src/components/MccsTable/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-14 11:14:06
- * @LastEditTime: 2021-09-14 17:34:00
+ * @LastEditTime: 2021-09-16 10:36:19
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/components/MccsTable/index.tsx
@@ -9,9 +9,8 @@
 
 
 import React,{useImperativeHandle,useRef} from 'react'
-import { Button, Tag, Space, Menu, Dropdown } from 'antd';
-import ProTable, { TableDropdown } from '@ant-design/pro-table';
-import type { ProColumns, ActionType } from '@ant-design/pro-table';
+import ProTable, {  } from '@ant-design/pro-table';
+import type { ActionType } from '@ant-design/pro-table';
 import type { ProFormInstance } from '@ant-design/pro-form';
 
 import './index.less';

+ 74 - 39
src/pages/GradeHospitalAccreditation/articleManagement/index.tsx

@@ -1,14 +1,14 @@
 /*
  * @Author: your name
  * @Date: 2021-09-14 10:22:09
- * @LastEditTime: 2021-09-15 19:12:17
+ * @LastEditTime: 2021-09-16 17:52:55
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/articleManagement/index.tsx
  */
 
 
-import React, { Key, useRef, useState } from 'react'
+import React, {useRef,useEffect } from 'react'
 import MccsPageContainer from '@/components/MccsPageContainer/index'
 import MccsProCard from '@/components/MccsProCard/index';
 import { useModel } from 'umi';
@@ -20,7 +20,7 @@ import MccsDrawerForm from '@/components/MccsDrawerForm/index';
 import MccsClickableTabs from '@/components/MccsClickableTabs/index';
 
 
-import { Form, Table, Space, Row, Col } from 'antd'
+import { Form, Table, Space, Row, Col, Button } from 'antd'
 import {
     ProFormText,
     ProFormSelect,
@@ -105,7 +105,6 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
 
     const { articleManagement } = useModel('allModels');
     const {
-        getTreeData,
         isLeaf,
         treeData,
         getTableData,
@@ -113,14 +112,12 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
         setCurrentActivedTree,
         scoreList,
         getDepartmentRequest,
-        departmentManagers, 
+        departmentManagers,
         getDepartment,//获取责任单位
-        getManagers,  //获取责任人
         ...restModelData
     } = articleManagement();
     const tableRef = useRef<MccsTable.MccsTableRef>();
-    const [drawerVisible, setDrawerVisible] = useState(false);
-
+    const btnRef = useRef<HTMLButtonElement>();  //取消批量按钮
 
 
     const onSelectHandle = (data: MccsFileTree.childTree) => {
@@ -130,54 +127,74 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
         tableRef?.current?.getTableRef().current?.reload();
     }
 
-    const batchSelfAssessment = (selectedRowKeys: Key[]) => {
-        //批量设置目标
+    const batchSelfAssessment = (rowkeys:number[]|string[]) => {
+        //批量设置
+     
+        restModelData.setDrawerFormType('BATCHSETTING');
+        restModelData.setSelectedRowKeys(rowkeys);
+        restModelData.setDrawerVisible(true);
     }
 
     const articleSetBtnHandle = () => {
         //条文设置
-        setDrawerVisible(true);
+        restModelData.setDrawerVisible(true);
+        
     }
 
     const onVisibleChangeHandle = (visible: boolean) => {
-        setDrawerVisible(visible);
+        restModelData.setDrawerVisible(visible);
     }
 
+    useEffect(() => {
+    
+        if(restModelData.reloadRightContent){
+              //重新获取数据
+           tableRef?.current?.getTableRef().current?.reload();
+           tableRef?.current?.getTableRef().current?.clearSelected();
+        }
+    }, [restModelData]);
+
+  
+
     return (
         <MccsPageContainer>
             <MccsDrawerForm
-                title='条文设置'
-                width={600}
-                visible={drawerVisible}
+                title={restModelData.drawerFormType=='ARTICLE_SET'?'条文设置':'批量设置'}
+                width={500}
+                visible={restModelData.drawerVisible}
+
+                onFinish={(values: any) => restModelData.drawerFormType=='ARTICLE_SET'?restModelData.setArticle(values):restModelData.batchSetting(values)}
                 onVisibleChange={onVisibleChangeHandle}
             >
                 <div className='formItemTitle'>负责人及单位</div>
                 <Row gutter={16}>
                     <Col className="gutter-row" span={8}>
                         <ProFormSelect
-                            name="responsibilityDepartmentId"
+                            name="responsibilityDepartment"
                             width='sm'
                             request={getDepartmentRequest}
                             placeholder="选择单位"
                             fieldProps={{
-                                onChange:(value,option)=>getDepartment(value,option)
+                                labelInValue: true,
+                                onChange: (value, option) => getDepartment(value, option)
                             }}
                             rules={[{ required: true, message: '请选择单位!' }]}
                         />
                     </Col>
 
                     <Col className="gutter-row" span={8}>
-                        <ProFormDependency name={['responsibilityDepartmentId']}>
-                            {({ responsibilityDepartmentId }) => {
+                        <ProFormDependency name={['responsibilityDepartment']}>
+                            {({ responsibilityDepartment }) => {
                                 return (
                                     <ProFormSelect
-                                        name="select2"
+                                        name="responsibilityUser"
                                         width='sm'
-                                        disabled={!responsibilityDepartmentId}
+                                        disabled={!responsibilityDepartment}
                                         options={departmentManagers}
                                         placeholder="选择负责人"
                                         fieldProps={{
-                                            onChange:(value,option)=>getManagers(value,option)
+                                            labelInValue: true,
+                                            // onChange:(value,option)=>getManagers(value,option)
                                         }}
                                         rules={[{ required: true, message: '请选择负责人!' }]}
                                     />
@@ -187,24 +204,39 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
                     </Col>
                 </Row>
                 <div className='formItemTitle'>目标分数</div>
-                <Row>
-                    <MccsClickableTabs 
-                        data={restModelData.targetScores}
-                    />
-                </Row>
-                <div className='formItemTitle'>条文组别</div>
-                <Row>
-                    <MccsClickableTabs 
-                        data={restModelData.ruleTypes}
-                    />
+                <Row >
+                    <Col span={24}>
+                        <Form.Item name='targetScores'>
+                            <MccsClickableTabs
+                                data={restModelData.targetScores}
+                            />
+                        </Form.Item>
+                    </Col>
                 </Row>
+                {
+                    true && (
+                        <>
+                            <div className='formItemTitle'>条文组别</div>
+                            <Row>
+                                <Col span={24}>
+                                    <Form.Item name='articleType'>
+                                        <MccsClickableTabs
+                                            data={restModelData.ruleTypes}
+                                        />
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                        </>
+                    )
+                }
+
             </MccsDrawerForm>
 
             <MccsProCard gutter={16} ghost direction='row'>
                 <MccsProCard colSpan={6} style={{ height: '78vh' }} bodyStyle={{ padding: '16px' }}>
                     <MccsFileTree
                         treeData={treeData}
-                        // defaultSelected={'0-0'}
+                        defaultSelected={'9'}
                         onSelectHandle={onSelectHandle}
                         // actionHandle={actionHandle}
                         // searchHandle={searchHandle}
@@ -223,10 +255,12 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
                                     // 注释该行则默认不显示下拉选项
                                     selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT],
                                 }}
-                                tableAlertOptionRender={(selectedRowKeys: Key[], selectedRows: SelectedRowsType[]) => {
+                                rowKey="id"
+                                tableAlertOptionRender={({selectedRowKeys, selectedRows,onCleanSelected}:{selectedRowKeys:number[]|string[],selectedRows:SelectedRowsType[],onCleanSelected:()=>void}) => {
                                     return (
                                         <Space size={16}>
-                                            <a onClick={() => batchSelfAssessment(selectedRowKeys)}>批量自评</a>
+                                            <Button type='primary' onClick={() => batchSelfAssessment(selectedRowKeys)}>批量设置</Button>
+                                            <Button  type='ghost' onClick={onCleanSelected}>取消选择</Button>
                                         </Space>
                                     );
                                 }}
@@ -241,16 +275,17 @@ const ArticleManagement: React.FC<ArticleManagementProps> = (props) => {
                                 <div className='leafContentTitle'>{currentActivedTree ? currentActivedTree.title : ''}</div>
                                 <div className='peopleGroup'>
                                     <span>条文组别:</span>
-                                    <span>管理</span>
+                                    <span>{restModelData.leafData?.articleType}</span>
                                     <span>负责单位:</span>
-                                    <span>医务部</span>
-                                    <span>负责:</span>
-                                    <span>张国栋</span>
+                                    <span>{restModelData.leafData?.responsibilityDepartmentName}</span>
+                                    <span>负责:</span>
+                                    <span>{restModelData.leafData?.responsibilityUserName}</span>
                                 </div>
                                 <MccsScoreBanner list={scoreList} />
                                 <div className='articleSetBtn'><span onClick={articleSetBtnHandle}>条文设置</span></div>
                                 <MccsRecordList
                                     title='台账记录'
+                                    list={[]}
                                 />
                             </div>
                         )

+ 150 - 46
src/pages/GradeHospitalAccreditation/articleManagement/model.ts

@@ -1,20 +1,25 @@
 /*
  * @Author: your name
  * @Date: 2021-09-14 10:46:45
- * @LastEditTime: 2021-09-15 19:21:11
+ * @LastEditTime: 2021-09-16 17:49:53
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/articleManagement/model.ts
  */
 
-import { useState, useEffect } from 'react';
-import { getTreeList } from '@/pages/GradeHospitalAccreditation/accreditationDetail/service';
-import { getTreeFileTableData,getDepartmentList } from './server';
+import { useState, useEffect,Key } from 'react';
+import { getTreeFileTableData,getDepartmentList,settingArticle,batchSettingArticle } from './server';
+import {getTreeList} from '@/pages/GradeHospitalAccreditation/accreditationDetail/service';
+
+
+
+
+
 
 //articleManagement
 const articleManagement = () => {
   const [treeData, setTreeData] = useState([]);
-  const [tableData, setTableData] = useState([]);
+  // const [tableData, setTableData] = useState([]);
   const [currentActivedTree, setCurrentActivedTree] = useState<MccsFileTree.childTree>();
   const [isLeaf, setIsLeaf] = useState(false);
   const [scoreList, setScoreList] = useState<any[]>([]);
@@ -23,36 +28,51 @@ const articleManagement = () => {
   const [selectedDepartment,setSelectedDepartment] = useState<any>();
   const [targetScores,setTargetScores] = useState<MccsClickableTabs.TabType[]>([]);
   const [ruleTypes,setRuleTypes] = useState<MccsClickableTabs.TabType[]>([]);
+  const [records,setRecords]=useState<MccsRecordList.MccsRecordListType>();
+
+  const [selectedRowKeys,setSelectedRowKeys] = useState<number[]|string[]>([]);
 
-  const getTreeData = async (keyword?: string | number) => {
-    const { list = [] } = await getTreeList(keyword);
+  const [drawerVisible, setDrawerVisible] = useState(false);
+  const [drawerFormType,setDrawerFormType] = useState<'ARTICLE_SET'|'BATCHSETTING'>('ARTICLE_SET');  
 
-    setTreeData(list);
+  const [reloadRightContent,setReloadRightContent] = useState(false);
+
+  const getArticleTreeData = async (keyword?:string|number) => {
+        //获取树数据
+        const { list = [] } = await getTreeList(keyword);
+        setTreeData(list);
   };
 
-  const getTableData = async (params: any, sorter?: any, filter?: any) => {
-    const resp = await getTreeFileTableData({
-      ...params,
-      id: currentActivedTree ? currentActivedTree.id : 0,
-    });
-
-    if (resp) {
-      const {
-        page: { list = [] },
-        leafData,
-        ifLeaf,
-      } = resp;
-      if (!ifLeaf) {
-        return {
-          data: list,
-          success: true,
-        };
-      }
-      if (ifLeaf && leafData) {
-        setLeafData(leafData);
+  const getTableData = async (params?: any, sorter?: any, filter?: any) => {
+    //根据选中树结构的id获取对应的详情
+    if (currentActivedTree) {
+      const resp = await getTreeFileTableData({
+        ...params,
+        id: currentActivedTree ? currentActivedTree.id : 0,
+      });
+  
+      if (resp) {
+        const {
+          page,
+          leafData,
+          isLeaf,
+        } = resp;
+
+        if (!isLeaf&&page) {
+          //非叶子结点返回table数据
+          const { list = [] } = page;
+          return {
+            data: list,
+            success: true,
+          };
+        }
+
+        if (isLeaf && leafData) {
+          setLeafData(leafData);
+        }
       }
+      return [];
     }
-    return [];
   };
 
 
@@ -69,14 +89,69 @@ const articleManagement = () => {
     
   }
 
-  const getManagers = (value:any,option:any)=>{
-      //获取责任人
+  type FormValueType = {
+    articleType:{label:string,value:string},
+    responsibilityDepartment:{label:string,value:number,[key:string]:any},
+    responsibilityUser:{label:string,value:number,[key:string]:any},
+    targetScores:{label:string,value:string},
+  }
+
+  const batchSetting = async (values:FormValueType)=>{
+      //批量设置
+      const resp = await batchSettingArticle({
+        ruleIds:selectedRowKeys,
+        responsibilityDepartmentId:values.responsibilityDepartment.value,
+        responsibilityDepartmentName:values.responsibilityDepartment.label,
+        responsibilityUserId:values.responsibilityUser.value,
+        responsibilityUserName:values.responsibilityUser.label,
+        targetEvaluation:values.targetScores.value,
+        articleType:values.articleType.value
+      });
+
+      if(resp){
+          //重新刷新表格
+          setReloadRightContent(true);
+          return true;
+      }
+    
+  }
+
+
+  
+
+  const setArticle = async (values:FormValueType)=>{
+    //条文设置
+    //  console.log({values});
+     const {} = values;
+     
+    if(currentActivedTree&&leafData){
+      const { id:ruleId } = currentActivedTree;
+      const {id} = leafData;
+
+      let paramsData = {
+        id,
+        ruleId:Number(ruleId),
+        responsibilityDepartmentId:values.responsibilityDepartment.value,
+        responsibilityDepartmentName:values.responsibilityDepartment.label,
+        responsibilityUserId:values.responsibilityUser.value,
+        responsibilityUserName:values.responsibilityUser.label,
+        targetEvaluation:values.targetScores.value,
+        articleType:values.articleType.value
+      }
+      const resp = await settingArticle(paramsData);
+      if(resp){
+        //更新界面信息
+        getTableData();
+        return true;
+      }
+    }
   }
 
-  const getDepartment  = async (value:any,option:any)=>{
+  const getDepartment  = async (item:any,option:any)=>{
     //获取责任单位
     setSelectedDepartment(option);
-    const resp =  await getDepartmentList({'responsibilityDepartmentId':value});
+
+    const resp =  await getDepartmentList({'responsibilityDepartmentId':item.value});
     if(resp){
          const {list=[]} = resp;
          const tempPeople =  list.map((item:any)=>({
@@ -89,11 +164,9 @@ const articleManagement = () => {
 
   useEffect(() => {
     if (currentActivedTree) {
-      const { isLeaf, id } = currentActivedTree;
+      const { isLeaf} = currentActivedTree;
       setIsLeaf(isLeaf);
-      if (isLeaf) {
-        getTableData({ id });
-      }
+      getTableData();
     }
     setTargetScores([
         {
@@ -103,6 +176,10 @@ const articleManagement = () => {
         {
             label:'B',
             value:'B'
+        },
+        {
+          label:'C',
+          value:'C'
         }
     ]);
     setRuleTypes([
@@ -123,48 +200,75 @@ const articleManagement = () => {
 
   useEffect(() => {
     if (leafData) {
-      const { systemEvaluation, targetEvaluation, selfEvaluation, siteEvaluation } = leafData;
+      const { systemEvaluation, targetEvaluation, selfEvaluation, siteEvaluation,records=[] } = leafData;
       const tempScoreList = [
         {
           label: '自评',
-          value: selfEvaluation,
+          value: selfEvaluation?selfEvaluation:'-',
         },
         {
           label: '现场查核',
-          value: siteEvaluation,
+          value: siteEvaluation?siteEvaluation:'-',
         },
         {
           label: '目标',
-          value: targetEvaluation,
+          value: targetEvaluation?targetEvaluation:'-',
         },
         {
           label: '系统评分',
-          value: systemEvaluation,
+          value: systemEvaluation?systemEvaluation:'-',
         },
       ];
+      // console.log({tempScoreList});
+      
+      const tempRecords = records.map((item:API.RecordsItemType)=>{
+        
+         const tempArr = item.details.map(val=>({
+          name:val.userName,
+          fileName:val.fileName,
+          fileUrl:val.fileUrl,
+          createTime:val.createTime,
+          recordTypeName:val.recordTypeName,
+          historyRecords:[]
+         }))
+         return {
+          evaluation:item.evaluation,
+          details:tempArr
+         }
+      });
+      
       setScoreList(tempScoreList);
+      setRecords(tempRecords);
     }
   }, [leafData]);
 
   useEffect(() => {
-    getTreeData();
+    getArticleTreeData();
   }, []);
 
   return {
     isLeaf,
     treeData,
     setTreeData,
-    getTreeData,
+    getArticleTreeData,
     getTableData,
     currentActivedTree,
     setCurrentActivedTree,
     scoreList, //评分
     getDepartmentRequest,
     departmentManagers,
-    getManagers,
     getDepartment,
     targetScores,
-    ruleTypes
+    ruleTypes,
+    leafData,
+    setArticle,
+    batchSetting,
+    drawerFormType,
+    setDrawerFormType,
+    drawerVisible,
+    setDrawerVisible,
+    setSelectedRowKeys,
+    reloadRightContent
   };
 };
 

+ 26 - 13
src/pages/GradeHospitalAccreditation/articleManagement/server.ts

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-09-14 10:22:20
- * @LastEditTime: 2021-09-15 18:11:36
+ * @LastEditTime: 2021-09-16 17:08:15
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/articleManagement/server.ts
@@ -14,28 +14,19 @@ import { request } from 'umi';
 
 
 
-//获取树结构
-export const getTreeList  = (keyword?:string|number)=>{
-  
-    return request('/api/pfm/reviewRules/getAllTree', {
-        method: 'GET',
-        params:{keyword}
-    });
-
-}
 
 //获取条文表格数据
-export const getTreeFileTableData  = (id:string|number,keyword?:string|number)=>{
+export const getTreeFileTableData  = async (query:{id:string|number,keyword?:string|number})=>{
   
     return request('/api/pfm/reviewArticle/list', {
         method: 'GET',
-        params:{keyword,id}
+        params:{...query}
     });
 
 }
 
 //获取单位列表
-export const getDepartmentList  = (query?:{responsibilityDepartmentId?:number,responsibilityUserId?:number})=>{
+export const getDepartmentList  = async (query?:{responsibilityDepartmentId?:number,responsibilityUserId?:number})=>{
   
     return request('/api/pfm/sysdepartment/getSysDepartmentList', {
         method: 'GET',
@@ -44,6 +35,28 @@ export const getDepartmentList  = (query?:{responsibilityDepartmentId?:number,re
 
 }
 
+//条文设置
+
+export const settingArticle  = async (data:API.settingArticlePostDataType)=>{
+  
+    return request('/api/pfm/reviewArticle/setArticle', {
+        method: 'POST',
+        data:{...data}
+    });
+
+}
+
+//条文批量设置
+
+export const batchSettingArticle  = async (data:API.batchSettingArticleType)=>{
+  
+    return request('/api/pfm/reviewArticle/setTargetEvaluation', {
+        method: 'POST',
+        data:{...data}
+    });
+
+}
+
 
 
 

+ 40 - 3
src/pages/GradeHospitalAccreditation/articleManagement/typings.d.ts

@@ -1,25 +1,62 @@
 /*
  * @Author: your name
  * @Date: 2021-09-14 10:22:42
- * @LastEditTime: 2021-09-14 19:20:29
+ * @LastEditTime: 2021-09-16 17:17:48
  * @LastEditors: Please set LastEditors
  * @Description: In User Settings Edit
  * @FilePath: /MedicalWisdomCheckSys/src/pages/GradeHospitalAccreditation/articleManagement/typings.d.ts
  */
 
 
+
+
 declare namespace API {
 
+     type RecordsItemType = {
+      evaluation:string,
+      details:{
+         userName:string,
+         fileName:string,
+         fileUrl:string,
+         createTime:string,
+         recordTypeName:string
+      }[]
+     }
+
      type LeafDataType = {
         id:number,	
         numStr:string,	
         name:string,	
+        articleType:string,
         responsibilityDepartmentName:number,	
         responsibilityUserName:string,
         selfEvaluation:string,	
         targetEvaluation:string,
         systemEvaluation:string,
-        siteEvaluation:string
+        siteEvaluation:string,
+        records?:RecordsItemType[]
+     }
+
+
+     type settingArticlePostDataType = {
+      id:number,  // maybe 0
+      ruleId:number,
+      responsibilityDepartmentId:number,
+      responsibilityDepartmentName:string,
+      responsibilityUserId:number,
+      responsibilityUserName:string,
+      targetEvaluation:string,
+      articleType:string
      }
-     
+
+     type batchSettingArticleType = {
+      ruleIds:number[]|string[]|[],
+      responsibilityDepartmentId:number,
+      responsibilityDepartmentName:string,
+      responsibilityUserId:number,
+      responsibilityUserName:string,
+      targetEvaluation:string,
+      articleType:string
+     }
+
 }