201 lines
9.3 KiB
JavaScript
201 lines
9.3 KiB
JavaScript
|
|
|
|||
|
|
import { Button, Row, Col, InputNumber, Modal, message } from 'antd';
|
|||
|
|
import {observer} from 'mobx-react';
|
|||
|
|
import { WeaSearchGroup, WeaFormItem, WeaDialog, WeaUpload, WeaProgress, WeaLocaleProvider, WeaTableEditable, WeaNewScroll } from 'ecCom';
|
|||
|
|
import { WeaSwitch } from "comsMobx"
|
|||
|
|
import { toJS } from "mobx"
|
|||
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|||
|
|
|
|||
|
|
@observer
|
|||
|
|
class FeedBackInfoDialog extends React.Component {
|
|||
|
|
constructor(props) {
|
|||
|
|
super(props);
|
|||
|
|
this.state={
|
|||
|
|
width:1020,
|
|||
|
|
height:650,
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
render() {
|
|||
|
|
const {feedBackInfoStore} = this.props;
|
|||
|
|
const {visible,handleFeedBackInfoDialog,fieldinfo,form,setFormFields,title,mxdatas,setMxDatas} = feedBackInfoStore;
|
|||
|
|
const { isFormInit } = form;
|
|||
|
|
|
|||
|
|
const columns = [{
|
|||
|
|
title: 'id',
|
|||
|
|
dataIndex: 'id',
|
|||
|
|
width: '0%',
|
|||
|
|
com: [
|
|||
|
|
{type: 'INPUT', key: 'id'}
|
|||
|
|
],
|
|||
|
|
colSpan: 0
|
|||
|
|
},{
|
|||
|
|
title: <span>{getLabel('22069', '完成情况')}</span>,
|
|||
|
|
dataIndex: 'ctx',
|
|||
|
|
width: '50%',
|
|||
|
|
com: [
|
|||
|
|
{type: 'INPUT', key: 'ctx'}
|
|||
|
|
],
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: <span>{getLabel('156', '附件')}</span>,
|
|||
|
|
dataIndex: 'attach',
|
|||
|
|
key: 'attach',
|
|||
|
|
width: '50%',
|
|||
|
|
com: [
|
|||
|
|
{
|
|||
|
|
type: 'CUSTOM',
|
|||
|
|
key: 'attach',
|
|||
|
|
render: (text, record, number, onEdit) => {
|
|||
|
|
return (<WeaUpload ecId={`${this && this.props && this.props.ecId || ''}_WeaUpload@ufsjv5`}
|
|||
|
|
btnSize="small"
|
|||
|
|
uploadUrl={`${window.ecologyContentPath || ''}/api/doc/upload/uploadFile`}
|
|||
|
|
category="string"
|
|||
|
|
maxUploadSize={50}
|
|||
|
|
viewAttr={2}
|
|||
|
|
isDetail={true}
|
|||
|
|
datas={record.attach || []}
|
|||
|
|
listType="list"
|
|||
|
|
clearWhenReset={false}
|
|||
|
|
showClearAll={false}
|
|||
|
|
onChange={(ids, list) => {
|
|||
|
|
onEdit({
|
|||
|
|
type: "CUSTOM",
|
|||
|
|
record: {
|
|||
|
|
...record,
|
|||
|
|
},
|
|||
|
|
index : record.key,
|
|||
|
|
key: "attach",
|
|||
|
|
value: list
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/>)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
let group = [];
|
|||
|
|
const formParams = form.getFormParams();
|
|||
|
|
isFormInit && fieldinfo.map((c,i) => {
|
|||
|
|
let items = [];
|
|||
|
|
c.items.map(fields => {
|
|||
|
|
let hide = false;
|
|||
|
|
let dom;
|
|||
|
|
let hasunderline = false;
|
|||
|
|
//只读样式控制
|
|||
|
|
let stylecss = { 'margin-right': '5px', 'margin-top': '6px' };
|
|||
|
|
if (fields.viewAttr == "1" || (fields.conditionType == "BROWSER" && fields.browserConditionParam.viewAttr == "1")) {
|
|||
|
|
hasunderline = true;
|
|||
|
|
stylecss = { 'margin-right': '5px', 'margin-top': '16px' };
|
|||
|
|
}
|
|||
|
|
if (fields.domkey[0] == "finish") {
|
|||
|
|
if (fields.viewAttr == "1") {
|
|||
|
|
dom = <Row ecId={`${this && this.props && this.props.ecId || ''}_Row@drin38@${fields.domkey[0]}`}>
|
|||
|
|
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@i8y1hh@${fields.domkey[0]}`} span={12} style={stylecss}>
|
|||
|
|
<WeaProgress ecId={`${this && this.props && this.props.ecId || ''}_WeaProgress@xmqsm8@${fields.domkey[0]}`} name={fields.domkey[0]} percent={fields.value || 0} strokeColor={fields.strokeColor} status="active" />
|
|||
|
|
</Col><span style={{ color: "#FF0000" }}>{fields.befSpan || ""}</span>
|
|||
|
|
</Row>
|
|||
|
|
} else {
|
|||
|
|
dom = <Row ecId={`${this && this.props && this.props.ecId || ''}_Row@kf05jt@${fields.domkey[0]}`}>
|
|||
|
|
<Col ecId={`${this && this.props && this.props.ecId || ''}_Col@56w1oj@${fields.domkey[0]}`} span={24} style={stylecss}>
|
|||
|
|
<InputNumber ecId={`${this && this.props && this.props.ecId || ''}_InputNumber@tv3wyo@${fields.domkey[0]}`} name={fields.domkey[0]} min={0} value={formParams.finish}
|
|||
|
|
onChange={(v) => { this.checkProgress(v); }} />
|
|||
|
|
<span style={{ marginLeft: 5 }}>%</span>
|
|||
|
|
</Col>
|
|||
|
|
</Row>
|
|||
|
|
}
|
|||
|
|
}else {
|
|||
|
|
dom = <WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@8rv6lq@${fields.domkey[0]}`} fieldConfig={fields} form={form} />;
|
|||
|
|
}
|
|||
|
|
if (hasunderline) {
|
|||
|
|
items.push({
|
|||
|
|
com: (<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@9xah8d@${fields.domkey[0]}`}
|
|||
|
|
label={`${fields.label}`}
|
|||
|
|
labelCol={{ span: `${fields.labelcol}` }}
|
|||
|
|
error={form.getError(fields)}
|
|||
|
|
tipPosition="bottom"
|
|||
|
|
wrapperCol={{ span: `${fields.fieldcol}` }} underline>
|
|||
|
|
{dom}
|
|||
|
|
</WeaFormItem>),
|
|||
|
|
colSpan: 1,
|
|||
|
|
hide: hide
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
items.push({
|
|||
|
|
com: (<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@3v8lba@${fields.domkey[0]}`}
|
|||
|
|
label={`${fields.label}`}
|
|||
|
|
labelCol={{ span: `${fields.labelcol}` }}
|
|||
|
|
error={form.getError(fields)}
|
|||
|
|
tipPosition="bottom"
|
|||
|
|
wrapperCol={{ span: `${fields.fieldcol}` }} >
|
|||
|
|
{dom}
|
|||
|
|
</WeaFormItem>),
|
|||
|
|
colSpan: 1,
|
|||
|
|
hide: hide
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
group.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@64tg0e@${i}`} needTigger={true} title={c.title} col={1} showGroup={c.defaultshow} items={items} />)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
return (
|
|||
|
|
<div>
|
|||
|
|
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@soq3pd`}
|
|||
|
|
style={{height:'700px',width:'800px'}}
|
|||
|
|
title={title||getLabel('518174','编辑反馈信息') }
|
|||
|
|
visible={visible}
|
|||
|
|
maskClosable={false}
|
|||
|
|
icon="icon-coms-project"
|
|||
|
|
iconBgcolor="#217346"
|
|||
|
|
onCancel={()=>handleFeedBackInfoDialog(false)}
|
|||
|
|
buttons={this.getDialogButtons()}
|
|||
|
|
>
|
|||
|
|
<WeaNewScroll ecId={`${this && this.props && this.props.ecId || ''}_WeaNewScroll@r9hfc0`} height='700px'>
|
|||
|
|
{group}
|
|||
|
|
<WeaTableEditable ecId={`${this && this.props && this.props.ecId || ''}_WeaTableEditable@wht3cn`}
|
|||
|
|
title={getLabel('22069', '完成情况')}
|
|||
|
|
columns={columns}
|
|||
|
|
// initialDatas={toJS(mxdatas)||[]}
|
|||
|
|
datas={toJS(mxdatas)||[]}
|
|||
|
|
onChange={(datas) => {
|
|||
|
|
setMxDatas(datas);
|
|||
|
|
}}
|
|||
|
|
/>
|
|||
|
|
</WeaNewScroll>
|
|||
|
|
</WeaDialog>
|
|||
|
|
</div>)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
getDialogButtons(){
|
|||
|
|
const {store,prjid,feedBackInfoStore} = this.props;
|
|||
|
|
let btn = [];
|
|||
|
|
btn.push(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@vpn70m@save`} type="primary" onClick={()=>{feedBackInfoStore.saveFeedBackInfo(store,{prjid:prjid});}}>{getLabel(86,"保存")}</Button>);
|
|||
|
|
btn.push(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@gk2e6t@close`} type="primary" onClick={()=>feedBackInfoStore.handleFeedBackInfoDialog(false)}>{getLabel(309,"关闭")}</Button>);
|
|||
|
|
return btn
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
checkProgress = (value) => { //进度编辑校验
|
|||
|
|
const { finishmax, setFormFields } = this.props.feedBackInfoStore;
|
|||
|
|
if (Number(finishmax) == 99) {
|
|||
|
|
if (value > 99) {
|
|||
|
|
message.error(getLabel(383829, "该任务所必须的相关文档或者相关流程不存在,任务不能完成100%。"));
|
|||
|
|
setFormFields({ finish: { value: 99 } });
|
|||
|
|
} else {
|
|||
|
|
setFormFields({ finish: { value: value } });
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (value > 100) {
|
|||
|
|
setFormFields({ finish: { value: 100 } });
|
|||
|
|
} else {
|
|||
|
|
setFormFields({ finish: { value: value } });
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export default FeedBackInfoDialog;
|