提交 b02d0411 authored 作者: 钟是志's avatar 钟是志

28753 北电]求职创业补贴管理,审批页面按钮无反应

上级 78d1d3c1
......@@ -35,7 +35,7 @@ function giveKey(key, datas) {
}
export async function countAllValues(datas, item) {
console.log(datas);
// console.log(datas);
if (item.setNull) {
datas.allValues = JSON.stringify({});
} else {
......
......@@ -3,7 +3,7 @@
* 2019年9月19日
* 查看详情页面
*/
import React, { Component, Fragment, useRef } from 'react';
import React, { Component, Fragment, useEffect, useState } from 'react';
import {
Row,
Col,
......@@ -101,7 +101,7 @@ class DetailSplit extends Component {
* @function 同步加签函数
* @param { function } func 打开加签弹框函数
*/
updateCountersignModal = func => {
updateCountersignModal = (func) => {
this.setState({
countersignModal: func,
});
......@@ -135,20 +135,17 @@ class DetailSplit extends Component {
componentDidMount() {
this.getInit();
if (this.props.onRef) {
this.props.onRef(this);
}
}
// getInit2 = () => {
// console.log('getInit2');
// }
/**
* @function 默认请求
*/
getInit = handleUser => {
const { dispatch } = this.props;
getInit = (handleUser) => {
const { dispatch, formPrepareData } = this.props;
const id = this.props.history.location.state && this.props.history.location.state.id;
const code = this.props.history.location.state && this.props.history.location.state.code;
const queryId = this.props.history.location.query && this.props.history.location.query.id;
......@@ -161,24 +158,15 @@ class DetailSplit extends Component {
return;
}
}
dispatch({
type: 'affair/getIdFormDetail',
payload: {
id: queryId ? queryId : id, // 审批表Id
code: code || null, // 表单值
handleUser: handleUser || null, // 处理人
taskId, // 多任务流程会使用到,后续改为必须传入
lite: true,
},
callback: val => {
const val = formPrepareData;
if (val) {
if (this.props.changeData) {
this.props.changeData(val);
}
const checkListOptions = [];
const checkedConfimList = [];
if (val.hisTaskForm.formKeys) {
val.hisTaskForm.formKeys.map(item => {
val.hisTaskForm.formKeys.map((item) => {
checkListOptions.push({
label: item.taskName,
value: item.formKey,
......@@ -186,11 +174,11 @@ class DetailSplit extends Component {
});
}
if (val && !val.taskInfo) {
permRequest('/UnifiedAppFormApi/getTaskInfos', { // 获取每一步的审核人.
permRequest('/UnifiedAppFormApi/getTaskInfos', {
// 获取每一步的审核人.
id: queryId ? queryId : id, // 审批表Id
code: code || null, // 表单值
})
.then(res => {
}).then((res) => {
val.taskInfo = res.taskInfo;
this.setState(
{
......@@ -219,13 +207,16 @@ class DetailSplit extends Component {
this.props.dispatch({
type: 'urge/GetMyBtn',
payload: {},
callback: arr => {
this.setState({
callback: (arr) => {
this.setState(
{
btnList: arr,
radiovalue: val.formLevelId ? val.formLevelId : arr[arr.length - 1].id,
}, () => {
},
() => {
// this.giveMessageTop();
});
},
);
},
});
} else {
......@@ -233,18 +224,15 @@ class DetailSplit extends Component {
}
},
);
});
}
},
});
}
dispatch({
type: 'emailorphone/GetLogo',
payload: {
configKeys: ['isCloseUserDetail', 'isCloseFlowPath', 'isAllPrint', 'closeAutoSign'],
},
callback: val => {
callback: (val) => {
const closeAutoSign = !!(val[3] && val[3].configValue === 'true');
this.setState({
isCloseUserDetail: !!(val[0] && val[0].configValue === 'true'),
......@@ -259,7 +247,7 @@ class DetailSplit extends Component {
this.props.dispatch({
type: 'UserSetCenterApi/queryUserSet',
payload: {},
callback: val => {
callback: (val) => {
this.setState({
setData: val,
});
......@@ -283,10 +271,8 @@ class DetailSplit extends Component {
});
}
}
};
/**
* @function 用户点击确认执行相应操作
* @description: 注意 用户点击状态时在点击动态配置按钮时进行了保存,并在该函数中最终提交给后端
......@@ -298,16 +284,7 @@ class DetailSplit extends Component {
*/
affairOk = (oldkey, btnValue, value, checked, callback) => {
const { dispatch } = this.props;
const {
radiovalue,
isSecond,
userInfo,
setData,
data,
btns,
taskId,
code,
} = this.state;
const { radiovalue, isSecond, userInfo, setData, data, btns, taskId, code } = this.state;
const { handleUser } = this.props.history.location.state;
const isCloseFlowPath = sessionStorage.getItem('isCloseFlowPath')
? JSON.parse(sessionStorage.getItem('isCloseFlowPath'))
......@@ -316,12 +293,14 @@ class DetailSplit extends Component {
callback();
}
let checkSumbitInfo = checkNeedFormValidateFieldsAndScroll({ // 检查是否必填表单值
let checkSumbitInfo = checkNeedFormValidateFieldsAndScroll({
// 检查是否必填表单值
btns,
btnValue,
});
let needWriteAuditInfo = checkNeedWriteAuditInfo({ // 检查是否必填审批理由
let needWriteAuditInfo = checkNeedWriteAuditInfo({
// 检查是否必填审批理由
btns,
btnValue,
});
......@@ -351,23 +330,23 @@ class DetailSplit extends Component {
handleUser,
};
if (!checkSumbitInfo) { // 如果不需要校验 直接提交数据
if (!checkSumbitInfo) {
// 如果不需要校验 直接提交数据
const values = this.props.form.getFieldsValue();
argumentsSubmitValue.values = values;
submitValues(argumentsSubmitValue);
} else {
this.props.form.validateFieldsAndScroll((err, values) => { // 校验是否填了必填字段
this.props.form.validateFieldsAndScroll((err, values) => {
// 校验是否填了必填字段
if (!err) {
argumentsSubmitValue.values = values;
submitValues(argumentsSubmitValue);
}
});
}
};
onChange = e => {
onChange = (e) => {
this.setState({
radiovalue: e.target.value,
});
......@@ -377,7 +356,7 @@ class DetailSplit extends Component {
* @function 复选框状态函数
* @event change
*/
onCheckChange = checkedValues => {
onCheckChange = (checkedValues) => {
this.setState({
checkedConfimList: checkedValues,
});
......@@ -394,15 +373,14 @@ class DetailSplit extends Component {
* @function 通过用户复选框选择拼装为对应打印页面
*/
changeTake = checked => {
changeTake = (checked) => {
this.setState({ isTakeFlow: checked });
};
changePadding = value => {
changePadding = (value) => {
this.setState({ paddingBottom: value });
};
render() {
const {
stepFlow,
......@@ -462,29 +440,29 @@ class DetailSplit extends Component {
width: '100%',
display: 'flex',
justifyContent: 'center',
}}
>
}}>
<div style={{ width: '100%' }}>
<div
className={styles.header}
style={{
position: 'relative',
}}
>
}}>
{isCloseFlowPath ? null : ( // 关闭流程紧急度显示
<span
style={{
position: 'absolute',
left: 0,
top: '30%',
}}
>
}}>
{isSecond ? (
<>
<span style={{ marginRight: 12 }}>{must}流程紧急度</span>
<span style={{ marginRight: 12 }}>
{must}
流程紧急度
</span>
<Radio.Group onChange={this.onChange} value={radiovalue}>
{btnList.length > 0
? btnList.map(item => (
? btnList.map((item) => (
<Radio key={item.id + Math.random()} value={item.id}>
<span style={{ color: item.color }}>{item.name}</span>
</Radio>
......@@ -499,8 +477,7 @@ class DetailSplit extends Component {
style={{
color: formColor || '',
marginLeft: 21,
}}
>
}}>
{formLevel || '暂无'}
</span>
</>
......@@ -537,7 +514,7 @@ class DetailSplit extends Component {
表单间距:
<InputNumber
min={0}
size='small'
size="small"
value={paddingBottom}
onChange={this.changePadding}
/>
......@@ -552,9 +529,8 @@ class DetailSplit extends Component {
</div>
</div>
}
okText='确定'
cancelText='取消'
>
okText="确定"
cancelText="取消">
{(data.isPrint == null || data.isPrint || isAllPrint) && showPrint !== false ? (
<Button
style={{
......@@ -562,8 +538,7 @@ class DetailSplit extends Component {
right: 200,
top: '30%',
}}
type='primary'
>
type="primary">
打印预览
</Button>
) : (
......@@ -577,8 +552,7 @@ class DetailSplit extends Component {
</div>
</div>
</div>
{isLoading ?
(
{isLoading ? (
<>
<Card style={{ width: '100%' }}>
{!isCloseUserDetail && (
......@@ -592,72 +566,71 @@ class DetailSplit extends Component {
data.userPhone ||
data.userSchool) && (
<Row className={styles.row}>
{data && data.code && (
{data &&
data.code && (
<Col
style={{
marginBottom: 12,
}}
span={8}
>
span={8}>
<span className={styles.hea_title}>单号</span>
<span className={styles.hew_content}>{data.code}</span>
</Col>
)}
{data && data.userName && (
{data &&
data.userName && (
<Col
style={{
marginBottom: 12,
}}
span={8}
>
span={8}>
<span className={styles.hea_title}>用户姓名</span>
<span className={styles.hew_content}>{data.userName}</span>
</Col>
)}
{data && data.userPosition && (
{data &&
data.userPosition && (
<Col
style={{
marginBottom: 12,
}}
span={8}
>
span={8}>
<span className={styles.hea_title}>职位</span>
<span className={styles.hew_content}>{data.userPosition}</span>
</Col>
)}
{data && data.userSchool && (
{data &&
data.userSchool && (
<Col
span={8}
style={{
marginBottom: 12,
}}
>
}}>
<span className={styles.hea_title}>学院/单位</span>
<span className={styles.hew_content}>{data.userSchool}</span>
</Col>
)}
{data && data.userPhone && (
{data &&
data.userPhone && (
<Col
span={8}
style={{
marginBottom: 12,
}}
>
}}>
<span className={styles.hea_title}>联系电话</span>
<span className={styles.hew_content}>{data.userPhone}</span>
</Col>
)}
{data && data.createTime && (
{data &&
data.createTime && (
<Col
style={{
marginBottom: 12,
}}
span={8}
>
span={8}>
<span className={styles.hea_title}>申请时间</span>
<span className={styles.hew_content}>
{moment(data.createTime)
.format('YYYY-MM-DD HH:mm')}
{moment(data.createTime).format('YYYY-MM-DD HH:mm')}
</span>
</Col>
)}
......@@ -667,38 +640,38 @@ class DetailSplit extends Component {
)}
<div
className={styles.HistoryFormList}
id='card_table'
ref={el => (this.componentRef = el)}
style={{ padding: !isShowTitle ? '50px' : '' }}
>
<HistoryFormList data={data}
id="card_table"
ref={(el) => (this.componentRef = el)}
style={{ padding: !isShowTitle ? '50px' : '' }}>
<HistoryFormList
data={data}
formKeys={hisTaskFormKeys?.formKeys}
isShowTitle={isShowTitle}
routerState={routerState}
formData={hisTaskFormKeys?.formData}
/>
{isHandle === true && !!data.taskFormKey && (
{isHandle === true &&
!!data.taskFormKey && (
<>
{isShowTitle ? (
<h3
style={{
display: 'flex',
alignItems: 'center',
}}
>
<SVG name='vertical' color='#999999' height='24' />
}}>
<SVG name="vertical" color="#999999" height="24" />
当前流程
</h3>
) : (
''
)}
{isEmpty(data) === false ? (
<GetZdyTable
<ZdyTable
key={data.taskFormKey}
postData={data}
get='web'
get="web"
obj={hisTaskFormKeys.formData}
table='new'
table="new"
form={this.props.form}
routerState={routerState}
/>
......@@ -711,16 +684,15 @@ class DetailSplit extends Component {
</Card>
<Card style={{ width: '100%' }}>
<div className={styles.body_content} style={{ minHeight: '300px' }}>
<div id={'btnsModalMountDiv'}></div>
<div id={'btnsModalMountDiv'} />
<h3>
审批状态 <span onClick={this.examineFlow}>查看流程图</span>
</h3>
<div
ref={el => (this.componentTwoRef = el)}
ref={(el) => (this.componentTwoRef = el)}
style={{
padding: !isShowTitle ? '0 50px 50px 50px' : '',
}}
>
}}>
<Timeline>
{stepFlow !== '' && steps !== ''
? stepFlow.map((item, index) => {
......@@ -732,39 +704,47 @@ class DetailSplit extends Component {
dot={
<Icon
type={
['处理中', '待处理'].includes(item.status) ? 'clock-circle-o' : 'check-circle'
['处理中', '待处理'].includes(item.status)
? 'clock-circle-o'
: 'check-circle'
}
style={{ fontSize: '16px' }}
/>
}
className={styles.steps_step}
key={item.id}
>
key={item.id}>
<p className={styles.steps_title}>
{item.assignee}
<span>
{item.endTime
? moment(item.endTime)
.format('YYYY-MM-DD HH:mm')
? moment(item.endTime).format('YYYY-MM-DD HH:mm')
: '处理中'}
</span>
</p>
{
queryApiVersion() === '2.0' && ['处理中', '待处理'].includes(item.status) && !!data.nextUsers && (
<p>审批人员: {data.nextUsers}</p>
)
}
{queryApiVersion() !== '2.0' && ['处理中', '待处理'].includes(item.status) && !!item.nextUsers && (
<p>审批人员: {item.nextUsers}</p>
)}
<p>审批流程:{item.name}</p>
<p className={styles.steps_body}>审批状态:{item.status}</p>
{queryApiVersion() === '2.0' &&
['处理中', '待处理'].includes(item.status) &&
!!data.nextUsers && <p>审批人员: {data.nextUsers}</p>}
{queryApiVersion() !== '2.0' &&
['处理中', '待处理'].includes(item.status) &&
!!item.nextUsers && <p>审批人员: {item.nextUsers}</p>}
<p>
审批流程:
{item.name}
</p>
<p className={styles.steps_body}>
审批状态:
{item.status}
</p>
{item.taskVariable?.reason ? (
<p>审批原因:{item.taskVariable?.reason}</p>
<p>
审批原因:
{item.taskVariable?.reason}
</p>
) : (
''
)}
{item.childTaskModel && item.childTaskModel.length > 0 && (
{item.childTaskModel &&
item.childTaskModel.length > 0 && (
<ChildTaskModel data={item.childTaskModel} />
)}
......@@ -783,7 +763,7 @@ class DetailSplit extends Component {
? queryApiActionPath() + item.taskVariable?.sign
: ''
}
alt=''
alt=""
/>
) : (
''
......@@ -802,32 +782,40 @@ class DetailSplit extends Component {
''
) : (
<Icon
type='check-circle'
theme='twoTone'
twoToneColor='#52c41a'
type="check-circle"
theme="twoTone"
twoToneColor="#52c41a"
/>
)
}
className={styles.steps_step}
key={item.id}
>
key={item.id}>
<p className={styles.steps_title}>
{item.assignee}
<span>
{item.endTime
? moment(item.endTime)
.format('YYYY-MM-DD HH:mm')
? moment(item.endTime).format('YYYY-MM-DD HH:mm')
: null}
</span>
</p>
<p>审批流程:{item.name}</p>
<p className={styles.steps_body}>审批状态:{item.status}</p>
<p>
审批流程:
{item.name}
</p>
<p className={styles.steps_body}>
审批状态:
{item.status}
</p>
{item.taskVariable?.reason ? (
<p>审批原因:{item.taskVariable.reason}</p>
<p>
审批原因:
{item.taskVariable.reason}
</p>
) : (
''
)}
{item.childTaskModel && item.childTaskModel.length > 0 && (
{item.childTaskModel &&
item.childTaskModel.length > 0 && (
<ChildTaskModel data={item.childTaskModel} />
)}
{item.taskVariable?.sign ? (
......@@ -845,7 +833,7 @@ class DetailSplit extends Component {
? queryApiActionPath() + item.taskVariable?.sign
: ''
}
alt=''
alt=""
/>
) : (
''
......@@ -890,8 +878,7 @@ class DetailSplit extends Component {
data,
);
}}
type='primary'
>
type="primary">
{data.isHandle && data.isOwner
? '转办'
: !data.isHandle && data.isOwner
......@@ -909,8 +896,7 @@ class DetailSplit extends Component {
minWidth: 90,
}}
onClick={this.onClickCountersign}
type='primary'
>
type="primary">
加签
</Button>
)}
......@@ -921,13 +907,15 @@ class DetailSplit extends Component {
) : (
''
)}
{isTrunTo && data.isSecond !== true && !data.isHandle && data.isOwner && (
{isTrunTo &&
data.isSecond !== true &&
!data.isHandle &&
data.isOwner && (
<div
style={{
width: '100%',
textAlign: 'center',
}}
>
}}>
<Button
style={{
minHeight: 32,
......@@ -937,8 +925,7 @@ class DetailSplit extends Component {
onClick={() => {
this.showTrunToModel('撤回', data);
}}
type='primary'
>
type="primary">
撤回
</Button>
</div>
......@@ -953,13 +940,12 @@ class DetailSplit extends Component {
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
}}
>
<Spin size='large' spinning={true} />
}}>
<Spin size="large" spinning={true} />
</div>
)}
<PortalFlowExamineModal // 流程图
ref={node => (this.flowExamineModal = node)}
ref={(node) => (this.flowExamineModal = node)}
affairId={id}
id={appId}
code={code}
......@@ -984,13 +970,49 @@ class DetailSplit extends Component {
}
}
export default function Index(props) {
return <DetailSplit {...props} />;
}
function Index(props) {
const { dispatch, history } = props;
const [prepare, setPrepare] = useState(false);
useEffect(() => {
const id = history.location.state && history.location.state.id;
const code = history.location.state && history.location.state.code;
const queryId = history.location.query && history.location.query.id;
const taskId = history.location.state && history.location.state.taskId;
if (!id && !code) {
if (queryId) {
} else {
openToast('error', '数据已过期', '当前页面数据已过期,请重新进入');
return;
}
}
message.info('正在加载数据,请等待。');
dispatch({
type: 'affair/getIdFormDetail',
payload: {
id: queryId ? queryId : id, // 审批表Id
code: code || null, // 表单值
handleUser: null, // 处理人
taskId, // 多任务流程会使用到,后续改为必须传入
lite: true,
},
callback: (val) => {
if (val) {
setPrepare(val);
}
},
});
}, []);
function GetZdyTable(props) {
const ZdyTableFormNew = Form.create(
if (!prepare) {
return <Spin size="large" spinning={true} />;
}
const DetailSplitFormNew = Form.create(
window.zdyTableTemplateWillMountProps?.formCreateOptions || undefined,
)(ZdyTable);
return <ZdyTableFormNew {...props}/>
)(DetailSplit);
return <DetailSplitFormNew {...props} formPrepareData={prepare} />;
}
export default connect(() => {
return {};
})(Index);
......@@ -19,6 +19,7 @@ import getActiveJson from '@/webPublic/one_stop_public/Table/getActiveJson';
export default class ZdyTable extends Component {
constructor(props) {
super(props);
console.log(props);
this.state = {
objRealTime: {},
isChange: false,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论