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

31396 勤工助学学生申请岗位和填报岗位工时需要做手机端

上级 f7af5abe
...@@ -2,101 +2,97 @@ import React, { useState, useEffect, useMemo, useCallback, memo, useRef } from ' ...@@ -2,101 +2,97 @@ import React, { useState, useEffect, useMemo, useCallback, memo, useRef } from '
import { Steps } from 'antd'; import { Steps } from 'antd';
import ZdyTable from '@/webPublic/one_stop_public/Table'; import ZdyTable from '@/webPublic/one_stop_public/Table';
import styles from '../style.less'; import styles from '../style.less';
const { Step } = Steps; const { Step } = Steps;
const Child = memo((props) => { const Child = memo(props => {
const { value, json, partFormProps } = props; const { value, json, partFormProps } = props;
const diyProps = useMemo( const diyProps = useMemo(() => {
() => { let b = {};
let b = {}; if (value && typeof value === 'object') {
if (value && typeof value === 'object') { b = {
b = { ...value,
...value, };
}; }
} if (json.otherProps && typeof json.otherProps === 'string') {
if (json.otherProps && typeof json.otherProps === 'string') { try {
try { let a = new Function(json.otherProps)();
let a = new Function(json.otherProps)(); if (a) {
if (a) { return {
return { ...a,
...a, ...b,
...b, };
}; }
} return b;
return b; } catch (e) {
} catch (e) { console.error('Step组件 otherProps错误');
console.error('Step组件 otherProps错误'); }
} } else {
} else { return b;
return b; }
} }, [json.otherProps, value]);
},
[json.otherProps, value],
);
// console.log(diyProps); // console.log(diyProps);
const [current, setCurrent] = useState(diyProps?.StepsProps?.current || 0); const [current, setCurrent] = useState(diyProps?.StepsProps?.current || 0);
const partFormKey = useMemo( const partFormKey = useMemo(() => {
() => { if (typeof current !== 'undefined') {
if (typeof current !== 'undefined') { let item = diyProps.Step.find((g, index) => {
let item = diyProps.Step.find((g, index) => { return index === current;
return index === current; });
}); if (item) {
if (item) { return item.formKey;
return item.formKey; }
} }
} return undefined;
return undefined; }, [current]);
},
[current],
);
useEffect( useEffect(() => {
() => { if (diyProps?.StepsProps?.current !== current) {
if (diyProps?.StepsProps?.current !== current) { setCurrent(diyProps?.StepsProps?.current);
setCurrent(diyProps?.StepsProps?.current); }
} }, [diyProps?.StepsProps?.current]);
},
[diyProps?.StepsProps?.current],
);
return ( return (
<div style={diyProps.outSideDivStyle} className={styles.stepsInfo}> <div style={diyProps.outSideDivStyle} className={styles.stepsInfo}>
<Steps {...diyProps.StepsProps} current={current}> <Steps {...diyProps.StepsProps} current={current}>
{Array.isArray(diyProps.Step) && {Array.isArray(diyProps.Step) &&
diyProps.Step.map((g) => { diyProps.Step.map(g => {
return <Step {...g} key={g.title} />; return <Step {...g} key={g.title} />;
})} })}
</Steps> </Steps>
{Array.isArray(diyProps.Step) && {Array.isArray(diyProps.Step) &&
diyProps.Step.filter((g) => !!g.formKey).map((g, index) => { diyProps.Step.filter(g => !!g.formKey && g.formKey === partFormKey).map((g, index) => {
return ( // 解决禅道 31396 勤工助学学生申请岗位和填报岗位工时需要做手机端
<div key={g.formKey} style={{ display: partFormKey === g.formKey ? 'block' : 'none' }}> // 钟是志 切换step时 重新渲染formkey
<ZdyTable return (
{...partFormProps} <div key={g.formKey}
currentFormTitle={'Steps组件的子表单' + g.formKey} style={{ display: partFormKey === g.formKey ? 'block' : 'none' }}
key={g.formKey} >
currentFormKey={g.formKey} <ZdyTable
{...partFormProps}
currentFormTitle={'Steps组件的子表单' + g.formKey}
key={g.formKey}
currentFormKey={g.formKey}
form={props.form} form={props.form}
{...partFormProps?.datas[g.formKey]} {...partFormProps?.datas[g.formKey]}
/> />
</div> </div>
); );
})} })}
</div> </div>
); );
}); });
export default function StepDiy(props){ export default function StepDiy(props) {
const { value, json, partFormProps, form } = props; const { value, json, partFormProps, form } = props;
const js = useMemo(() => { const js = useMemo(() => {
return json; return json;
}, [json]); }, [json]);
if (!js) { if (!js) {
return null; return null;
} }
return <Child json={js} value={value} partFormProps={partFormProps} form={form} />; return <Child json={js} value={value} partFormProps={partFormProps} form={form} />;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论