import React, { useRef, useState } from "react"; import type { CurrentUser } from "@/models/user"; import { connect } from "umi"; import type { ConnectState } from "@/models/connect"; import type { ActionType } from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table'; import type { FormInstance } from "antd"; import { handleGetBUSINESSAPPROVALS } from "@/pages/examine/myApproval/service"; import moment from "moment"; import useRequest from "@ahooksjs/use-request"; import { getFieldEnumTree } from "@/services/options"; import { message, Modal, Popconfirm, Space } from "antd"; import ProForm, { ProFormSelect, ProFormTextArea } from "@ant-design/pro-form"; import { handleApproveAccount, handleRejectAccount } from "@/pages/examine/reconciliationApproval/base/service"; import { handleGetGetBUSINESSAPPROVALDetail } from "@/pages/reports/ShopExpenseDetail/service"; import session from "@/utils/session"; import { handleGetBUSINESSAPPROVALDetail } from "../monthSettlement/service"; import { handleGetAPPROVALROUTEList } from "@/pages/Setting/serviceConfig/service"; import { handleGetMonthAccountProinst } from "../examineList/service"; const myApproval: React.FC<{ currentUser?: CurrentUser }> = (props) => { const { currentUser } = props const actionRef = useRef(); const formRef = useRef(); const formDescRef = useRef(); // 业务类型的obj格式 const [serviceTypeObj, setServiceTypeObj] = useState() // 加载业务类型 const { loading: treeLoading, data: treeViews } = useRequest(async () => { const data = await getFieldEnumTree({ FieldExplainField: 'PROCESS_TYPE', sessionName: 'PROCESS_TYPE' }) const list: any = [] if (data && data.length > 0) { data.forEach((item: any) => { const childrenList: any = [] if (item.children && item.children.length > 0) { item.children.forEach((subItem: any) => { childrenList.push({ label: subItem.label, value: subItem.value }) }) } list.push({ label: item.label, value: item.value, disabled: true, children: childrenList }) }) } setServiceTypeObj(list) return list }) const [getType, setGetType] = useState(0) const [proinstRow, setProinstRow] = useState() const [showDescModal, setShowDescModal] = useState(false) const [descText, setDescText] = useState() const PROCESS_TYPETree = session.get('PROCESS_TYPETree') const PROCESS_TYPEObj = session.get('PROCESS_TYPEObj') const columns: any = [ { title: '业务名称', width: 250, ellipsis: true, dataIndex: 'BusinessProcess_Name', hideInSearch: true }, // { // title:'业务类型', // width: 140, // hideInTable: true, // dataIndex:'OPERATION_TYPE', // valueType: 'treeSelect', // fieldProps:{ // treeDefaultExpandAll: true, // }, // // valueEnum: treeViews // request:async ()=>{ // const data = await getFieldEnumTree({ FieldExplainField: 'PROCESS_TYPE', sessionName: 'PROCESS_TYPE' }) // if (data && data.length>0){ // data.forEach((item: any)=>{ // item.disabled = true // }) // } // return data // } // }, { title: '业务类型', width: 140, hideInSearch: true, dataIndex: 'Operation_Type', valueType: 'select', valueEnum: PROCESS_TYPEObj }, { title: '服务区名称', width: 200, ellipsis: true, dataIndex: 'Serverpart_Name', hideInSearch: true }, { title: '经办人', width: 150, dataIndex: 'Staff_Name', hideInSearch: true, ellipsis: true, }, // { // title:'驳回人员', // width: 100, // dataIndex:'REJECTSTAFF_NAME', // hideInSearch: true // }, // { // title:'驳回意见', // width: 200, // ellipsis:true, // dataIndex:'REJECT_INFO', // hideInSearch: true // }, { title: '业务状态', dataIndex: 'BusinessProcess_State', hideInSearch: true, valueType: 'select', width: 150, request: async () => { const req: any = { SearchParameter: { APPROVALROUTE_VALID: 1, OPERATION_TYPES: 11 }, SortStr: 'APPROVALROUTE_STATE asc', PageIndex: 1, PageSize: 999999 } const data = await handleGetAPPROVALROUTEList(req) if (data && data.length > 0) { const list: any = [] data.forEach((item: any) => { list.push({ label: item.APPROVALROUTE_NAME, value: item.APPROVALROUTE_STATE }) }) list.push({ label: '已审结', value: 9000 }) list.push({ label: '已驳回', value: 3000 }) let str: string = '' list.forEach((item: any) => { if (item.value === 3000) { } else { if (str) { str += `,${item.value}` } else { str = item.value } } }) return list } return [] } }, { title: '备注说明', width: 200, ellipsis: true, dataIndex: 'BusinessProcess_Desc', hideInSearch: true }, { title: '累计营业额', width: 120, ellipsis: true, dataIndex: 'REVENUE_AMOUNT', hideInSearch: true, valueType: 'digit' }, { title: '待审核人名称', width: 180, ellipsis: true, dataIndex: 'ApproveStaff_Name', hideInSearch: true }, { title: '业务时间', width: 180, ellipsis: true, dataIndex: 'BusinessProcess_StartDate', hideInSearch: true }, { dataIndex: 'option', title: '操作', width: 120, valueType: 'option', align: 'center', fixed: 'right', hideInSearch: true, render: (_, record) => { return ( { setGetType(1) setProinstRow(record) setShowDescModal(true) }} > 审核 { setGetType(2) setProinstRow(record) setShowDescModal(true) }} > 驳回 ) } } ] // 驳回还是审核 审核1 驳回2 const handleGetToExamine = async (desc: string, target: any, nextPerson: any) => { let req: any = {} let data: any = {} // 审核 if (getType === 1) { req = { businessApprovalID: proinstRow?.BusinessApproval_ID, curProinstState: proinstRow.BusinessProcess_State, approveedInfo: desc, approveedStaffId: currentUser?.ID, approveedStaffName: currentUser?.Name, nextId: nextPerson // targetProinstState: target } data = await handleApproveAccount(req) } else if (getType === 2) { // 驳回 const backObj = JSON.parse(target) req = { businessApprovalID: proinstRow?.BusinessApproval_ID, approveedStaffId: currentUser?.ID, approveedStaffName: currentUser?.Name, approveedInfo: desc, targetProinstState: backObj?.APPROVALROUTE_STATE } data = await handleRejectAccount(req) } if (data.Result_Code === 100) { message.success(data.Result_Desc) } else { message.error(data.Result_Desc) } setShowDescModal(false) actionRef.current?.reload() setGetType(0) formDescRef.current.setFieldsValue({ desc: '' }) } return
{ const req: any = { SearchParameter: { // BusinessProcess_Name: params.BusinessProcess_Name, BusinessProcess_StateSearch: params.BusinessProcess_State || '', Operation_Type: 11 }, keyWord: params.BusinessProcess_Name ? { key: "BusinessProcess_Name", value: params.BusinessProcess_Name } : '', SortStr: "BusinessProcess_StartDate desc", pageindex: 1, pagesize: 999999 } const data = await handleGetMonthAccountProinst(req) if (data && data.length > 0) { return { data, success: true } } return { data: [], success: true } }} pagination={false} scroll={{ x: 1100, y: 'calc(100vh - 500px)' }} /> {/* 审核驳回时输入的 */} { formDescRef.current.validateFields().then(res => { if (res.desc) { // setDescText(res.desc) handleGetToExamine(res.desc, res.targetProinstState, res.APPROVALSTAFF_ID) setDescText('') } }) }} onCancel={() => { formDescRef.current?.resetFields() setShowDescModal(false) setDescText('') }}> { return [] } }} > {/* 要驳回的状态 */} { getType === 2 ? { const req: any = { BUSINESSAPPROVALId: proinstRow?.BusinessApproval_ID } const data = await handleGetGetBUSINESSAPPROVALDetail(req) if (data.rejectList && data.rejectList.length > 0) { const list: any = [] data.rejectList.forEach((item: any) => { list.push({ label: item.APPROVALROUTE_NAME, value: JSON.stringify(item) }) }) return list } }} /> : '' } { getType === 1 && proinstRow?.NextState !== 9000 ? { const req: any = { BUSINESSAPPROVALId: proinstRow?.BusinessApproval_ID } const data = await handleGetGetBUSINESSAPPROVALDetail(req) const list: any = [] if (data.UserList && data.UserList.length > 0) { data.UserList.forEach((item: any) => { if (item.USER_STATUS === 1) { list.push({ label: item.USER_NAME, value: item.USER_ID }) } }) } if (list && list.length > 0 && list.length === 1) { formDescRef.current?.setFieldsValue({ nextPerson: list[0].value }) } return list }} /> : '' } {/*