import React, { Component } from 'react';
import style from './index.less';
import { Tab, ConfirmModal, Notify } from '@commonComp';
import { tabChange, allChecked, changeVisible, keepPushData, allCheckedShow,allCheckedAdmin,allCheckedShowAdmin } from '@store/actions/tabTemplate';
import { initItemList, delItem,delItemAdmin, delBatchItem, delBatchItemAdmin,changeTitleAsync, setPageView,changeTitleAsyncAdmin,setPageViewAdmin } from '@store/async-actions/tabTemplate';
import { connect } from "react-redux";
import store from '@store';
import { billing } from '@store/async-actions/pushMessage';
import TemplateContainer from '@components/TemplateContainer';
import TemplateItems from '@components/TemplateItems';
import PushItemsContainer from '@containers/PushItemsContainer';
import { pushAllDataList, getWindowInnerHeight, didPushParamChange } from '@utils/tools';
import CopyRightContainer from "@containers/CopyRightContainer";
import MedicalInfoContainer from '@containers/MedicalInfoContainer';
import CaseQuailty from "../CaseQuailty";
class PushContainer extends Component {
constructor(props) {
super(props);
this.state = {
data: null,
tabs: [{
title: '辅助信息',
disabled: true
},
{
title: '病历质控',
}, {
title: '模板',
},
{
title: '医学知识',
}
],
visible: false,
message: '', //提示的内容
type: '', //1:删除模板 2:批量删除 3.修改标题 4.引用
id: '', //单个删除
obj: {}, //修改模板标题
title: '', //修改后的标题
okText: '确定', //确认按钮
okBorderColor: 'red',
oKBg: '',
okColor: 'red',
num: 0, //计数
deptId:'', //科室id
}
this.$cont = React.createRef();
this.itemList = null;
this.handleActiveClick = this.handleActiveClick.bind(this)
this.handleContentClick = this.handleContentClick.bind(this)
this.handleTemplateDel = this.handleTemplateDel.bind(this)
this.handleTitleChange = this.handleTitleChange.bind(this)
this.handleAllCheckbox = this.handleAllCheckbox.bind(this)
this.handleAllCheckboxAdmin = this.handleAllCheckboxAdmin.bind(this)
this.handleMangerTemplate = this.handleMangerTemplate.bind(this)
this.handleMangerTemplateAdmin = this.handleMangerTemplateAdmin.bind(this)
this.handleDelList = this.handleDelList.bind(this)
this.makeSure = this.makeSure.bind(this)
this.handleClose = this.handleClose.bind(this);
this.templateSearch = this.templateSearch.bind(this);
}
componentDidMount() {
// const height = getWindowInnerHeight()-160;
// this.$cont.current.style.height = height+"px";
}
templateSearch(name){
store.dispatch(initItemList(1,name));
}
/**
*
* @param {tab组件切换id} id
*/
handleActiveClick(id) {
if (id == '2') {
store.dispatch(initItemList(1,0));
}
store.dispatch(tabChange(id))
}
/**
* 引用模板id
* @param {模板id} id
*/
handleContentClick(id, sex) {
let baseSex = store.getState().patInfo.message.sex
this.setState({
message: this.content(sex, baseSex),
type: 4,
id: id,
okText: '引用',
okBorderColor: '#3B9ED0',
okColor: '#fff',
oKBg: '#3B9ED0'
}, () => {
store.dispatch(changeVisible(true))
})
}
content(sex, baseSex) {
if (sex != 3 && sex != baseSex) {
return
确认引用该模板?
引用该模版可能显示有误
} else {
return 确认引用该模板?
}
}
/**
* 删除模板
* @param {模板id} id
*/
handleTemplateDel(id) {
this.setState({
message: this.delDiv(),
type: 1,
id: id,
okText: '删除',
okBorderColor: 'red',
okColor: 'red',
oKBg: '#fff'
}, () => {
store.dispatch(changeVisible(true))
})
}
delDiv() {
return 确认删除模板?
}
onchange(value,deptId) {
this.setState({
title: value
}, () => {
this.setState({
message: this.changeTitle(),
})
})
}
keypress(event) {
let e = event ? event : window.event;
if (e.keyCode == 13) {
this.makeSure()
}
}
handleInput(e) {
let val = (e.target.value).substring(0, 30)
this.onchange(val)
}
changeTitle() {
return
}
/**
* 改变模板标题
* @param {模板id和模板title} obj
*/
handleTitleChange(id, text,deptId) {
store.dispatch(changeVisible(true))
this.setState({
type: 3,
currId: id,
title: text,
text: text,
deptId: deptId,
okText: '保存',
okBorderColor: '#3B9ED0',
okColor: '#fff',
oKBg: '#3B9ED0'
}, () => {
this.setState({
message: this.changeTitle(),
})
})
}
handleAllCheckboxAdmin() { //全.反选
let tmpFlg = this.props.allCheckedAdmin;
if (this.props.checkItemsAdmin.length < this.props.adminItems.length && this.props.allCheckedAdmin) {
tmpFlg = false;
} else if (this.props.checkItemsAdmin.length == this.props.adminItems.length && !this.props.allCheckedAdmin) {
tmpFlg = true;
} //两种特殊情况处理
store.dispatch(allCheckedAdmin(!tmpFlg))
}
handleMangerTemplateAdmin() { //管理
let tmpFlg = this.props.allCheckShowAdmin;
store.dispatch(allCheckedAdmin(false))
store.dispatch(allCheckedShowAdmin(!tmpFlg))
}
handleAllCheckbox() { //全.反选
let tmpFlg = this.props.allChecked;
if (this.props.checkItems.length < this.props.items.length && this.props.allChecked) {
tmpFlg = false;
} else if (this.props.checkItems.length == this.props.items.length && !this.props.allChecked) {
tmpFlg = true;
} //两种特殊情况处理
store.dispatch(allChecked(!tmpFlg))
}
handleMangerTemplate() { //管理
let tmpFlg = this.props.allCheckShow;
store.dispatch(allChecked(false))
store.dispatch(allCheckedShow(!tmpFlg))
}
handleDelList() { //批量删除
this.setState({
type: 2,
message: this.delDiv(),
okText: '删除',
okBorderColor: 'red',
okColor: 'red',
oKBg: '#fff'
})
store.dispatch(changeVisible(true))
}
handleClickGetMore(page){
let tmpPage = ++page
store.dispatch(initItemList(tmpPage,true))
}
makeSure() {
if (this.state.type == 1) {
if(this.props.admin){
store.dispatch(delItemAdmin(this.state.id))
}else{
store.dispatch(delItem(this.state.id))
}
store.dispatch(changeVisible(false))
} else if (this.state.type == 2) {
if(this.props.admin){
store.dispatch(delBatchItemAdmin(this.props.checkItemsAdmin))
}else{
store.dispatch(delBatchItem(this.props.checkItems))
}
store.dispatch(changeVisible(false))
} else if (this.state.type == 3) {
if (this.state.title == this.state.text) {
store.dispatch(changeVisible(false))
Notify.success('标题修改成功');
return;
}
if ((this.state.title).trim() == '') {
Notify.info('请输入模板名称');
return;
}
let tempObj = {
id: this.state.currId,
title: this.state.title,
deptId:this.state.deptId
}
if(this.props.admin){
store.dispatch(changeTitleAsyncAdmin(tempObj))
}else{
store.dispatch(changeTitleAsync(tempObj))
}
} else if (this.state.type == 4) { //模板引入
if(this.props.admin){
store.dispatch(setPageViewAdmin(this.state.id))
}else{
store.dispatch(setPageView(this.state.id))
}
store.dispatch(changeVisible(false))
}
}
handleClose() {
store.dispatch(changeVisible(false));
}
render() {
const { activeId, checkItems, visible, showMsg,hasMore,current, items, allCheckShow,allCheckShowAdmin,adminItems,admin,checkItemsAdmin,clearSearch } = this.props;
return
}
}
const mapStateToProps = (state) => {//console.log(state)
return {
items: state.tabTemplate.items,
adminItems: state.tabTemplate.adminItems,
admin: state.homePage.admin,
current: state.tabTemplate.current,
hasMore: state.tabTemplate.hasMore,
activeId: state.tabTemplate.activeId,
checkItems: state.tabTemplate.checkItems,
allChecked: state.tabTemplate.allChecked,
visible: state.tabTemplate.visible,
showMsg: state.tabTemplate.showMsg,
allCheckShow: state.tabTemplate.allCheckShow,
allCheckedAdmin: state.tabTemplate.allCheckedAdmin,
allCheckShowAdmin: state.tabTemplate.allCheckShowAdmin,
checkItemsAdmin: state.tabTemplate.checkItemsAdmin,
clearSearch:state.print.clearSearch,
}
}
export default connect(mapStateToProps, null)(PushContainer);