Forráskód Böngészése

Merge remote-tracking branch 'origin/maindropSearch' into dev/new1

# Conflicts:
#	src/components/SpreadDrop/index.jsx
zhouna 5 éve
szülő
commit
51b277a54b

+ 2 - 4
src/common/components/SearchBox/index.jsx

@@ -10,7 +10,6 @@ import ScrollArea from 'react-scrollbar';
  * 主诉“添加症状”下拉中的:搜索框(含结果下拉)
  * 接收参数:
  * show:上级下拉是否隐藏,用于componentWillReceiveProps中
- * cliIndex:上级点击标签的index(如“添加症状”),用于选中数据插入的位置标识;
  */
 class SearchBox extends React.Component {
     constructor(props) {
@@ -41,9 +40,8 @@ class SearchBox extends React.Component {
     handleSearchSelect(e,item){
       e.stopPropagation();
       e.preventDefault();
-      const {cliIndex,chooseSearch,clearSearch,onSelect} = this.props;
-      chooseSearch&&chooseSearch({item:item,index:cliIndex});
-      onSelect();//上一级的“确定”事件
+      const {clearSearch,onSelect} = this.props;
+      onSelect(item);//上一级的“确定”事件
       clearSearch&&clearSearch();
       this.textInput.current.value = "";
     }

+ 3 - 1
src/common/components/SearchBox/index.less

@@ -3,10 +3,12 @@
 .search {
     .contentZIndex1;
     width: 316px;
+    height: 50px;
     padding: 8px;
     box-sizing: border-box;
     position: relative;
     background-color: #fff;
+    margin-left: 78px;
     .autoList {
       position: absolute;
       width: 300px;
@@ -39,7 +41,7 @@
         top: 15px;
     }
     .searchVal {
-        left: 18px;
+        left: 14px;
         cursor: pointer;
     }
     .clearVal{

+ 13 - 10
src/components/SpreadDrop/index.jsx

@@ -382,7 +382,7 @@ class SpreadDrop extends Component{
         onkeydown={handleEnter}
         >{value||placeholder}</div>
           <ListItems parDiv={this.$list} data={data} order={order} left={left} boxMark={type} tagType={tagType}
-             show={show} cliIndex={clickIndx} handleSelect={this.handleSelect} handleConfirm={this.handleConfirm} handleClear={this.handleClear} {...this.state}></ListItems>
+             show={show} handleSelect={this.handleSelect} handleConfirm={this.handleConfirm} handleClear={this.handleClear} {...this.state}></ListItems>
       </div>
   }
 }
@@ -424,7 +424,7 @@ class ListItems extends Component{
   clickConfirm(){
     const {handleConfirm} = this.props;
     this.child&&this.child.reset();//重置搜索框中的数据
-    handleConfirm();
+    handleConfirm();   
   }
   getStyle(){
     const {show,left} = this.props;
@@ -433,20 +433,23 @@ class ListItems extends Component{
       left:left
     }
   }
+  searchSelect(item){
+    const {handleSelect,handleConfirm} = this.props;
+    handleSelect&&handleSelect(item);     //添加到大数据推送一起选中
+    handleConfirm&&handleConfirm();       //确定事件
+  }
   render (){
-    const {handleClear,handleConfirm,order,parDiv,boxMark,tagType,show,cliIndex} = this.props;
+    const {handleClear,order,parDiv,boxMark,tagType,show} = this.props;
     return <div className={style["drop-list"]} ref={parDiv} style={this.getStyle()} contentEditable="false" onClick={(e)=>{e.stopPropagation();}}>
         <p className={style['orderTips']}>按{order?'从左到右从上到下':'点击'}顺序成文</p>
         {this.getLabels()}
+        {boxMark==1 && tagType==11 && <div className="search">
+          <SearchBox show={show} onSelect={this.searchSelect.bind(this)} onRef={(child)=>{this.child = child;}}/>
+        </div>}
         <div className="oper clearfix">
           <span className={style['clear']} onClick={handleClear}>清空选项</span>
           <span className={style['confirm']} onClick={this.clickConfirm}>确定</span>
         </div>
-
-        {boxMark==1 && tagType==11 && <div className="search">
-                  <div className={style["line"]}></div>
-                  <SearchBox show={show} cliIndex={cliIndex} onSelect={handleConfirm} onRef={(child)=>{this.child = child;}}/>
-                </div>}
       </div>
   }
 }
@@ -545,8 +548,8 @@ class ListItem extends Component{
   getMainData(){//主诉添加症状-带搜索框
     const {datas,isSpecialPos} = this.props;
     return datas&&datas.map((it,i)=>{
-      return <li onClick={(e)=>this.handleClick(e,it,i)}
-            className={this.getClass(it.id)}
+      return <li onClick={(e)=>this.handleClick(e,it,i)} 
+            className={this.getClass(it.id)} 
             title={it.name.length>4?it.name:''}
             style={{'width':'55px','display':'inline-block'}}>
             {it.name&&it.name.length>4?it.name.slice(0,4)+'...':it.name}

+ 0 - 6
src/components/SpreadDrop/index.less

@@ -27,12 +27,6 @@
       width: 99px !important;
     }
   }
-  .line{
-    width: 100%;
-    height: 1px;
-    background: #EAEDF1;
-    margin: 20px 0 0 10px;
-  }
   li{
     padding-left: 20px;
     cursor: pointer;

+ 1 - 30
src/containers/SearchBox.js

@@ -1,13 +1,7 @@
 import {connect} from 'react-redux';
 import SearchBox from '@commonComp/SearchBox';
 import {getSearch} from '@store/async-actions/fetchModules.js';
-import {CLEAR_ADD_SEARCH,SET_ADD_SEARCH,CHOOSE_SEARCH} from '@store/types/mainSuit';
-import {ISREAD} from '@store/types/homePage.js';
-import {billing} from '@store/async-actions/pushMessage';
-import {Notify} from '@commonComp';
-import {filterDataArr} from '@utils/tools.js';
-import store from '@store';
-import config from '@config/index.js';
+import {CLEAR_ADD_SEARCH,SET_ADD_SEARCH} from '@store/types/mainSuit';
 
 function mapStateToProps(state){
   return{
@@ -33,29 +27,6 @@ function mapDispatchToProps(dispatch){
           }
       });
     },
-    chooseSearch(obj){
-      // 主诉字数限制
-      let state = store.getState();
-      let mainSaveText = state.mainSuit.saveText;
-      let text = filterDataArr(mainSaveText);
-      let total = text.length + obj.item.name.length + 1; //+1是因为顿号
-      if(total >= config.limited){
-        Notify.info(config.limitText);
-        return
-      }
-      dispatch({
-        type: CHOOSE_SEARCH,
-        item:obj.item,
-        index:obj.index
-      })
-      dispatch({    //自由文本标签数据更新
-        type:ISREAD
-      });
-      //右侧推送
-      setTimeout(function(){ 
-        dispatch(billing());
-      },200);
-    },
     clearSearch:()=>{
       dispatch({
         type: CLEAR_ADD_SEARCH

+ 0 - 49
src/store/actions/mainSuit.js

@@ -403,55 +403,6 @@ export const setSearch = (state,action)=>{
   res.isEnd = action.isEnd;
   return res;
 }
-// 主诉-添加症状-选中搜索结果
-export const chooseSearch = (state,action)=>{
-  const res = Object.assign({},state);
-  const index = parseInt(action.index);
-  const item = action.item;
-  let data = res.data;
-  let text = {id:item.questionId,name:item.name,value:item.name,tagType:config.tagType,conceptId:item.conceptId};
-  // 判断index前是saveText中是否有伴
-  let nText = {};
-  if(!data[index].pos){//第一病程
-    const preText = res.saveText.slice(0,index);
-    const ind = preText.indexOf("伴");
-    if(ind != -1){
-      nText = Object.assign({},text,{exist:2});
-    }else{
-      nText = Object.assign({},text,{exist:1});
-    }
-  }else{//第二及以上病程
-    nText = Object.assign({},text);
-  }
-
-  // 缓存到localStorage中
-  const mainSymp = storageLocal.get('mainSymp');
-  if(mainSymp){
-    let localArr = JSON.parse(mainSymp);
-    let sympArr = JSON.parse(JSON.stringify(localArr));
-    for(let k=0; k<localArr.length; k++){//判断是否已存在
-      if(localArr[k].conceptId==item.conceptId){
-        sympArr.splice(k,1);
-      }
-    }
-    sympArr.push(nText);
-    if(sympArr.length>5){
-      storageLocal.set('mainSymp',sympArr.slice(sympArr.length-5,));
-    }else{
-      storageLocal.set('mainSymp',sympArr);
-    }
-  }
-  // 插入data中
-  // res.data.splice(index,0,nText);
-  res.data.splice(index,0,Object.assign({},nText,{name:'、'+item.name,value:'、'+item.name}));
-  res.saveText.splice(index,0,'、'+item.name);
-  res.mainIds.push(item.conceptId);
-  if(item.questionId){
-    res.mainTailIds.push(item.questionId);
-  }
-  res.update=Math.random();
-  return res;
-}
 
 //将选中的搜索结果插入
 export const insertSearch = (state,action)=>{

+ 1 - 3
src/store/reducers/mainSuit.js

@@ -2,7 +2,7 @@ import {RECOVER_TAG_MAIN,COMM_SYMPTOMS,CLEAR_COMSYMPTOMS,SHOW_TAIL,INSERT_MAIN,
   SET_SEARCH,CLEAR_SEARCH,GET_BIGDATAPUSH,SET_MAINSUIT,MIX_CONFIRM,NUMBER_SELECT,
   RADIO_SELECT,COMM_CONFIRM,CHANGE_LABELVAL,SAVE_FREE,CLEAR_MAIN_SUIT,SET_DATA,
   INSERT_SEARCH,MAIN_FOCUS_INDEX,SETTEXTMODEVALUE,SETMAINTEXT,MAINADDLABELITEM,SETMAININPUT,DEL_MAIN,CHANGE_LABELVAL_NUMBER,
-  REMOVE_MAIN_ID,MAINSUIT_MUL,DEL_MAIN_LABLE,SET_FEATURE,SET_MS_RADIO_INPUT_VAL,SAVE_CHRONIC,MAIN_REMOVE_SPAN,SET_ADD_SEARCH,CLEAR_ADD_SEARCH,CHOOSE_SEARCH} from '../types/mainSuit'
+  REMOVE_MAIN_ID,MAINSUIT_MUL,DEL_MAIN_LABLE,SET_FEATURE,SET_MS_RADIO_INPUT_VAL,SAVE_CHRONIC,MAIN_REMOVE_SPAN,SET_ADD_SEARCH,CLEAR_ADD_SEARCH} from '../types/mainSuit'
 import {recoveTag,getCommSymptoms,handleTailClick,insertMain,setSearch,getBigSymptom,setMainMoudle,confirm,
   setNumberValue,setRadioValue,commConfirm,changeLabelVal,saveFreeVal,clearMainSuit,insertSearch,setTextModeValue,setCheckText,
   addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn,delSingleLable,
@@ -122,8 +122,6 @@ export default function(state=initState,action){
     case SET_ADD_SEARCH: //添加症状-搜索
       res.addSearchData = action.data;
       return res;
-    case CHOOSE_SEARCH:
-      return chooseSearch(state,action);
     case CLEAR_ADD_SEARCH://清空症状搜索结果
       res.addSearchData = [];
       return res;

+ 0 - 1
src/store/types/mainSuit.js

@@ -33,4 +33,3 @@ export const RECOVER_TAG_MAIN = 'RECOVER_TAG_MAIN';   //恢复已删除标签
 export const MAIN_REMOVE_SPAN = 'MAIN_REMOVE_SPAN';   //删除最后一个空span
 export const SET_ADD_SEARCH = 'SET_ADD_SEARCH';   //添加症状-搜索
 export const CLEAR_ADD_SEARCH = 'CLEAR_ADD_SEARCH';   //添加症状-搜索
-export const CHOOSE_SEARCH = 'CHOOSE_SEARCH';   //添加症状-搜索