Переглянути джерело

主诉添加症状与大数据选中结果合并

zhouna 5 роки тому
батько
коміт
b098780820

+ 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,ban} = this.props;
-      chooseSearch&&chooseSearch({item:item,cliIndex:cliIndex,ban:JSON.stringify(ban)=='{}'?false:true});
-      onSelect();//上一级的“确定”事件
+      const {clearSearch,onSelect} = this.props;
+      onSelect(item);//上一级的“确定”事件
       clearSearch&&clearSearch();
       this.textInput.current.value = "";
     }

+ 8 - 3
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>
   }
 }
@@ -433,8 +433,13 @@ 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,ban} = 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()}
@@ -445,7 +450,7 @@ class ListItems extends Component{
         
         {boxMark==1 && tagType==11 && <div className="search">
                   <div className={style["line"]}></div>
-                  <SearchBox show={show} cliIndex={cliIndex} onSelect={handleConfirm} onRef={(child)=>{this.child = child;}} ban={ban}/>
+                  <SearchBox show={show} onSelect={this.searchSelect.bind(this)} onRef={(child)=>{this.child = child;}}/>
                 </div>}
       </div>
   }

+ 1 - 29
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,28 +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,
-        info:obj
-      })
-      dispatch({    //自由文本标签数据更新
-        type:ISREAD
-      });
-      //右侧推送
-      setTimeout(function(){ 
-        dispatch(billing());
-      },200);
-    },
     clearSearch:()=>{
       dispatch({
         type: CLEAR_ADD_SEARCH

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

@@ -403,54 +403,6 @@ export const setSearch = (state,action)=>{
   res.isEnd = action.isEnd;
   return res;
 }
-// 主诉-添加症状-选中搜索结果
-export const chooseSearch = (state,action)=>{
-  const res = Object.assign({},state);
-  const {item,cliIndex,ban} = action.info;
-  const index = parseInt(cliIndex);
-  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 || ban){
-      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,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';   //添加症状-搜索