Commit 434d112a authored by 熊成伟's avatar 熊成伟

debug

parent dada99ea
Pipeline #15808 passed with stages
in 1 minute and 4 seconds
......@@ -4,10 +4,10 @@ import {WingBlank, WhiteSpace, ActionSheet, Toast} from 'antd-mobile'
import axiosRequest from '../../utils/request';
import TopTabs from '../../components/Tabs/BlankTabs'
import Skeleton from '../../components/Skeleton'
import Basic from './Basic'
import Adjunct from './Adjunct'
import Flow from './Flow';
import Option from './Option';
import Basic from './commponents/Basic'
import Adjunct from './commponents/Adjunct'
import Flow from './commponents/Flow';
import Option from './commponents/Option';
import './index.less'
......
import React, {useState, useEffect} from 'react';
import Document from 'react-document-title'
import {WingBlank, WhiteSpace, ActionSheet, Toast} from 'antd-mobile'
import axiosRequest from '../../../utils/request';
import TopTabs from '../../../components/Tabs/BlankTabs'
import Skeleton from '../../../components/Skeleton'
import Basic from '../commponents/Basic'
import Adjunct from '../commponents/Adjunct'
import Flow from '../commponents/Flow';
import Option from '../commponents/Option';
import '../index.less'
const Process = (props) => {
const {uuid, FLOWTBID} = props.match.params;
const [templateId, setTemplateId] = useState();
const [tableId, setTableId] = useState();
const [nodeId, setNodeId] = useState();
// const [operateId, setOperateId] = useState();
const [flowTbId, setFlowTbId] = useState();
//回到顶部
useEffect(() => {
window.scrollTo(0, 0)
}, []);
useEffect(() => {
const {id} = props.match.params;
setFlowTbId(FLOWTBID);
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/dispatcher`,
body: {
operateId: id,
formType: 'form',
uuid,
mobileSign: 1
}
}).then(res => {
const keys = res.elementList ? Object.keys(res.elementList) : [];
console.log(keys);
setBasic(res.elementList ? res.elementList.map(item => ({title: item.showName})) : []);
setTableId(res.table && res.table.tableId);
setTemplateId(res.property && res.property.templateId);
setNodeId(res.property && res.property.curNodeId);
// setOperateId(res.property && res.property.operateId);
});
}, []);
//获取basic数据
const [basic, setBasic] = useState([]);
const [basicLoading, setBasicLoading] = useState(false)
const getBasic = uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getData`,
body: {uuid, tableId, templateId}
}).then(res => {
setBasicLoading(true)
const result = [...basic];
result.map(item => {
item.content = res[item.title]
return null;
});
setBasic(result)
});
}
//获取Flow数据
const [flowData, setFlowData] = useState([]);
const [flowLoading, setFlowLoading] = useState(false)
const getFlow = uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getFlowList`,
body: {uuid, tableId}
}).then(res => {
setFlowLoading(true)
setFlowData(res)
});
};
const [adjunctData, setAdjunctData] = useState([]);
const [adjunctLoading, setAdjunctLoading] = useState(false)
const getAdjunct= uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getFiles`,
body: {uuid, fieldName: 'fj', tableId}
}).then(res => {
setAdjunctLoading(true)
setAdjunctData(res)
});
};
const [button, setButton] = useState([])
const getButton= uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/nextNodeList`,
body: {curNodeId: nodeId}
}).then(res => {
const result = res ? res.map(item => ({button: item.name, target: item.special, nodetype: item.nodetype})) : []
setButton(result)
});
};
useEffect(() => {
const {uuid} = props.match.params;
templateId && tableId && getBasic(uuid)
templateId && tableId && getFlow(uuid);
templateId && tableId && getAdjunct(uuid)
getButton()
}, [nodeId]);
//提交按钮状态
const [disabled, setDisabled] = useState(true);
//提交按钮文字
const [footButton, setFootButton] = useState('处理');
//聚焦
const optionBlur = () => {
setFootButton('确认发送');
setFootStatus(true)
};
useEffect(() => {
const option = document.getElementsByClassName("option-text")[0];
if (option) {
option.addEventListener('focus', optionBlur, true);
return () => option.removeEventListener('focus', optionBlur, true);
}
}, [basic]);
// const [blyj, setBlyj] = useState();
// console.log(blyj)
const optionChange = val => {
// setBlyj(val)
setDisabled(!(val != null && val !== ''))
};
const [current, setCurrent] = useState('basic');
const [footStatus, setFootStatus] = useState(false);
//点击输入框, 聚焦移动
const textClick = () => {
document.getElementsByClassName("option-text")[0].focus();
window.scrollTo(0, document.body.scrollHeight);
optionBlur()
};
//tab切换
const tabClick = (name) => {
setCurrent(name)
name === 'option' && document.getElementsByClassName("option-text")[0].focus();
name === 'option' && optionBlur()
const top = document.getElementById(`event-${name}`).offsetTop - document.getElementById(`event-basic`).offsetTop;
window.scrollTo(0,top);
};
//antd-mobile 提交选项
const isIPhone = new RegExp('\\biPhone\\b|\\biPod\\b', 'i').test(window.navigator.userAgent);
let wrapProps;
if (isIPhone) {
wrapProps = {
onTouchStart: e => e.preventDefault(),
};
};
const showActionSheet = () => {
const BUTTON = [];
button.map(item => BUTTON.push(item.button));
const BUTTONS = BUTTON.concat(['取消']);
ActionSheet.showActionSheetWithOptions({
options: BUTTONS,
cancelButtonIndex: BUTTONS.length - 1,
maskClosable: true,
wrapProps,
},
(buttonIndex) => {
buttonIndex < BUTTONS.length - 1 && subUrl(buttonIndex)
// console.log(buttonIndex)
});
};
const subUrl = key => {
button[key].nodetype === 'bakup' ? end() :
props.history.push(`/blank/submit/${nodeId}/${uuid}/${flowTbId ? flowTbId : 'null'}`)
};
const end = () => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/application/interfaces/flow/saveWorkFlowModel.jsp`,
body: {
flowNodeId: nodeId,
attachId: uuid,
flowTbId: flowTbId === 'null' ? '' : flowTbId,
userListMap: JSON.stringify([{}])
}
}).then(res => {
if (res.success === 'success') {
Toast.success("操作成功", 1, () => {
props.history.push('/bord/backlog')
});
}
});
};
const resultLoading = basicLoading && adjunctLoading && flowLoading;
return (
<Document title="待办详情">
<div>
<TopTabs page={current} onClick={tabClick}/>
<div id="event">
<WingBlank>
<div id="event-basic"/>
<WhiteSpace/>
{resultLoading ? <Basic data={basic}/> : <Skeleton/>}
<div id="event-adjunct"/>
<WhiteSpace/>
{resultLoading ? <Adjunct data={adjunctData}/> : <Skeleton/>}
<div id="event-flow"/>
<WhiteSpace/>
{resultLoading ? <Flow data={flowData}/> : <Skeleton/>}
<div id="event-option"/>
<WhiteSpace/>
{resultLoading ? <Option onChange={optionChange}/> : <Skeleton/>}
</WingBlank>
</div>
<div className="event-footer">
{ resultLoading && (
<div className={`event-footer-button ${(footStatus && disabled) ? 'button-disabled' : '' }`} onClick={footStatus && !disabled ? showActionSheet: textClick}>
{!footStatus && (
<img alt="" src="/img/process-edit.png" className="process-edit"/>
)}
{footButton}
</div>
)}
</div>
</div>
</Document>
);
};
export default Process;
import React, {useState, useEffect} from 'react';
import Document from 'react-document-title'
import {WingBlank, WhiteSpace, ActionSheet, Toast} from 'antd-mobile'
import axiosRequest from '../../../utils/request';
import TopTabs from '../../../components/Tabs/BlankTabs'
import Skeleton from '../../../components/Skeleton'
import Basic from '../commponents/Basic'
import Adjunct from '../commponents/Adjunct'
import Flow from '../commponents/Flow';
import Option from '../commponents/Option';
import '../index.less'
const Process = (props) => {
const {uuid, FLOWTBID} = props.match.params;
const [templateId, setTemplateId] = useState();
const [tableId, setTableId] = useState();
const [nodeId, setNodeId] = useState();
// const [operateId, setOperateId] = useState();
const [flowTbId, setFlowTbId] = useState();
//回到顶部
useEffect(() => {
window.scrollTo(0, 0)
}, []);
useEffect(() => {
const {id} = props.match.params;
setFlowTbId(FLOWTBID);
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/dispatcher`,
body: {
operateId: id,
formType: 'form',
uuid,
mobileSign: 1
}
}).then(res => {
const keys = res.elementList ? Object.keys(res.elementList) : [];
console.log(keys);
setBasic(res.elementList ? res.elementList.map(item => ({title: item.showName})) : []);
setTableId(res.table && res.table.tableId);
setTemplateId(res.property && res.property.templateId);
setNodeId(res.property && res.property.curNodeId);
// setOperateId(res.property && res.property.operateId);
});
}, []);
//获取basic数据
const [basic, setBasic] = useState([]);
const [basicLoading, setBasicLoading] = useState(false)
const getBasic = uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getData`,
body: {uuid, tableId, templateId}
}).then(res => {
setBasicLoading(true)
const result = [...basic];
result.map(item => {
item.content = res[item.title]
return null;
});
setBasic(result)
});
}
//获取Flow数据
const [flowData, setFlowData] = useState([]);
const [flowLoading, setFlowLoading] = useState(false)
const getFlow = uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getFlowList`,
body: {uuid, tableId}
}).then(res => {
setFlowLoading(true)
setFlowData(res)
});
};
const [adjunctData, setAdjunctData] = useState([]);
const [adjunctLoading, setAdjunctLoading] = useState(false)
const getAdjunct= uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getFiles`,
body: {uuid, fieldName: 'fj', tableId}
}).then(res => {
setAdjunctLoading(true)
setAdjunctData(res)
});
};
const [button, setButton] = useState([])
const getButton= uuid => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/nextNodeList`,
body: {curNodeId: nodeId}
}).then(res => {
const result = res ? res.map(item => ({button: item.name, target: item.special, nodetype: item.nodetype})) : []
setButton(result)
});
};
useEffect(() => {
const {uuid} = props.match.params;
templateId && tableId && getBasic(uuid)
templateId && tableId && getFlow(uuid);
templateId && tableId && getAdjunct(uuid)
getButton()
}, [nodeId]);
//提交按钮状态
const [disabled, setDisabled] = useState(true);
//提交按钮文字
const [footButton, setFootButton] = useState('处理');
//聚焦
const optionBlur = () => {
setFootButton('确认发送');
setFootStatus(true)
};
useEffect(() => {
const option = document.getElementsByClassName("option-text")[0];
if (option) {
option.addEventListener('focus', optionBlur, true);
return () => option.removeEventListener('focus', optionBlur, true);
}
}, [basic]);
// const [blyj, setBlyj] = useState();
// console.log(blyj)
const optionChange = val => {
// setBlyj(val)
setDisabled(!(val != null && val !== ''))
};
const [current, setCurrent] = useState('basic');
const [footStatus, setFootStatus] = useState(false);
//点击输入框, 聚焦移动
const textClick = () => {
document.getElementsByClassName("option-text")[0].focus();
window.scrollTo(0, document.body.scrollHeight);
optionBlur()
};
//tab切换
const tabClick = (name) => {
setCurrent(name)
name === 'option' && document.getElementsByClassName("option-text")[0].focus();
name === 'option' && optionBlur()
const top = document.getElementById(`event-${name}`).offsetTop - document.getElementById(`event-basic`).offsetTop;
window.scrollTo(0,top);
};
//antd-mobile 提交选项
const isIPhone = new RegExp('\\biPhone\\b|\\biPod\\b', 'i').test(window.navigator.userAgent);
let wrapProps;
if (isIPhone) {
wrapProps = {
onTouchStart: e => e.preventDefault(),
};
};
const showActionSheet = () => {
const BUTTON = [];
button.map(item => BUTTON.push(item.button));
const BUTTONS = BUTTON.concat(['取消']);
ActionSheet.showActionSheetWithOptions({
options: BUTTONS,
cancelButtonIndex: BUTTONS.length - 1,
maskClosable: true,
wrapProps,
},
(buttonIndex) => {
buttonIndex < BUTTONS.length - 1 && subUrl(buttonIndex)
// console.log(buttonIndex)
});
};
const subUrl = key => {
button[key].nodetype === 'bakup' ? end() :
props.history.push(`/blank/submit/${nodeId}/${uuid}/${flowTbId ? flowTbId : 'null'}`)
};
const end = () => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/application/interfaces/flow/saveWorkFlowModel.jsp`,
body: {
flowNodeId: nodeId,
attachId: uuid,
flowTbId: flowTbId === 'null' ? '' : flowTbId,
userListMap: JSON.stringify([{}])
}
}).then(res => {
if (res.success === 'success') {
Toast.success("操作成功", 1, () => {
props.history.push('/bord/backlog')
});
}
});
};
const resultLoading = basicLoading && adjunctLoading && flowLoading;
return (
<Document title="待办详情">
<div>
<TopTabs page={current} onClick={tabClick}/>
<div id="event">
<WingBlank>
<div id="event-basic"/>
<WhiteSpace/>
{resultLoading ? <Basic data={basic}/> : <Skeleton/>}
<div id="event-adjunct"/>
<WhiteSpace/>
{resultLoading ? <Adjunct data={adjunctData}/> : <Skeleton/>}
<div id="event-flow"/>
<WhiteSpace/>
{resultLoading ? <Flow data={flowData}/> : <Skeleton/>}
<div id="event-option"/>
<WhiteSpace/>
{resultLoading ? <Option onChange={optionChange}/> : <Skeleton/>}
</WingBlank>
</div>
<div className="event-footer">
{ resultLoading && (
<div className={`event-footer-button ${(footStatus && disabled) ? 'button-disabled' : '' }`} onClick={footStatus && !disabled ? showActionSheet: textClick}>
{!footStatus && (
<img alt="" src="/img/process-edit.png" className="process-edit"/>
)}
{footButton}
</div>
)}
</div>
</div>
</Document>
);
};
export default Process;
import React, {useState, useEffect} from 'react';
import Document from 'react-document-title'
import AddressList from '../commponents/Goods';
import axiosRequest from '../../../utils/request';
import Skeleton from '../../../components/Skeleton'
const AddressBook = (props) => {
const [loading, setLoading] = useState(false);
const [data, setData] = useState([]);
const getData = () => {
setLoading(true);
axiosRequest({
method: 'post',
url: '/idtAppServiceV6/oApp/getDeptTree',
}).then(res => {
setLoading(false);
setData(res)
});
};
useEffect(() => {
getData()
}, []);
// const [userLoading, setUserLoading] = useState(false)
const treeClick = (DEPTID) => {
const newData = [...data];
const index = newData.findIndex(item => item.DEPTID === DEPTID);
const checked = newData[index].checked ? newData[index] : false;
newData[index] = {...newData[index], loading: true, children: [], checked: !checked};
setData(newData);
!checked && getUser(DEPTID)
};
const getUser = (DEPTID) => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getSearchAddressBook?deptId=${DEPTID}`,
}).then(res => {
const child = res.userList && res.userList.length > 0 ? res.userList : [];
const newData = [...data];
const index = newData.findIndex(item => item.DEPTID === DEPTID);
newData[index] = {...newData[index], loading: false, children: child, checked: true};
setData(newData)
// setData()
});
};
return (
<Document title="参加人数">
<div>
<div className='adMainBox'>
{loading ? <Skeleton/> : (<AddressList data={data} onClick={treeClick}/>)}
</div>
</div>
</Document>
);
};
export default AddressBook;
import React from 'react';
import List from '../../components/List'
import AdjunctList from '../../components/Adjunct'
import List from '../../../components/List'
import AdjunctList from '../../../components/Adjunct'
const Adjunct = (props) => {
......
import React, {useState, useEffect} from 'react';
import Document from 'react-document-title'
import AddressList from '../commponents/Goods';
import axiosRequest from '../../../utils/request';
import Skeleton from '../../../components/Skeleton'
const AddressBook = (props) => {
const [loading, setLoading] = useState(false);
const [data, setData] = useState([]);
const getData = () => {
setLoading(true);
axiosRequest({
method: 'post',
url: '/idtAppServiceV6/oApp/getDeptTree',
}).then(res => {
setLoading(false);
setData(res)
});
};
useEffect(() => {
getData()
}, []);
// const [userLoading, setUserLoading] = useState(false)
const treeClick = (DEPTID) => {
const newData = [...data];
const index = newData.findIndex(item => item.DEPTID === DEPTID);
const checked = newData[index].checked ? newData[index] : false;
newData[index] = {...newData[index], loading: true, children: [], checked: !checked};
setData(newData);
!checked && getUser(DEPTID)
};
const getUser = (DEPTID) => {
axiosRequest({
method: 'post',
url: `/idtAppServiceV6/oApp/getSearchAddressBook?deptId=${DEPTID}`,
}).then(res => {
const child = res.userList && res.userList.length > 0 ? res.userList : [];
const newData = [...data];
const index = newData.findIndex(item => item.DEPTID === DEPTID);
newData[index] = {...newData[index], loading: false, children: child, checked: true};
setData(newData)
// setData()
});
};
return (
<Document title="参加人数">
<div>
<div className='adMainBox'>
{loading ? <Skeleton/> : (<AddressList data={data} onClick={treeClick}/>)}
</div>
</div>
</Document>
);
};
export default AddressBook;
import React from 'react';
import './index.less'
import List from '../../components/List'
import '../index.less'
import List from '../../../components/List'
const Basic = (props) => {
const {data} = props
......
import React from 'react';
import StepCard from '../../components/Card/StepCard'
import StepCard from '../../../components/Card/StepCard'
const Flow = (props) => {
const {data} = props
......
import React from 'react';
import './index.less'
const Index = (props) => {
const {data, onClick} = props;
return (
<div className="address-box">
{data && data.length > 0 && data.map((item, index) => (
<div key={index}>
<div className="address-item address-title" onClick={() => onClick(item.DEPTID)}>
{item.NAME || ''}
<img src="/img/rarrow.png" alt="" className={`icon18 ${item.checked ? 'icon-checked' : 'icon-unchecked'}`}/>
</div>
{ item.checked && (
<div className="address-item-box">
{item.children.map((child, index2) => (
<div className="address-item" key={index2}>
111111
</div>
))}
</div>
)}
</div>
))}
</div>
);
};
export default Index;
import React from 'react';
// import {Modal} from 'antd-mobile'
import './index.less';
import '../index.less';
// const operation = Modal.operation;
......
.address-item{
display: flex;
justify-content: space-between;
padding: 15px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
background: #ffffff;
}
.address-box > .address-item:first-child{
border-radius: 6px 6px 0 0;
}
.address-box > .address-item:last-child{
border-radius: 0 0 6px 6px;
}
.sub-checkbox{
display: flex;
justify-content: space-between;
}
.address-phone{
color: rgba(0, 0, 0, 1) !important;
}
.sub-title{
padding: 10px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
}
.address-loading{
background: #ffffff;
border-bottom: 1px solid rgba(239, 239, 239, 1);
}
.icon-unchecked{
transition: transform 350ms;
}
.icon-checked{
transform: rotate(90deg);
transition: transform 350ms;
}
.address-item-box .address-item{
padding: 15px 40px;
}
.address-empty{
display: flex;
justify-content: center;
padding: 15px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
background: #ffffff;
}
.address-title{
font-weight: bold;
}
......@@ -114,3 +114,56 @@
.am-action-sheet-button-list-item .am-action-sheet-cancel-button{
color: red;
}
.address-item{
display: flex;
justify-content: space-between;
padding: 15px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
background: #ffffff;
}
.address-box > .address-item:first-child{
border-radius: 6px 6px 0 0;
}
.address-box > .address-item:last-child{
border-radius: 0 0 6px 6px;
}
.sub-checkbox{
display: flex;
justify-content: space-between;
}
.address-phone{
color: rgba(0, 0, 0, 1) !important;
}
.sub-title{
padding: 10px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
}
.address-loading{
background: #ffffff;
border-bottom: 1px solid rgba(239, 239, 239, 1);
}
.icon-unchecked{
transition: transform 350ms;
}
.icon-checked{
transform: rotate(90deg);
transition: transform 350ms;
}
.address-item-box .address-item{
padding: 15px 40px;
}
.address-empty{
display: flex;
justify-content: center;
padding: 15px;
border-bottom: 1px solid rgba(239, 239, 239, 1);
background: #ffffff;
}
.address-title{
font-weight: bold;
}
import React, {useState, useEffect} from 'react';
import {WingBlank, List, InputItem, TextareaItem} from 'antd-mobile'
import React from 'react';
import {WingBlank, List, InputItem, TextareaItem, WhiteSpace} from 'antd-mobile'
import 'react-calendar/dist/Calendar.css';
import Document from 'react-document-title'
import '../index.less'
import { createForm } from 'rc-form';
const Send = (props) => {
const {getFieldProps} = props.form;
const onSubmit = () => {
props.form.validateFields({ force: true }, (error) => {
if (!error) {
console.log(props.form.getFieldsValue());
} else {
alert('Validation failed');
}
});
};
return (
<Document title="内部邮局">
<WingBlank>
<form>
<List>
<InputItem
{...getFieldProps('title')}
placeholder="请输入主题"
>主题</InputItem>
<InputItem
{...getFieldProps('title2')}
placeholder="请输入收件人"
>收件人</InputItem>
<TextareaItem
title="内容"
placeholder="请输内容"
{...getFieldProps('title3')}
rows={4}
/>
<List.Item>
<input type="file"/>
</List.Item>
</List>
</form>
<div className="event-footer">
<div className="event-footer-button" onClick={onSubmit}>发送</div>
</div>
<WhiteSpace/>
<List>
<InputItem value={`1111`}>主题</InputItem>
<InputItem value={`1111`}>收件人</InputItem>
<TextareaItem
title="内容"
value={'11111111111111111111111111111111'}
rows={4}
/>
</List>
</WingBlank>
</Document>
);
};
export default createForm()(Send);
export default Send;
import React, {useState, useEffect} from 'react';
import {WingBlank, List, InputItem, TextareaItem} from 'antd-mobile'
import React, {useState} from 'react';
import {WingBlank, List, InputItem, TextareaItem, WhiteSpace} from 'antd-mobile'
import 'react-calendar/dist/Calendar.css';
import Document from 'react-document-title'
import '../index.less'
import Document from 'react-document-title';
import '../index.less';
import axiosRequest from '../../../utils/request';
import { createForm } from 'rc-form';
......@@ -11,12 +11,21 @@ import { createForm } from 'rc-form';
const Send = (props) => {
const {getFieldProps} = props.form;
const [loading, setLoading] = useState(false)
const onSubmit = () => {
props.form.validateFields({ force: true }, (error) => {
const values = props.form.getFieldsValue();
setLoading(true);
if (!error) {
console.log(props.form.getFieldsValue());
} else {
alert('Validation failed');
axiosRequest({
method: 'post',
url: '/idtAppServiceV6/oApp/getGridDataList',
body: values,
}).then(res => {
setLoading(true)
});
console.log(loading);
}
});
};
......@@ -24,6 +33,7 @@ const Send = (props) => {
return (
<Document title="内部邮局">
<WingBlank>
<WhiteSpace/>
<form>
<List>
<InputItem
......@@ -40,9 +50,9 @@ const Send = (props) => {
{...getFieldProps('title3')}
rows={4}
/>
<List.Item>
<input type="file"/>
</List.Item>
{/*<List.Item>*/}
{/*<input type="file"/>*/}
{/*</List.Item>*/}
</List>
</form>
<div className="event-footer">
......
......@@ -16,6 +16,7 @@ import Date from './pages/UnCommon/Date'
import Mail from './pages/UnCommon/Mail'
import MainInfo from './pages/UnCommon/Mail/Info'
import MainSend from './pages/UnCommon/Mail/Send'
import People from './pages/EventProcessing/UnCommon/People'
import Login from './pages/Login'
import NoFound from './pages/NoFound'
......@@ -43,6 +44,8 @@ const ReactRouter = () => {
<Route path="/blank/mail" component={Mail}/>
<Route path="/blank/mail-info" component={MainInfo}/>
<Route path="/blank/mail-send" component={MainSend}/>
<Route path="/blank/people" component={People}/>
<Route path="/blank/work/:type/:name" component={WorkDetail}/>
<Route path="/blank/submit/:flowNodeId/:uuid/:flowTbId" component={SubmitDetail}/>
<Route path="/blank/info/:id/:uuid/:FLOWTBID" component={Process}/>
......
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