229 lines
8.1 KiB
TypeScript
229 lines
8.1 KiB
TypeScript
// 商品审批流程
|
|
import { connect } from "umi";
|
|
import type { CurrentUser } from "umi";
|
|
import type { ConnectState } from "@/models/connect";
|
|
import React, { useEffect, useRef, useState } from "react";
|
|
import ProCard from "@ant-design/pro-card";
|
|
import { MenuFoldOutlined } from "@ant-design/icons";
|
|
import type { FormInstance } from "antd";
|
|
import { Button, message, Space, Spin, Tree } from "antd";
|
|
import useRequest from "@ahooksjs/use-request";
|
|
import { getServerpartTree } from "@/services/options";
|
|
import type { ActionType } from "@ant-design/pro-table";
|
|
import ProTable from "@ant-design/pro-table";
|
|
import ReactHTMLTableToExcel from "react-html-table-to-excel";
|
|
import LeftSelectTree from "@/pages/reports/settlementAccount/component/leftSelectTree";
|
|
import PageTitleBox from "@/components/PageTitleBox";
|
|
import { handleGetExamineList } from "@/pages/examine/examineList/service";
|
|
import { handleGetAPPROVALROUTEList } from "@/pages/Setting/serviceConfig/service";
|
|
|
|
|
|
const ProductApprovalProcess: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|
const { currentUser } = props
|
|
const actionRef = useRef<ActionType>();
|
|
const formRef = useRef<FormInstance>();
|
|
const [reqDetailList, setReqDetailList] = useState<any>(); // 合计项数据源
|
|
const [printOut, setPrintOut] = useState<any>(); // 打印数据的内容
|
|
// 审批类型数据
|
|
const [searchTypeData, setSearchTypeData] = useState<any>()
|
|
// 当前业务审批的枚举
|
|
const [currentExamine, setCurrentExamine] = useState<any>()
|
|
// 判断当前用户是否有发起按钮
|
|
const [currentShowInitiate, setCurrentShowInitiate] = useState<boolean>(false)
|
|
|
|
useEffect(async () => {
|
|
await handleChangeType("6-100100")
|
|
}, [])
|
|
|
|
const columns: any = [
|
|
{
|
|
dataIndex: 'searchType',
|
|
title: '审批类型',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInTable: true,
|
|
valueEnum: {
|
|
"0": "全部",
|
|
"6-100100": "新增商品流程",
|
|
"6-100200": "商品调价流程",
|
|
"6-100210": "信息修改流程"
|
|
},
|
|
initialValue: "6-100100",
|
|
},
|
|
{
|
|
dataIndex: 'BusinessProcess_StateSearch',
|
|
title: '流程状态',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInTable: true,
|
|
valueEnum: {
|
|
"0": "全部",
|
|
"2000": "待审核",
|
|
"2010,2020,2030,2040,2050,2060,2070,2080,2090": "审核中",
|
|
"9000": "已审结"
|
|
},
|
|
},
|
|
{
|
|
dataIndex: 'BusinessProcess_Name',
|
|
title: '业务名称',
|
|
width: 300,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'Serverpart_Name',
|
|
title: '服务区名称',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'ServerpartShop_Name',
|
|
title: '门店名称',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'ApproveStaff_Name',
|
|
title: '待审核人',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'BusinessProcess_StateText',
|
|
title: '待审核环节',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'Accept_Code',
|
|
title: '业务类别',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'BusinessProcess_EndDate',
|
|
title: '办结时间',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
{
|
|
dataIndex: 'BusinessProcess_StartDate',
|
|
title: '流程开始',
|
|
width: 200,
|
|
ellipsis: true,
|
|
align: 'center',
|
|
hideInSearch: true,
|
|
},
|
|
]
|
|
|
|
// 修改审批类型
|
|
const handleChangeType = async (type: string) => {
|
|
// 查出当前类型里面的流程数据
|
|
const reqState: any = {
|
|
SearchParameter: {
|
|
APPROVALROUTE_STATES: "",
|
|
APPROVALROUTE_VALID: 1,
|
|
OPERATION_TYPES: type
|
|
},
|
|
PageIndex: 1,
|
|
PageSize: 999999
|
|
}
|
|
const dataState = await handleGetAPPROVALROUTEList(reqState)
|
|
console.log('fdsjkafjslk', dataState);
|
|
setSearchTypeData(dataState)
|
|
|
|
// 业务状态的枚举
|
|
let statusObj: any = {}
|
|
if (dataState && dataState.length > 0) {
|
|
dataState.forEach((item: any) => {
|
|
statusObj[item.APPROVALROUTE_STATE] = item.APPROVALROUTE_NAME
|
|
})
|
|
}
|
|
setCurrentExamine(statusObj)
|
|
}
|
|
|
|
return (
|
|
<div ref={(el) => {
|
|
// 打印报表
|
|
if (!reqDetailList || reqDetailList.length === 0) return;
|
|
setPrintOut(el);
|
|
}} >
|
|
|
|
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
|
<div style={{
|
|
width: "100%",
|
|
paddingTop: 0,
|
|
paddingBottom: 0,
|
|
paddingRight: 0
|
|
}}>
|
|
<ProTable
|
|
actionRef={actionRef}
|
|
formRef={formRef}
|
|
columns={columns}
|
|
bordered
|
|
expandable={{
|
|
expandRowByClick: true
|
|
}}
|
|
scroll={{ x: "100%", y: "calc(100vh - 410px)" }}
|
|
headerTitle={<PageTitleBox props={props} />} // 列表表头
|
|
search={{ span: 6 }}
|
|
request={async (params) => {
|
|
|
|
const req: any = {
|
|
QueryType: 0,
|
|
SearchParameter: {
|
|
Operation_Type: 6,
|
|
Accept_Code: params?.searchType === "0" ? '' : params?.searchType,
|
|
BusinessProcess_StateSearch: params?.BusinessProcess_StateSearch === 0 ? '' : params?.BusinessProcess_StateSearch
|
|
},
|
|
PageIndex: 1,
|
|
PageSize: 999999
|
|
}
|
|
const data = await handleGetExamineList(req)
|
|
console.log('data', data)
|
|
if (data.data && data.data.length > 0) {
|
|
data.data.forEach((item: any) => {
|
|
if (item.BusinessProcess_State === 2000) {
|
|
item.BusinessProcess_StateText = "待审核"
|
|
} else if (item.BusinessProcess_State > 2000 && item.BusinessProcess_State < 9000) {
|
|
item.BusinessProcess_StateText = "审核中"
|
|
} else if (item.BusinessProcess_State = 9000) {
|
|
item.BusinessProcess_StateText = "已审结"
|
|
}
|
|
})
|
|
|
|
|
|
return { data: data.data, success: true, total: data.data.length }
|
|
}
|
|
return { data: [], success: true }
|
|
}}
|
|
toolbar={{
|
|
actions: [
|
|
]
|
|
}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div >
|
|
)
|
|
}
|
|
|
|
export default connect(({ user }: ConnectState) => ({
|
|
currentUser: user.currentUser
|
|
}))(ProductApprovalProcess);
|