|
@@ -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,7 +187,7 @@ class EditableSpan extends Component{
|
|
obj.focus();
|
|
obj.focus();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
handleKeyup(e){
|
|
handleKeyup(e){
|
|
const {boxMark,handleKeydown,removeId,handleClear} = this.props;
|
|
const {boxMark,handleKeydown,removeId,handleClear} = this.props;
|
|
const {preVal,index} = this.state;
|
|
const {preVal,index} = this.state;
|
|
@@ -214,7 +214,7 @@ 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();
|
|
|
|
|
|
+ // nextObj.focus();
|
|
if(nextObj[0].nodeName !=="DIV"){
|
|
if(nextObj[0].nodeName !=="DIV"){
|
|
nextObj.focus();
|
|
nextObj.focus();
|
|
}
|
|
}
|
|
@@ -225,7 +225,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 +236,9 @@ class EditableSpan extends Component{
|
|
this.moveEnd(preObj[0]);
|
|
this.moveEnd(preObj[0]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
if(innerVal !== preVal){
|
|
if(innerVal !== preVal){
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
else{
|
|
else{
|
|
// 中英文数字和下划线--单独删除标签
|
|
// 中英文数字和下划线--单独删除标签
|
|
@@ -246,7 +246,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 +259,14 @@ 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
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
componentWillReceiveProps(next){
|
|
componentWillReceiveProps(next){
|
|
const isRead = this.props.isRead;
|
|
const isRead = this.props.isRead;
|
|
@@ -281,7 +281,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){
|
|
@@ -309,13 +309,13 @@ class EditableSpan extends Component{
|
|
|
|
|
|
render() {
|
|
render() {
|
|
return <span className={this.getClass()}
|
|
return <span className={this.getClass()}
|
|
- contentEditable='true'
|
|
|
|
- ref={this.$span}
|
|
|
|
- onInput={this.onChange}
|
|
|
|
- onFocus={this.handleFocus}
|
|
|
|
- onBlur={this.handleBlur}
|
|
|
|
- onKeyDown={this.handleKeydown}
|
|
|
|
- onKeyUp={this.handleKeyup}></span>;
|
|
|
|
|
|
+ contentEditable='true'
|
|
|
|
+ ref={this.$span}
|
|
|
|
+ onInput={this.onChange}
|
|
|
|
+ onFocus={this.handleFocus}
|
|
|
|
+ onBlur={this.handleBlur}
|
|
|
|
+ onkeydown={this.handleKeydown}
|
|
|
|
+ onkeyup={this.handleKeyup}></span>;
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|