import Authorization from '@/components/Authorization' import FileModal from '@/components/FileModal' import Header from '@/components/Header' import Slot from '@/components/Header/slot' import RuleModal from '@/components/RuleModal' import SvgIcon from '@/components/SvgIcon' import { tenderStore } from '@/store/mobx' import { iFileModal } from '@/types/file' import { iCreateSafe } from '@/types/safe' import { safeStatus } from '@/utils/common/constStatus' import consts from '@/utils/consts' import { dayjsFormat } from '@/utils/util' import { Button, message, Table } from 'antd' import { ColumnsType } from 'antd/lib/table' import React, { useEffect, useState } from 'react' import { Link } from 'react-router-dom' import { apiCreateQuality, apiQualityList, apiSaveRule } from './api' import AddModel from './modal' interface iQualityList { id: string code: string createTime: string position: string inspection: string inspectionDetail: string demand: string status: number auditName: string fileCounts: number } interface iModal { visible: boolean loading: boolean } const QualityList: React.FC<{}> = () => { const [ ruleModal, setRuleModal ] = useState({ visible: false, loading: false }) const [ addModal, setAddModal ] = useState({ visible: false, loading: false }) const [ fileModal, setFileModal ] = useState({ visible: false, dataType: consts.DATA_TYPE.QUALITY, dataId: '' }) useEffect(() => { initData() }, []) const columns: ColumnsType = [ { title: '序号', // eslint-disable-next-line react/display-name render: (_: string, record: any, i: number) => { return {i + 1} } }, { title: '编号', dataIndex: 'code', // eslint-disable-next-line react/display-name render: (text: string, record) => { return {text} } }, { title: '检查项目', dataIndex: 'inspection' }, { title: '现场检查情况', dataIndex: 'inspection_detail' }, { title: '处理要求及措施', dataIndex: 'demand' }, { title: '检查日期', dataIndex: 'create_time', // eslint-disable-next-line react/display-name render: (text: string) => { return {dayjsFormat(text, 'YYYY-MM-DD')} } }, { title: '检查人', dataIndex: 'auditName' }, { title: '附件', dataIndex: 'fileCounts', // eslint-disable-next-line react/display-name render: (text: string, record) => { return ( setFileModal({ ...fileModal, dataId: record.id, visible: true })}> {text} ) } }, { title: '状态', dataIndex: 'status', // eslint-disable-next-line react/display-name render: (statu: number) => { return {safeStatus[statu].text} } } ] const [ qualityList, setQualityList ] = useState([]) const [ total, setTotal ] = useState(0) const initData = (pageNo: number = 1, pageSize: number = consts.PAGE_SIZE) => { apiQualityList(tenderStore.bid, pageNo, pageSize) .then(({ code = -1, data = [], total = 0 }) => { if (code === consts.RET_CODE.SUCCESS) { setQualityList(data) setTotal(total) } }) .catch(err => { console.log(err) }) } const onRuleCreate = async (ruleValue: any) => { setRuleModal({ ...ruleModal, loading: true }) const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bid, type: 'quality_rule', rule: ruleValue }) if (code === consts.RET_CODE.SUCCESS) { message.success('规则更改成功!') initData() } setRuleModal({ ...ruleModal, loading: false, visible: false }) } const onAddCreate = async (payload: iCreateSafe) => { setAddModal({ ...addModal, loading: true }) const createTime = dayjsFormat(payload.createTime) const { code = -1 } = await apiCreateQuality({ ...payload, createTime }) if (code === consts.RET_CODE.SUCCESS) { initData() } setAddModal({ ...addModal, loading: false, visible: false }) } return (
{!qualityList.length ? ( ) : null}
initData(page, pageSize), total }} rowKey={record => record.id} bordered>
setRuleModal({ ...ruleModal, visible: false })}> setAddModal({ ...addModal, visible: false })}> setFileModal({ ...fileModal, visible: false })}>
) } export default QualityList