Browse Source

维修FQA

dev
巴林闲侠 2 years ago
parent
commit
f385d3031f
  1. 38
      web/client/src/components/workflow/approval.jsx
  2. 4
      web/client/src/sections/means/nav-item.jsx
  3. 4
      web/client/src/sections/means/routes.js
  4. 78
      web/client/src/sections/workOrder/containers/initiated.jsx
  5. 1
      web/client/src/sections/workOrder/containers/preserve.jsx
  6. 1
      web/client/src/utils/webapi.js

38
web/client/src/components/workflow/approval.jsx

@ -14,7 +14,8 @@ const WorkFlowApprovalModal = (props) => {
myApply: 'process/my-apply',
notice: 'process/my-apply',
hasDone: 'process/my-apply',
draft: 'process/{processId}/draft'
draft: 'process/{processId}/draft',
submit: 'process/{processId}/apply'
})
const [loading, setLoading] = useState(true);
const [ifreamUrl, setIfreamUrl] = useState('');
@ -28,7 +29,10 @@ const WorkFlowApprovalModal = (props) => {
if (msg) {
Notification.success({ title: msg })
}
if (type == 'submitSuccess' && successCallBack) {
if (
(type == 'submitSuccess' || type == 'saveSuccess')
&& successCallBack
) {
successCallBack({ refresh: true });
setLoading(false);
}
@ -42,14 +46,19 @@ const WorkFlowApprovalModal = (props) => {
}, [])
useEffect(() => {
if (checkProcessInstanceId && processAuditList.length && iframeRef.current) {
const corProcessData = type == 'draft' ?
processAuditList.find(p => p.id == checkProcessInstanceId)
: processAuditList.find(p => p.processInstanceId == checkProcessInstanceId)
if (corProcessData) {
iframeRef.current.contentWindow.postMessage(JSON.stringify({
...corProcessData
}), '*');
if (iframeRef.current) {
if (checkProcessInstanceId && processAuditList.length) {
const corProcessData =
type == 'draft' ?// 稿
processAuditList.find(p => p.id == checkProcessInstanceId)
: processAuditList.find(p => p.processInstanceId == checkProcessInstanceId)
if (corProcessData) {
iframeRef.current.contentWindow.postMessage(JSON.stringify(
{
...corProcessData
}
), '*');
}
}
}
}, [checkProcessInstanceId, iframeRef])
@ -62,9 +71,16 @@ const WorkFlowApprovalModal = (props) => {
}${type == 'notice' ? `&type=notice` : ''
}${type == 'hasDone' ? `&type=done` : ''
}`
if (type == 'draft') {
if (type == 'draft') {// 稿
nextUrl = nextUrl.replace('{processId}', checkProcessInstanceId)
}
if (type == 'submit') {//
const corProcessData = processAuditList.find(p => p.processInstanceId == checkProcessInstanceId)
nextUrl = nextUrl.replace('{processId}', corProcessData?.businessKey)
nextUrl += `&sourceType=again`
nextUrl += `&processId=${corProcessData?.businessKey}`
nextUrl += `&otherSyatem=true`
}
setIfreamUrl(nextUrl);
}, [user, checkProcessInstanceId, type, webEmis])

4
web/client/src/sections/means/nav-item.jsx

@ -19,11 +19,11 @@ export function getNavItem (user, dispatch) {
}]
}, {
itemKey: 'repairFQA',
text: '维修FQA',
text: '维修FAQ',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/means/repairFQA/repairFQA1',
items: [{
itemKey: 'repairFQA1', to: '/means/repairFQA/repairFQA1', text: '维修FQA'
itemKey: 'repairFQA1', to: '/means/repairFQA/repairFQA1', text: '维修FAQ'
}]
}, {
itemKey: 'faultInformation',

4
web/client/src/sections/means/routes.js

@ -20,12 +20,12 @@ export default [{
}, {
path: '/repairFQA',
key: 'repairFQA',
breadcrumb: '维修FQA',
breadcrumb: '维修FAQ',
childRoutes: [{
path: '/repairFQA1',
key: 'repairFQA1',
component: RepairFQA,
breadcrumb: '维修FQA',
breadcrumb: '维修FAQ',
}]
}, {
path: '/faultInformation',

78
web/client/src/sections/workOrder/containers/initiated.jsx

@ -1,7 +1,7 @@
import React, { useEffect, useRef, useState } from 'react';
import { connect } from 'react-redux';
import { ApiTable, EmisApiTable, EmisRequest, parseProcessData, judgmentProcessState } from '$utils'
import { Skeleton, Button, Pagination, Form, Popconfirm, Table, Toast } from '@douyinfe/semi-ui';
import { ApiTable, EmisApiTable, EmisRequest, parseProcessData, processState, judgmentProcessState } from '$utils'
import { Skeleton, Button, Pagination, Form, Popconfirm, Table, Toast, Space, Tooltip } from '@douyinfe/semi-ui';
import { SkeletonScreen, WorkflowApprovalModal, } from "$components";
import moment from "moment";
@ -13,6 +13,7 @@ const Rest = (props) => {
const [tableData, setTableData] = useState([]);
const [loading, setLoading] = useState(true);
const [workflowModalVisible, setWorkflowModalVisible] = useState(false)
const [workflowModalType, setWorkflowModalType] = useState('')
const [checkProcessInstanceId, setCheckProcessInstanceId] = useState(null)
const [params, setParams] = useState({})
@ -102,10 +103,73 @@ const Rest = (props) => {
}, {
title: '操作',
dataIndex: 'hadle',
render: (text, record, index) => <div style={{ width: 60, color: "#1890ff", cursor: "pointer" }} onClick={() => {
setCheckProcessInstanceId(record.processInstanceId)
setWorkflowModalVisible(true)
}}>查看详情</div>
render: (text, record, index) => {
let reviewTime = record.lastApproveTime ?
moment(record.lastApproveTime).format('YYYY-MM-DD HH:mm:ss')
:
record.variables.find(t => t.name == 'fsLastActionTime') ?
moment.unix(record.variables.find(t => t.name == 'fsLastActionTime').value).format('YYYY-MM-DD HH:mm:ss')
: '';
console.log(reviewTime);
let tooltipTitle = '';
if (record.processDeleted) {
tooltipTitle = '该表单流程已删除,不支持重新发起';
}
if (!record.processIsEnable) {
tooltipTitle = '该表单流程已停用,不支持重新发起';
}
if (!record.isCurrentVersion) {
tooltipTitle = '该表单流程已修改,不支持重新发起'
}
return (
<Space>
<a style={{ width: 60, color: "#1890ff", cursor: "pointer" }} onClick={() => {
setWorkflowModalType('myApply')
setCheckProcessInstanceId(record.processInstanceId)
setWorkflowModalVisible(true)
}}>查看详情</a>
{
!reviewTime && processState.active == record.state ?
<Popconfirm title='确认撤销申请?' onConfirm={() => {
// setLoading(true)
EmisRequest.post(EmisApiTable.getApprovalActionUrl.replace('{type}', 'interrupt'),
{
procinstId: record.processInstanceId,
actionName: '撤销'
})
.then(res => {
setLoading(false)
backlogData()
Toast.success({ content: '撤销流程成功', duration: 1, })
}, error => {
Toast.error({ content: '撤销流程失败', duration: 1, })
setLoading(false)
});
}}>
<a style={{ color: "#1890ff", cursor: "pointer" }}>撤销</a>
</Popconfirm>
: ''
}{
(
record.state == processState.suspended //
|| record.state == processState.externally //
) ?
tooltipTitle
&& false
?
<Tooltip content={tooltipTitle} position={'leftBottom'}>
重新发起
</Tooltip>
: <a style={{ color: "#1890ff", cursor: "pointer" }} onClick={() => {
setWorkflowModalType('submit')
setCheckProcessInstanceId(record.processInstanceId)
setWorkflowModalVisible(true)
}}>重新发起</a>
: ''
}
</Space >
)
}
}]
return (
@ -199,7 +263,7 @@ const Rest = (props) => {
</div>
</div>
<WorkflowApprovalModal
type='myApply'
type={workflowModalType}
visible={workflowModalVisible}
processAuditList={tableData}
checkProcessInstanceId={checkProcessInstanceId}

1
web/client/src/sections/workOrder/containers/preserve.jsx

@ -122,7 +122,6 @@ const Rest = (props) => {
>
<div style={{ width: 60, color: "##F2F3F5", }} >查看详情</div>
</Tooltip>
} else {
return <div style={{ width: 60, color: "#1890ff", cursor: "pointer" }} onClick={() => {
setCheckProcessInstanceId(record.id)

1
web/client/src/utils/webapi.js

@ -96,6 +96,7 @@ export const EmisApiTable = {
processInstancemMyNoticeCount: 'process-instance/my-notice-count/optimization', //抄送我 数量
processInstancemMyDraftList: 'process-instance/my-draft-list', //保存待发
getApprovalActionUrl: 'process-instance/audit/{type}', // 审批、撤销操作
//删除草稿
delDraftUrl: 'process/drafts/{draftId}',
}

Loading…
Cancel
Save