import React, { Component } from "react"; import style from "./index.less"; import printImg from '@common/images/icon_print_blue.png'; import preview from '@common/images/preview.png'; import saveHistory from '@common/images/saveHistory.png'; import PrintPreviewContainer from '@containers/PrintPreviewContainer'; import PreviewContainer from '@containers/PreviewContainer'; import { ConfirmModal, Notify } from '@commonComp'; import {getAllDataList,getAllDataStringList} from '@utils/tools'; import store from '@store'; class Operation extends Component { constructor(props) { super(props) this.state = { title: '', okText: '', borderColor: '', okColor: '', oKBg: '', msg: '', type: '', zIndex:40 } this.showPrint = this.showPrint.bind(this); this.closePrint = this.closePrint.bind(this); this.showPreview = this.showPreview.bind(this); this.closePreview = this.closePreview.bind(this); this.saveAll = this.saveAll.bind(this); this.clearAll = this.clearAll.bind(this); this.saveHis = this.saveHis.bind(this); this.keypress = this.keypress.bind(this); } showPrint() { this.setState({ zIndex:240 }) this.props.showPrintPreview() } closePrint() { this.setState({ zIndex:40 }) this.props.closePrintPreview() } showPreview() { this.setState({ zIndex:240 }) this.props.showPreview() } closePreview() { this.setState({ zIndex:40 }) this.props.closePreview() } saveAll(type) { let flg = this.keepHistory(); if(flg){ this.setState({ type: type, okText: '保存', borderColor: '#3B9ED0', okColor: '#fff', oKBg: '#3B9ED0', msg:

是否保存该病历?

}) this.props.diagShowTmp(true) } } keepHistory(){ let baseList = store.getState(); let jsonStr = getAllDataStringList(baseList); if(JSON.parse(jsonStr.chief).length == 1 && JSON.parse(jsonStr.chief)[0].trim() ==''){ Notify.info('主诉不能为空'); return false; }else if(jsonStr.chief && JSON.parse(jsonStr.chief).length < 1){ Notify.info('主诉不能为空'); return false; }else if(!jsonStr.diag || jsonStr.diag.trim().length < 1){ Notify.info('诊断不能为空'); return false; }else{ return true; } } clearAll(type) { let flg = this.isClear(); if(flg){ this.setState({ type: type, okText: '清除', borderColor: 'red', okColor: 'red', oKBg: '#fff', msg:

是否清空所有内容?

}) this.props.diagShowTmp(true) } } isClear(){ let baseList = store.getState(); let jsonData = getAllDataList(baseList); let jsonStr = getAllDataStringList(baseList); if ( //结构化和文本数据都为空 JSON.stringify(jsonData.advice) == '{}' && jsonData.chief.length < 1 && jsonData.diag.length < 1 && jsonData.vital.length < 1 && jsonData.other.length < 1 && jsonData.pacs.length < 1 && jsonData.present.length < 1 && jsonData.lis.labelList.length < 1 && jsonData.lis.getExcelDataList.length < 1 && JSON.stringify(jsonData.advice) == '{}' && jsonStr.chief == '[]' && jsonStr.present == '[]' && jsonStr.other == '[]' && jsonData.vital.length < 1 && jsonData.diag.length < 1 && jsonData.pacs.length < 1 && jsonData.lis.labelList.length < 1 && jsonData.lis.getExcelDataList.length < 1 ) { Notify.info('当前页面数据已清空'); return false; }else{ return true; } } onchange(val) { this.setState({ title: val }) } handleInput(e){ let val = e.target.value if(e.target.value.length > 30){ e.target.value = val.substring(0,30) this.onchange(val.substring(0,30)) }else{ this.onchange(e.target.value) } } keypress(event) { let e = event?event:window.event; if (e.keyCode == 13) { this.makeSure() } } saveHis(type) { const { diagShowTmp } = this.props; let flg = this.getAllData(); if(flg){ this.setState({ title: '', type: type, okText: '保存', borderColor: '#3B9ED0', okColor: '#fff', oKBg: '#3B9ED0', msg: this.changeTitle() }) diagShowTmp(true) } } getAllData(){ let baseList = store.getState(); let jsonData = getAllDataList(baseList); let jsonStr = getAllDataStringList(baseList); let whichSign = baseList.typeConfig.typeConfig; let tmpLis = baseList.tabTemplate.items; for(let i = 0;i { this.handleInput(e) }} onPropertyChange={(e) => { // 兼容ie this.handleInput(e) }} onKeyPress={e => this.keypress(e)} />
} makeSure() { const { save, clear, saveDataAll,diagShowTmp } = this.props; const { type } = this.state; if (type == 1) { diagShowTmp(false) this.setState({ title: '' }) save(); } else if (type == 2) { diagShowTmp(false) this.setState({ title: '' }) clear(); } else if (type == 3) { if (this.state.title.trim() == '') { Notify.error('请输入模板名称') return; } // diagShowTmp(false) saveDataAll(this.state.title); } } closeDiagBox(){ const { diagShowTmp } = this.props; const { type } = this.state; if (type == 3){ diagShowTmp(false) this.setState({ title: '' }) }else{ diagShowTmp(false) this.setState({ title: '' }) } } render() { const { showPrint, closePrint, showPreview, closePreview } = this; const { visible, preVisible,diagShow } = this.props.print; const {zIndex} = this.state; return
打印病历 预览 { this.saveHis(3) }}> 保存病历模板 { this.saveAll(1) }}>保存 { this.clearAll(2) }}>清除 { this.makeSure() }} close={() => { this.closeDiagBox()}} cancel={() => {this.closeDiagBox()}} okText={this.state.okText} okBorderColor={this.state.borderColor} okColor={this.state.okColor} oKBg={this.state.oKBg} > {this.state.msg}
; } } export default Operation;