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; |