|
@@ -37,7 +37,6 @@ class EditableSpan extends Component{
|
|
|
this.handleKeydown = this.handleKeydown.bind(this);
|
|
|
this.handleKeyup = this.handleKeyup.bind(this);
|
|
|
this.moveEnd = this.moveEnd.bind(this);
|
|
|
- this.stopIt = this.stopIt.bind(this);
|
|
|
}
|
|
|
handleFocus(e){
|
|
|
e.stopPropagation();
|
|
@@ -158,15 +157,6 @@ class EditableSpan extends Component{
|
|
|
preVal:innerVal
|
|
|
})
|
|
|
}
|
|
|
- }
|
|
|
- stopIt(e){
|
|
|
- if(e.returnValue){
|
|
|
- e.returnValue = false ;
|
|
|
- }
|
|
|
- if(e.preventDefault ){
|
|
|
- e.preventDefault();
|
|
|
- }
|
|
|
- return false;
|
|
|
}
|
|
|
handleKeyup(e){
|
|
|
const {boxMark,handleKeydown,i,value,removeId,handleClear,delSingleLable,setSearchLocation} = this.props;
|
|
@@ -174,19 +164,12 @@ class EditableSpan extends Component{
|
|
|
const ev = e||window.event;
|
|
|
const target = ev.target||ev.srcElement;
|
|
|
let innerVal = target.innerText || target.innerHTML;
|
|
|
- if(ev.keyCode==8){
|
|
|
- const elem = ev.srcElement || ev.currentTarget;
|
|
|
- const nodeN = elem.nodeName;
|
|
|
-
|
|
|
+ if(ev.keyCode==8){
|
|
|
let ele = document.activeElement;
|
|
|
let boxTop = getPageCoordinate(e).boxTop;
|
|
|
- setSearchLocation(boxTop,ele.offsetLeft) //搜索框的位置动态获取
|
|
|
- if(nodeN != "SPAN"){//光标没落到span的时候阻止默认事件(backspace回退页面的情况)
|
|
|
- return this.stopIt(ev);
|
|
|
- }
|
|
|
+ // setSearchLocation(boxTop,ele.offsetLeft) //搜索框的位置动态获取
|
|
|
// 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
|
|
|
// 前面是标签,内容为空时再删一次才移除标签;前面是文本,则直接移除;
|
|
|
- // console.log(77,elem,nodeN);
|
|
|
let preObj = $(this.$span.current).prev();
|
|
|
if(index!==0&&preVal.trim().length==1&& !innerVal){
|
|
|
removeId && removeId({boxMark,i:index,text:""});
|
|
@@ -196,28 +179,33 @@ class EditableSpan extends Component{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(innerVal !==preVal){return false}
|
|
|
- // 中英文数字和下划线--单独删除标签
|
|
|
- /*const reg = new RegExp("([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9_])");
|
|
|
- if(index!==0 && reg.test(innerVal)){
|
|
|
- let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
|
- delSingleLable && delSingleLable({boxMark,i:index});
|
|
|
- this.moveEnd(obj[0]);
|
|
|
- this.setState({
|
|
|
- index: null
|
|
|
- })
|
|
|
- }*/
|
|
|
- let data = innerVal.trim();
|
|
|
- //判断是否为空、中英文:, 。、;,且不是第一位
|
|
|
- let pattern = new RegExp(/^\,?$|^\,?$|^\.?$|^\。?$|^\、?$|^\;?$|^\;?$|^\:?$|^\:?$\s/);
|
|
|
- if(index!==0 && pattern.test(data)){
|
|
|
- // let preObj = $(this.$span.current).prev();
|
|
|
- let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
|
- handleKeydown&&handleKeydown({boxMark,i:index,text:data});
|
|
|
- this.moveEnd(obj[0]);
|
|
|
- this.setState({
|
|
|
- index: null
|
|
|
- })
|
|
|
+ // if(innerVal !==preVal){return false}
|
|
|
+ if(innerVal !==preVal){
|
|
|
+
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ // 中英文数字和下划线--单独删除标签
|
|
|
+ /*const reg = new RegExp("([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9_])");
|
|
|
+ if(index!==0 && reg.test(innerVal)){
|
|
|
+ let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
|
+ delSingleLable && delSingleLable({boxMark,i:index});
|
|
|
+ this.moveEnd(obj[0]);
|
|
|
+ this.setState({
|
|
|
+ index: null
|
|
|
+ })
|
|
|
+ }*/
|
|
|
+ let data = innerVal.trim();
|
|
|
+ //判断是否为空、中英文:, 。、;,且不是第一位
|
|
|
+ let pattern = new RegExp(/^\,?$|^\,?$|^\.?$|^\。?$|^\、?$|^\;?$|^\;?$|^\:?$|^\:?$|\s/);
|
|
|
+ if(index!==0 && pattern.test(data)){
|
|
|
+ // let preObj = $(this.$span.current).prev();
|
|
|
+ let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
|
|
|
+ handleKeydown&&handleKeydown({boxMark,i:index,text:data});
|
|
|
+ this.moveEnd(obj[0]);
|
|
|
+ this.setState({
|
|
|
+ index: null
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -247,15 +235,6 @@ class EditableSpan extends Component{
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
- /*cancelSelect(e){//双击不选中
|
|
|
- if(document.selection&&document.selection.empty){
|
|
|
- document.selection.empty();
|
|
|
- }else if (window.getSelection) {
|
|
|
- var sel=window.getSelection();
|
|
|
- sel.removeAllRanges();
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
getClass(){
|
|
|
const {full,value,saveText,i} = this.props;
|
|
|
const preSelected = saveText[i-1];
|