import React, { Fragment, useRef, useMemo,useEffect,useState } from 'react'; import BasicCrudModal from '../../../../components/crud/BasicCrudModal'; import { Table, Card, Modal, Form, Input, Button, Row,Col, Popconfirm, message, Tabs,Dropdown,Space } from 'antd'; import {FileWordOutlined,FilePdfOutlined,DownOutlined } from '@ant-design/icons'; import { useSelector } from 'react-redux'; import ToolBar from './toolbar'; import ModalForm from './form'; import apiurl from '../../../../service/apiurl'; import usePageTable from '../../../../components/crud/usePageTable2'; import { createCrudService } from '../../../../components/crud/_'; import KhResultModal from './khResultModal'; import PfDetail from "./PfDetail" import { httpget2 } from '../../../../utils/request'; import "./index.less" const Page = () => { const role = useSelector(state => state.auth.role); const qd = role?.rule?.find(item => item.menuName == "清单"); const khLevel = { 1: "优秀", 2: "良好", 3: "合格", } const khStatus = { 0: "未启动", 1: "评分中", 2: "已完成", 9:"评分中" } const expandedRowRender = (record) => { const columns = [ { title: '考核对象', dataIndex: 'objectUserName', key: 'objectUserName', align: "center", width: 200, }, { title: '标准得分', dataIndex: 'standardScore', align:"center", key: 'standardScore', width:200 }, { title: '考核得分', dataIndex: 'assessScore', align:"center", key: 'assessScore', width:200 }, { title: '考核等级', dataIndex: 'assessLevel', align:"center", key: 'assessLevel', width: 200, render: (value) => {khLevel[value]} },{ title: '考核记录状态', dataIndex: 'status', align:"center", key: 'status', width: 200, render: (value) => {khStatus[value]} }, { title: '操作', dataIndex: 'operator', align:"center", key: 'operator', width: 200, render: (value, row) => ( <> {(row.status == 1 || row.status == 9 ) && tabs !=2 ? handlePf(row,record)}>评分 : null} {(row.status == 2 || tabs ==2) ? viewPf(row,record)}>查看评分详情 : null} ) }, ]; return ; }; const taskStatus = { 0: '未启动', 1: '评分中', 2: '审核中', 3: '已审核', 4: '已作废', } const [dropItem, setDropItem] = useState({}) const refModal = useRef(); const [searchVal, setSearchVal] = useState({}) const columns = [ { title: '', key: '', dataIndex: '', width: 0, align: "center" }, { title: '考核任务名称', key: 'taskName', dataIndex: 'taskName', width: 200, }, { title: '考核频次', key: 'taskFreq', dataIndex: 'taskFreq', width: 200, render: (value) => {value == 1? '年度' : value == 2 ? "季度": value == 3 ? "月度" : ''} }, { title: '考核时间', key: 'time', dataIndex: 'time', width: 200, render: (value, record) => {(record?.startDate || record?.startDate?.endDate) ? record?.startDate + '-' + record?.endDate : '' } }, { title: '考核任务状态', key: 'status', dataIndex: 'status', width: 200,align: 'center', render: (value) =>
{taskStatus[value] || ''}
}, {title: '创建人', key: 'createUserName', dataIndex: 'createUserName', width: 100}, { title: '操作', key: 'operation', width: 300,align: 'center', render: (v,r) => ( { tabs == 2 ? <> {r.status == 0 ? command("edit")(r)}>编辑 : null} command("view")(r)}>查看 {r.status == 0 ? command("del")(r)}>删除 : null} {r.status == 0 ? startPf(r)}> : null} {r.status == 1 ? pause(r)}> : null} {r.status == 2 ? <> khResult(r)}>考核结果 pass(r)}> {refuse(r)}}> }, { key: '2', label: {pause(r)}}> , },] }} trigger={['click']} > { e.preventDefault(); setDropItem(r)}}> 更多 : r.status == 3 ? khResult(r)}>考核结果 : null } : command("view")({...r,tabs})}>查看 } ) }, ]; const [tabs, setTabsChange] = useState(0) const width = useMemo(() => columns.reduce((total, cur) => total + (cur.width), 0), [columns]); // 开始评分 const [pfOpen, setPfOpen] = useState(false) const [pfItem, setPfItem] = useState({}) const [pfItem1, setPfItem1] = useState({}) const handlePf = (column,record) => { setPfOpen(true); setPfItem(record); setPfItem1({...column,type:"start"}); } // 启动评分 const startPf = async (params) => { try { const res = await httpget2(apiurl.rcgl.jdkh.khrwgl.start + `/${params.id}`) if (res.code == 200) { message.success('启动成功') refresh() } } catch (error) { console.log(error); } } // 评分详情 const viewPf = (row, record) => { setPfOpen(true); setPfItem({ ...record,view:1 }); setPfItem1({ ...row,view:1,tabs }); } // 作废 const pause = async (params) => { try { const res = await httpget2(apiurl.rcgl.jdkh.khrwgl.pause + `/${params.id}`) if (res.code == 200) { message.success('作废成功') refresh() } } catch (error) { console.log(error); } } // 驳回评分 const refuse = async (params) => { try { const res = await httpget2(apiurl.rcgl.jdkh.khrwgl.refuse + `/${params.id}`) if (res.code == 200) { message.success('驳回评分成功') refresh() } } catch (error) { console.log(error); } } // 审核通过 const pass = async (params) => { try { const res = await httpget2(apiurl.rcgl.jdkh.khrwgl.pass + `/${params.id}`) if (res.code == 200) { message.success('审核通过成功') refresh() } } catch (error) { console.log(error); } } // 考核结果 const [khResultOpen, setKhResultOpen] = useState(false) const [khResultItem, setKhResultItem] = useState({}) const khResult = (row) => { setKhResultOpen(true) setKhResultItem(row) } const command = (type) => (params) => { if (type === 'save') { refModal.current.showSave(); } else if (type === 'edit') { refModal.current.showEdit({ ...params }); } else if (type === 'view') { refModal.current.showView(params); } else if (type === 'del') { refModal.current.onDeleteGet(apiurl.rcgl.jdkh.khrwgl.delete + `/${params.id}`); } } // 任务清单 const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.rcgl.jdkh.khrwgl.taskPage).find_noCode); // 待办 const { tableProps: tableProps1, search: search1,refresh:refresh1 } = usePageTable(createCrudService(apiurl.rcgl.jdkh.khrwgl.todoPage).find_noCode); // 已办 const { tableProps:tableProps2, search:search2,refresh:refresh2 } = usePageTable(createCrudService(apiurl.rcgl.jdkh.khrwgl.myDonePage).find_noCode); /** * @description 处理成功的回调 */ const successCallback = () => { refresh() setTabsChange(2) } //移入某一行禁用 const rowClassName = (record) => { return record.status == 4 ? 'disabled-row' : ''; }; useEffect(() => { const userId = localStorage.getItem("userId"); if (searchVal) { const params = { search: { ...searchVal, userId: tabs != 2 ? userId :undefined } }; if (tabs == 0) { search1(params) } else if (tabs == 1) { search2(params) } else { search(params) } } }, [searchVal,tabs]) return ( <>
setTabsChange(e)} activeKey={tabs} items={[ { label: `我的待办评分任务`, key: 0, children:
}, { label: `我的已办评分任务`, key: 1, children:
}, qd && { label: `考核任务清单`, key: 2, children:
} ]} > {refresh({addvcd:localStorage.getItem('ADCD6')})}} /> {/* 评分弹框 */} setPfOpen(false)} > setPfOpen(false)} tabs={tabs} /> {/* 考核结果 */} setKhResultOpen(false)} > ); } export default Page;