|
@@ -84,7 +84,7 @@ class EditableSpan extends Component{
|
|
this.setState({
|
|
this.setState({
|
|
labelVal:text1
|
|
labelVal:text1
|
|
});
|
|
});
|
|
-
|
|
|
|
|
|
+
|
|
const that = this;
|
|
const that = this;
|
|
handleChange&&handleChange({text1,boxMark,i});
|
|
handleChange&&handleChange({text1,boxMark,i});
|
|
|
|
|
|
@@ -171,7 +171,7 @@ class EditableSpan extends Component{
|
|
ev.preventDefault();
|
|
ev.preventDefault();
|
|
}else{
|
|
}else{
|
|
ev.returnValue=false;
|
|
ev.returnValue=false;
|
|
- }
|
|
|
|
|
|
+ }
|
|
this.moveEnd(obj[0]);
|
|
this.moveEnd(obj[0]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -187,9 +187,9 @@ class EditableSpan extends Component{
|
|
obj.focus();
|
|
obj.focus();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
handleKeyup(e){
|
|
handleKeyup(e){
|
|
- const {boxMark,handleKeydown,removeId,handleClear} = this.props;
|
|
|
|
|
|
+ const {boxMark,handleKeydown,removeId,handleClear,removeSpan} = this.props;
|
|
const {preVal,index} = this.state;
|
|
const {preVal,index} = this.state;
|
|
const ev = e||window.event;
|
|
const ev = e||window.event;
|
|
const target = ev.target||ev.srcElement;
|
|
const target = ev.target||ev.srcElement;
|
|
@@ -200,7 +200,8 @@ class EditableSpan extends Component{
|
|
}*/
|
|
}*/
|
|
if(ev.keyCode==46){//delete
|
|
if(ev.keyCode==46){//delete
|
|
//判断nexObj
|
|
//判断nexObj
|
|
- let nextObj = $(this.$span.current).next();
|
|
|
|
|
|
+ // let nextObj = $(this.$span.current).next();
|
|
|
|
+ let nextObj = $(this.$span.current);
|
|
if(preVal.trim().length==1&& !innerVal){
|
|
if(preVal.trim().length==1&& !innerVal){
|
|
removeId && removeId({boxMark,i:index,text:"",flag:'del'});
|
|
removeId && removeId({boxMark,i:index,text:"",flag:'del'});
|
|
handleClear && handleClear({boxMark});//删除最后一个字时清空搜索结果,避免现病史搜索框不立即消失的情况
|
|
handleClear && handleClear({boxMark});//删除最后一个字时清空搜索结果,避免现病史搜索框不立即消失的情况
|
|
@@ -214,8 +215,8 @@ class EditableSpan extends Component{
|
|
let data = innerVal.trim();
|
|
let data = innerVal.trim();
|
|
if(nextObj && !config.punctuationReg.test(data)){
|
|
if(nextObj && !config.punctuationReg.test(data)){
|
|
handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'del'});
|
|
handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'del'});
|
|
- // nextObj.focus();
|
|
|
|
- if(nextObj[0].nodeName !=="DIV"){
|
|
|
|
|
|
+ // nextObj.focus();
|
|
|
|
+ if(nextObj && nextObj[0] && nextObj[0].nodeName !=="DIV"){
|
|
nextObj.focus();
|
|
nextObj.focus();
|
|
}
|
|
}
|
|
/*this.setState({
|
|
/*this.setState({
|
|
@@ -225,7 +226,7 @@ class EditableSpan extends Component{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if(ev.keyCode==8){
|
|
|
|
|
|
+ if(ev.keyCode==8){
|
|
// 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
|
|
// 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
|
|
// 前面是标签,内容为空时再删一次才移除标签;前面是文本,则直接移除;
|
|
// 前面是标签,内容为空时再删一次才移除标签;前面是文本,则直接移除;
|
|
let preObj = $(this.$span.current).prev();
|
|
let preObj = $(this.$span.current).prev();
|
|
@@ -236,9 +237,9 @@ class EditableSpan extends Component{
|
|
this.moveEnd(preObj[0]);
|
|
this.moveEnd(preObj[0]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
if(innerVal !== preVal){
|
|
if(innerVal !== preVal){
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
else{
|
|
else{
|
|
// 中英文数字和下划线--单独删除标签
|
|
// 中英文数字和下划线--单独删除标签
|
|
@@ -246,7 +247,7 @@ class EditableSpan extends Component{
|
|
if(index!==0 && reg.test(innerVal)){
|
|
if(index!==0 && reg.test(innerVal)){
|
|
let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
delSingleLable && delSingleLable({boxMark,i:index});
|
|
delSingleLable && delSingleLable({boxMark,i:index});
|
|
- this.moveEnd(obj[0]);
|
|
|
|
|
|
+ this.moveEnd(obj[0]);
|
|
this.setState({
|
|
this.setState({
|
|
index: null
|
|
index: null
|
|
})
|
|
})
|
|
@@ -259,14 +260,18 @@ class EditableSpan extends Component{
|
|
// let preObj = $(this.$span.current).prev();
|
|
// let preObj = $(this.$span.current).prev();
|
|
let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'backsp'});
|
|
handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'backsp'});
|
|
- this.moveEnd(obj[0]);
|
|
|
|
|
|
+ this.moveEnd(obj[0]);
|
|
this.setState({
|
|
this.setState({
|
|
index: null
|
|
index: null
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 主诉使用模板删除最后一个空span时移除
|
|
|
|
+ if(boxMark==1 && index==0 && !innerVal){
|
|
|
|
+ removeSpan();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
componentWillReceiveProps(next){
|
|
componentWillReceiveProps(next){
|
|
const isRead = this.props.isRead;
|
|
const isRead = this.props.isRead;
|
|
@@ -281,7 +286,7 @@ class EditableSpan extends Component{
|
|
this.$span.current.innerText?(this.$span.current.innerText = value||''):(this.$span.current.innerHTML = value||'');
|
|
this.$span.current.innerText?(this.$span.current.innerText = value||''):(this.$span.current.innerHTML = value||'');
|
|
}
|
|
}
|
|
if(isIE()){
|
|
if(isIE()){
|
|
- // 左右移动没问题,但是输入过程中会失焦,并且有时光标在但是无法输入
|
|
|
|
|
|
+ // 左右移动没问题,但是输入过程中会失焦,并且有时光标在但是无法输入
|
|
// $(this.$span.current)[0].addEventListener('DOMCharacterDataModified', function(e){that.onChange(e);}, false);
|
|
// $(this.$span.current)[0].addEventListener('DOMCharacterDataModified', function(e){that.onChange(e);}, false);
|
|
// 此方法会影响左右切换时光标消失
|
|
// 此方法会影响左右切换时光标消失
|
|
/*$(this.$span.current).onIe8Input(function(e){
|
|
/*$(this.$span.current).onIe8Input(function(e){
|