import React, { Component } from "react";
import style from "./index.less";
import printImg from '@common/images/icon_print_blue.png';
import slideDown from '@common/images/slideDown.png';
import preview from '@common/images/preview.png';
import saveHistory from '@common/images/saveHistory.png';
import cancelTag from '@common/images/icon_back.png';
import PrintPreviewContainer from '@containers/PrintPreviewContainer';
import PreviewContainer from '@containers/PreviewContainer';
import { ConfirmModal, Notify } from '@commonComp';
import Search from './Search';
import FolderName from '@components/FolderName';
import FolderOrder from '@components/FolderOrder';
import check_circle from './img/check-circle.png';
import check_right from './img/check-right.png';
import { getAllDataList, getAllDataStringList, isAllPartClear, isAllClear, filterDataArr, readyKeepHistory, checkDeptContent } from '@utils/tools';
import { embedPush } from '../../store/async-actions/pushMessage'
import pinyin from '@utils/Convert_Pinyin.js';
import { saveMessage } from '@store/async-actions/print'
import {dragBox} from '@utils/drag';
import store from '@store';
import $ from 'jquery';
class Operation extends Component {
constructor(props) {
super(props)
this.state = {
title: '',
fstName:'',//首拼
okText: '',
borderColor: '',
okColor: '',
oKBg: '',
msg: '',
type: '', // type 1: 保存病历
zIndex:40,
sex:'3',
le:'',
deptId:'',//科室id
value:'',//科室name
folder:'',//文件夹
folderName:'',
folderNameVal:'未分类文件夹',//选中文件夹名称
folderId:'',//选中文件夹名称
folderListShow:false, //文件夹列表展示
medicalName: '', //保存病历名称
showValit: false, // 显示校验的文字
saveVisible: false //保存病历模态框
}
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);
this.setDeptId = this.setDeptId.bind(this);
this.setFolderId = this.setFolderId.bind(this);
this.handleChangeIpt = this.handleChangeIpt.bind(this);
this.newFolder = this.newFolder.bind(this);
this.saveNewFolder = this.saveNewFolder.bind(this);
this.folderManage = this.folderManage.bind(this);
this.changeTitle = this.changeTitle.bind(this);
this.closeDiagBox = this.closeDiagBox.bind(this);
this.spellFst = this.spellFst.bind(this);
this.hideFolderList = this.hideFolderList.bind(this)
this.handleMedicalChange = this.handleMedicalChange.bind(this)
this.makeSureSave = this.makeSureSave.bind(this);
this.closeSave = this.closeSave.bind(this);
this.$inp = React.createRef()
}
// 保存病历 _lcq
makeSureSave(){
if (this.state.medicalName.trim() === '') {
// Notify.info('请输入病历名称')
this.setState({
showValit: true
})
return
}
// // 清除store中 medicalName的值
// const { clearmedicalName } = this.props
// clearmedicalName && clearmedicalName()
// diagShowTmp(false)
// this.setState({ title: '' })
// store.dispatch(embedPush({
// action: "patientia",
// mode: 1
// }))
store.dispatch(saveMessage()).then(res => {
this.setState({
medicalName: '',
saveVisible: false,
})
store.dispatch(embedPush({
action: "patientia",
mode: 1
}))
// console.log('保存成功之后推送');
}).catch(err => {
if (err === '00020001'){
}
})
}
// 取消编辑病历
closeSave() {
this.setState({
saveVisible: false,
showValit:false,
medicalName: ''
// templateName: ''
})
}
showPrint() {
this.setState({
zIndex:240
})
this.props.showPrintPreview()
}
closePrint() {
this.setState({
zIndex:40
})
this.props.closePrintPreview()
dragBox('previewPrintWrapper','previewPrintStatic','del')
}
showPreview() {
this.setState({
zIndex:240
})
this.props.showPreview()
}
closePreview() {
this.setState({
zIndex:40
})
this.props.closePreview()
dragBox('previewWrapper','previewStatic','del')
}
saveAll(type) {
let keepState = readyKeepHistory();
// console.log(keepState, '====keepState');
if(keepState == 1){
Notify.info('主诉不能为空');
return;
}
if (keepState == 2) {
Notify.info('姓名不能为空');
return;
}
if (keepState == 3) {
Notify.info('年龄不能为空');
return;
}
if (keepState == 4) {
Notify.info('卡号不能为空');
return;
}
if (keepState == 5) {
Notify.info('科室不能为空');
return;
}
if (keepState == 6) {
Notify.info('医生不能为空');
return;
}
if (keepState == 7) {
Notify.info('门诊号不能为空');
return;
}
if (keepState == 8) {
Notify.info('年龄不能超过200');
return;
}
// this.setState({
// type: type,
// okText: '保存',
// borderColor: '#3B9ED0',
// okColor: '#fff',
// oKBg: '#3B9ED0',
// msg:
// })
// this.props.diagShowTmp(true)
this.setState({
saveVisible: true
})
}
handleMedicalChange(e){
if (e.target.value.length > 0) {
this.setState({
showValit: false
})
}
const { setmedicalName} = this.props
this.setState({
medicalName: e.target.value
},()=>{
setmedicalName &&setmedicalName(this.state.medicalName)
})
}
clearAll(type) {
let baseList = store.getState();
let jsonData = getAllDataList(baseList);
let jsonStr = getAllDataStringList(baseList);
let flg = isAllPartClear(jsonData,jsonStr,baseList);
const tpVal = $("#templateSearch").val(); //模板是否有搜索条件未清空
const mdVal = $("#medicalInfoSearch").val(); //知识是否有搜索条件未清空
if(flg||tpVal||mdVal){
this.setState({
type: type,
okText: '清除',
borderColor: 'red',
okColor: 'red',
oKBg: '#fff',
msg: 是否清空所有内容?
})
this.props.diagShowTmp(true)
}else{
Notify.info('当前页面数据已清空');
}
}
handleInput(e){
let val = (e.target.value).substring(0,20)
this.setState({
title: val
})
}
handleInputFst(e){
let val = (e.target.value).substring(0,20).replace(/[^a-zA-Z]/g,'')
$(e.target).val(val)
this.setState({
fstName: val
})
}
keypress(event) {
let e = event?event:window.event;
if (e.keyCode == 13) {
this.makeSure()
}
}
newFolder(flg){
this.props.folderModal(flg)
}
folderManage(flg) {
this.props.folderOrder(flg)
}
saveHis(type) {
const { diagShowTmp,getFloderList,admin } = this.props;
let baseList = store.getState();
let jsonStr = getAllDataStringList(baseList);
let tmpLis = [];
let flg = isAllClear(jsonStr);
if(!flg){
Notify.info('模板数据不能为空');
return false;
}
if(!this.props.admin){
tmpLis = baseList.tabTemplate.items;
for(let i = 0;i {this.props.handleClearValue(); this.hideFolderList()}}>
}
changeRadio(sex){
if(sex == 1){
$('#commonSex img').attr('src',check_right)
$('#maleSex img').attr('src',check_circle)
$('#femaleSex img').attr('src',check_circle)
$('#commonSex i').css('color','#000')
$('#maleSex i').css('color','#6b6969')
$('#femaleSex i').css('color','#6b6969')
this.setState({sex:'3'})
}else if(sex == 2){
$('#commonSex img').attr('src',check_circle)
$('#maleSex img').attr('src',check_right)
$('#femaleSex img').attr('src',check_circle)
$('#commonSex i').css('color','#6b6969')
$('#maleSex i').css('color','#000')
$('#femaleSex i').css('color','#6b6969')
this.setState({sex:'1'})
}else if(sex == 3){
$('#commonSex img').attr('src',check_circle)
$('#maleSex img').attr('src',check_circle)
$('#femaleSex img').attr('src',check_right)
$('#commonSex i').css('color','#6b6969')
$('#maleSex i').css('color','#6b6969')
$('#femaleSex i').css('color','#000')
this.setState({sex:'2'})
}
}
makeSure() {
const { save, clear, saveDataAll,saveDataAlls,diagShowTmp ,chronicMagItem,chronicDesease,admin,floderListAdmin} = this.props;
const { type,deptId,sex,title,fstName,folderId,folderNameVal } = this.state;
// console.log(type,'======type');
if (type == 1) {
// if (this.state.medicalName === '') {
// Notify.info('请输入病历名称')
// this.setState({
// showValit: true
// },()=>{
// // console.log(this.state.showValit,'-=-=-=-');
// })
// return
// }
// // 清除store中 medicalName的值
// const { clearmedicalName } = this.props
// clearmedicalName && clearmedicalName()
// diagShowTmp(false)
// this.setState({ title: '' })
// if (type == 1) {
// this.setState({
// medicalName: ''
// })
// }
// save();
} else if (type == 2) {
// type === 2 清除数据
diagShowTmp(false);
this.setState({ title: '' })
// 慢病标识
const chronicFlag = chronicMagItem || chronicDesease?true:false;
// console.log(chronicFlag,'chronicFlag');
clear(chronicFlag);
//更新滚动条
const that = this;
setTimeout(function(){
that.context.scrollArea&&that.context.scrollArea.refresh();
});
// console.log(1111111111111);
} else if (type == 3) {
if (this.state.title.trim() == '') {
Notify.error('请输入模板名称')
return;
}else if(this.state.fstName == ''){
Notify.error('请输入模板名首拼')
return;
}else if(admin&&deptId == ''){
Notify.error('请选择科室')
return;
}
if(admin){
let baseList = store.getState();
let tmpFolder = baseList.tabTemplate.adminItems||[];
let tmpLis = [];
for(let k = 0;k < tmpFolder.length;k++){
let tmpData = tmpFolder[k].templateInfo||[]
tmpLis = tmpLis.concat(tmpData)
}
let jsonStr = getAllDataStringList(baseList);
for(let i = 0;i item.name == "未分类文件夹").id
saveDataAlls(title,sex,deptId,fstName,folderIdNull,folderNameVal);
}else {
saveDataAlls(title,sex,deptId,fstName,folderId,folderNameVal);
}
this.setState({
folderNameVal:'未分类文件夹',
folderId:'',
fstName:'',
deptId:''
})
}else{
saveDataAll(title,sex,fstName);
}
}
}
closeDiagBox(){
const { diagShowTmp } = this.props;
const { type } = this.state;
if (type == 3){
this.setState({ title: '',deptId:"",value:"",folderListShow:false,folderNameVal:'未分类文件夹',folderId:'',fstName:''})
}
if(type==1){
this.setState({
medicalName: ''
})
}
diagShowTmp(false)
}
setDeptId(id,name){
this.props.handleClearValue()
this.setState({
deptId :id,
value:name
})
}
setFolderId(id,name){//文件夹
this.props.handleClearValue()
this.setState({
folderId :id,
folderNameVal:name,
folderListShow:false
})
}
hideFolderList(){
this.setState({
folderListShow:false
})
}
componentWillReceiveProps(next){//监听滚动事件
const that = this;
if(next.winWidth <= 1024){
$(window).scroll(function(){
let scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
let left = -(scrollLeft - 10) +'px';
that.setState({
le:left
})
})
}
}
handleChangeIpt(val){//搜索科室
if(val == ''){
this.setState({
deptId:'',
})
return
}
this.setState({
value:val
})
}
handleFolderShow(){
const {folderListShow} = this.state
this.setState({
folderListShow:!folderListShow
})
}
saveNewFolder(val){//保存文件夹
const {newFloder} = this.props
newFloder(val)
}
render() {
const { showPrint, closePrint, showPreview, closePreview,handleChangeIpt,newFolder,folderManage } = this;
const { visible, preVisible,diagShow } = this.props.print;
const {winWidth,cancelDelTag,departLis,handleChangeValue,admin,floderListAdmin,folderModalShow,
floderModal,folderOrderShow,folderOrder,adminItems,patInfo,saveOrderFolder,hideLabel} = this.props;
const {zIndex,type,le,value,folder,folderListShow} = this.state;
// console.log(this.state.showValit,this.state.msg,'====================');
return
{/*
打印病历*/}
{/*
预览 */}
{/* {hideLabel?"":
{ this.saveHis(3) }}>
保存病历模板} */}
{/* {hideLabel?"":
还原标签} */}
{ this.clearAll(2) }}>清除
{ this.saveAll(1) }}>保存
{visible?
:null}
{preVisible?
:null}
{
病历名称:
{this.state.showValit ? (
请输入病历名称
) : null}
}
{
{ this.makeSure() }}
close={() => { this.closeDiagBox()}}
cancel={() => {this.closeDiagBox()}}
okText={this.state.okText}
height={type==3&admin?365:type==3&!admin?275:200}
width={type==3?585:300}
okBorderColor={this.state.borderColor}
okColor={this.state.okColor}
oKBg={this.state.oKBg}
borderBtm={type==3?'1px solid #ccc':null}
title={type==3?'保存病历模板':type==4?"新建文件夹":type==1?"保存病历":null}
>
{this.state.msg}
{
admin&&type==3?{this.props.handleClearValue()}}>
{this.hideFolderList()}}>
科室归属:
{
departLis.length>0&&value&&
{
departLis.map((item,idx)=>{
return - this.setDeptId(item.id,item.conceptDeptName)}>
{item.conceptDeptName}
})
}
}
(支持汉字关键字搜索)
存储为:
{
floderListAdmin.length>0&&folderListShow&&
{
floderListAdmin.map((item,idx)=>{
return - this.setFolderId(item.id,item.name)}>
{item.name}
})
}
}
newFolder(true)}>新建文件夹
folderManage(true)}>管理文件夹
:null
}
}
{/* 保存病历 */}
;
}
}
Operation.contextTypes = {
scrollArea: React.PropTypes.object
};
export default Operation;