import React, { useEffect, useRef, useState } from 'react';
import { connect } from 'react-redux';
import { ApiTable, EmisApiTable, EmisRequest, parseProcessData, judgmentProcessState, processState } from '$utils'
import { Skeleton, Button, Pagination, Form, Popconfirm, Table, Toast, Tooltip } from '@douyinfe/semi-ui';
import { IconSearch } from '@douyinfe/semi-icons';
import { SkeletonScreen, WorkflowApprovalModal } from "$components";
import moment from "moment";
const Rest = (props) => {
const { dispatch, actions, user, socket, pomsProjectBasicAll } = props
const { workOrder } = actions
const [query, setQuery] = useState({ limit: 10, offset: 0 }); //页码信息
const [limits, setLimits] = useState(0)//每页实际条数
const [tableData, setTableData] = useState([]);
const [loading, setLoading] = useState(true);
const [workflowModalVisible, setWorkflowModalVisible] = useState(false)
const [checkProcessInstanceId, setCheckProcessInstanceId] = useState(null)
const [params, setParams] = useState({})
useEffect(() => {
backlogData()
if (!pomsProjectBasicAll.length) {
dispatch(workOrder.getPomsProjectBasicAll())
}
}, [])
let backlogData = (obj = { limit: 10, offset: 0 }) => {
setLoading(true)
EmisRequest.get(EmisApiTable.processInstancemMyDraftList,
{
userId: user?.id,
businessType: '运维中台表单',
...obj
})
.then(res => {
let nextTableData = (res?.data || []).map(r => {
let pomsNeedData = {}
if (r?.formData && r?.formSchema) {
pomsNeedData = parseProcessData({
formSchema: r?.formSchema,
formData: r?.formData
})
}
return {
...r,
pomsNeedData
}
})
setTableData(nextTableData)
setLimits(res.count || 0)
setLoading(false)
}, error => {
Toast.error({ content: '保存待发列表请求失败', duration: 1, })
setLoading(false)
});
}
let columns = [{
title: '序号',
dataIndex: 'index',
render: (text, record, index) => index + 1
}, {
title: '标题',
dataIndex: 'title',
render: (text, record, index) => {
return record?.pomsNeedData?.title?.value || ''
}
}, {
title: '关联项目',
dataIndex: 'pomsProject',
render: (text, record, index) => {
const pomsProjectId = record?.pomsNeedData?.pomsProjectId?.value
if (pomsProjectId) {
const corProject = pomsProjectBasicAll.find(p => p.value == pomsProjectId)
return corProject?.label || ''
} else {
return ''
}
}
}, {
title: '申请人',
dataIndex: 'applyerName',
render: (text, record, index) => user?.name
}, {
title: '申请部门',
dataIndex: 'applyDepartmentName',
render: (text, record, index) => user?.department[0]?.name
}, {
title: '审批状态',
dataIndex: 'status',
render: (text, record) => {
return judgmentProcessState({ state: processState.wait }, 'save')
},
}, {
title: '提交时间',
dataIndex: 'createAt',
render: (text, record, index) => text && moment(text).format('YYYY-MM-DD HH:mm:ss') || '--'
}, {
title: '期望完成时间',
dataIndex: 'expectTime',
render: (text, record, index) => {
return record?.pomsNeedData?.expectTime?.value || ''
}
}, {
title: '操作',
dataIndex: 'hadle',
render: (text, record, index) => {
let tooltipTitle = '';
if (record.processDeleted) {
tooltipTitle = '该表单流程已删除,不支持重新发起';
} else if (!record.processIsEnable) {
tooltipTitle = '该表单流程已停用,不支持重新发起';
} else if (!record.isCurrentVersion) {
tooltipTitle = '该表单流程已修改,不支持重新发起'
}
if (tooltipTitle) {
return