Commit 87f9bf0f by fanyj

tijiao

parent 984a5316
......@@ -15,6 +15,7 @@ import AssetManage from './view/Manage/AssetManage';
import AssetBrowse from './view/Manage/AssetBrowse';
import DatasourceManage from './view/Manage/DatasourceManage';
import AssetDetailPage from './view/Manage/AssetManage/Component/AssetDetailPage';
import FlowAcceptDetail from './view/Manage/AssetManage/Component/FlowAcceptDetail';
import ImportAction from './view/Manage/Model/Component/ImportAction';
import EditModel from './view/Manage/Model/Component/EditModel';
import EditTemplate from './view/Manage/ModelConfig/Component/EditTemplate';
......@@ -202,6 +203,7 @@ export class App extends React.Component {
<Route path={`${ContextPath}/model-template-action`} component={EditTemplate} exact />
<Route path={`${ContextPath}/asset-detail`} component={AssetDetailPage} exact />
<Route path={`${ContextPath}/asset-review-detail`} component={AssetReviewDetail} />
<Route path={`${ContextPath}/assetflowdetail`} component={FlowAcceptDetail} />
<Route path={'/center-home/menu/datasource-manage'} component={DatasourceManage} exact />
<Route path={'/center-home/menu/data-model'} component={Model} exact />
......@@ -215,6 +217,7 @@ export class App extends React.Component {
<Route path={'/center-home/data-model-action'} component={EditModel} exact />
<Route path={'/center-home/asset-detail'} component={AssetDetailPage} exact />
<Route path={'/center-home/session/asset-detail'} component={AssetDetailPage} exact />
<Route path={'/center-home/assetflowdetail'} component={FlowAcceptDetail} exact />
<Route path={'/data-govern/spreadjs-view'} component={SpreadjsView} exact />
</Switch>
</Router>
......
.omodel {
position: relative;
.header {
display: flex;
width: 100%;
height: 44px;
padding: 0 15px;
background-color: #464d6e;
align-items: center;
position: fixed;
justify-content: space-between;
border-bottom: 1px solid #EFEFEF;
z-index: 100;
}
.container {
top: 44px;
width: 100%;
height: calc(100vh - 44px - 64px);
overflow: auto;
background: #EDF0F5;
padding: 10px 20px;
position: absolute;
:global{
.ant-table-thead > tr > th {
padding: 8px 8px !important;
}
.ant-table-tbody > tr > td {
padding: 12px 8px !important;
}
.ant-table-tbody > .ant-table-measure-row > td {
padding: 0px !important;
}
.ant-table-tbody > tr .ant-table-row-selected > td {
background: #fff !important;
}
tr.ant-table-expanded-row > td {
background: #fff !important;
}
.ant-table-thead > tr > th {
background-color: #F2F5FC !important;
}
}
}
.containermore {
top: 44px;
width: 100%;
height: calc(100vh - 44px);
overflow: auto;
background: #EDF0F5;
padding: 10px 20px;
position: absolute;
:global{
.ant-table-thead > tr > th {
padding: 8px 8px !important;
}
.ant-table-tbody > tr > td {
padding: 12px 8px !important;
}
.ant-table-tbody > .ant-table-measure-row > td {
padding: 0px !important;
}
.ant-table-tbody > tr .ant-table-row-selected > td {
background: #fff !important;
}
tr.ant-table-expanded-row > td {
background: #fff !important;
}
.ant-table-thead > tr > th {
background-color: #F2F5FC !important;
}
}
}
.containercard {
padding: 20px;
background: #fff;
}
.footer {
display: flex;
bottom: 0;
width: 100%;
height: 64px;
position: fixed;
justify-content: flex-end;
opacity: 0.9;
background: #fff;
box-shadow: 0 -1px 4px 0 #e5e9ea;
padding: 0 20px;
}
}
\ No newline at end of file
import React from "react"
import styles from "./index.module.less"
interface outside{
title:string;
body:any;
footer?:any;
}
const OutSidePanel:React.FC<outside>=(props)=>{
const {title,body,footer} = props
return(
<div className={styles.omodel}>
<div className={styles.header}>
<span style={{ fontSize: 16, fontWeight: 'bold', color: '#fff' }}>{title}</span>
</div>
<div className={footer?styles.container:styles.containermore}>
<div className={styles.containercard}>
{body}
</div>
</div>
{footer&&<div className={styles.footer}>
{footer}
</div>}
</div>
)
}
export default OutSidePanel
\ No newline at end of file
......@@ -24,6 +24,33 @@ class AssetsManageService{
return result;
}
async getProcessDetail(payload={},autotip=false){
let result = await request({ url: `${asset}/takeResponsibilityApi/processDetail`, method: "get", data: payload },autotip).then(data=>{
return data;
}).catch(error=>{
return error
})
return result;
}
async saveQuestionNext(payload={},autotip=false){
let result = await request({ url: `${asset}/takeResponsibilityApi/reDistribute`, method: "post", data: payload },autotip).then(data=>{
return data;
}).catch(error=>{
return error
})
return result;
}
async saveQuestionFinal(payload={},autotip=false){
let result = await request({ url: `${asset}/takeResponsibilityApi/auditProcess`, method: "post", data: payload },autotip).then(data=>{
return data;
}).catch(error=>{
return error
})
return result;
}
}
export default new AssetsManageService()
\ No newline at end of file
......@@ -307,7 +307,8 @@ const List = React.forwardRef(function ({ items }, ref) {
)
})
export const AuditUsersItem = ({ value, onChange }) => {
export const AuditUsersItem = (props) => {
const { value, onChange } = props
const [loading, setLoading] = React.useState(false)
const [options, setOptions] = React.useState()
......
import React,{useState,useEffect,useMemo} from "react"
import {Modal,Spin,Button,Form,Row,Col,Upload,Input,Tooltip,Typography,Table} from "antd"
import {Modal,Spin,Button,Form,Row,Col,Upload,Input,Tooltip,Typography,Table, message} from "antd"
import {UploadOutlined} from "@ant-design/icons"
import { useSetState } from "ahooks"
import { AuditUsersItem,AttachesItem } from "../../AssetDraft/start-flow"
import { showMessage, showNotifaction } from '@/util'
import { dispatch } from '@/model'
......@@ -13,9 +12,6 @@ const AssetFlow:React.FC<any>=(props)=>{
const {visible,onCancel,item} = props
const [uploading, setUploading] = useState(false)
const [tableDatas, setTableData] = React.useState()
const [state,setState] = useSetState({
loading:false
})
const {loading,saveQuestionItem} = useGetFlowAction()
......@@ -39,20 +35,21 @@ const AssetFlow:React.FC<any>=(props)=>{
},[tableData])
const close=()=>{
onCancel?.()
onCancel?.()
form.resetFields()
setTableData(tableData)
}
const save=()=>{
form.validateFields().then((data)=>{
data.submitItems=tableDatas;
saveQuestionItem(data)
saveQuestionItem(data,()=>{
message.success("操作成功")
close()
})
})
}
const onValuesChange=()=>{
}
const uploadProps = {
beforeUpload: file => {
const isLt5M = file.size / 1024 / 1024 <= 100
......@@ -195,13 +192,12 @@ const AssetFlow:React.FC<any>=(props)=>{
labelCol={{ span: 6 }}
wrapperCol={{ span: 18 }}
autoComplete="off"
onValuesChange={onValuesChange}
>
<Row gutter={10}>
<Col span={12}>
<Form.Item
label='评审人员'
name="applyUser"
name="nextAuditUsers"
style={{ marginBottom:15 }}
rules={[{ required: true, message: '请选择评审人员!' }]}
>
......@@ -213,7 +209,7 @@ const AssetFlow:React.FC<any>=(props)=>{
style={{ marginBottom:15 }}
>
<Upload {...uploadProps }>
<Button icon={<UploadOutlined />}>点击上传</Button>
<Button loading={uploading} icon={<UploadOutlined />}>点击上传</Button>
</Upload>
</Form.Item>
......@@ -241,6 +237,7 @@ const AssetFlow:React.FC<any>=(props)=>{
dataSource={tableDatas??[]}
pagination={false}
loading={tableloading}
rowKey="dataAssetId"
/>
</Spin>
</Modal>
......
......@@ -34,12 +34,12 @@ export const useGetAssetQuestion = (props) => {
export const useGetFlowAction = () => {
const [loading, setLoading] = useState<boolean>(false);
const saveQuestionItem = useCallback(async (params: any)=>{
const saveQuestionItem = useCallback(async (params: any,callback?:any)=>{
try {
setLoading(true);
const response: any = await assetsManageService.saveQuestionItem(params);
if (httpUtil.checkSuccess(response, 1)) {
return response.data;
callback?.()
} else {
httpUtil.showError(response, 1);
}
......@@ -48,5 +48,59 @@ export const useGetFlowAction = () => {
}
},[])
return { saveQuestionItem, loading };
const saveQuestionItemNext = useCallback(async (params: any,callback?:any)=>{
try {
setLoading(true);
const response: any = await assetsManageService.saveQuestionNext(params);
if (httpUtil.checkSuccess(response, 1)) {
callback?.()
} else {
httpUtil.showError(response, 1);
}
} finally {
setLoading(false);
}
},[])
const saveQuestionItemFinal = useCallback(async (params: any,callback?:any)=>{
try {
setLoading(true);
const response: any = await assetsManageService.saveQuestionFinal(params);
if (httpUtil.checkSuccess(response, 1)) {
callback?.()
} else {
httpUtil.showError(response, 1);
}
} finally {
setLoading(false);
}
},[])
return { saveQuestionItem, loading,saveQuestionItemNext,saveQuestionItemFinal };
};
export const useGetProcessDetail = (props: {processId: string}) => {
const {processId} = props;
const [detail, setDetail] = useState<any>(null);
const [loading, setLoading] = useState<boolean>(false);
useEffect(() => {
const fetchData = async () => {
try {
setLoading(true);
const response: any = await assetsManageService.getProcessDetail({processId});
if (httpUtil.checkSuccess(response, 1)) {
setDetail(response.data);
} else {
httpUtil.showError(response, 1);
}
} finally {
setLoading(false);
}
};
if(processId)
fetchData();
}, [processId]);
return { detail, detalLoading:loading };
};
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment