mainSuit.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. import {RECOVER_TAG_MAIN,COMM_SYMPTOMS,CLEAR_COMSYMPTOMS,SHOW_TAIL,INSERT_MAIN,
  2. SET_SEARCH,CLEAR_SEARCH,GET_BIGDATAPUSH,SET_MAINSUIT,MIX_CONFIRM,NUMBER_SELECT,
  3. RADIO_SELECT,COMM_CONFIRM,CHANGE_LABELVAL,SAVE_FREE,CLEAR_MAIN_SUIT,SET_DATA,
  4. INSERT_SEARCH,MAIN_FOCUS_INDEX,SETTEXTMODEVALUE,SETMAINTEXT,MAINADDLABELITEM,SETMAININPUT,DEL_MAIN,CHANGE_LABELVAL_NUMBER,
  5. 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'
  6. import {recoveTag,getCommSymptoms,handleTailClick,insertMain,setSearch,getBigSymptom,setMainMoudle,confirm,
  7. setNumberValue,setRadioValue,commConfirm,changeLabelVal,saveFreeVal,clearMainSuit,insertSearch,setTextModeValue,setCheckText,
  8. addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn,delSingleLable,
  9. getSymptomFeature,setRadioInputValue,chooseSearch} from '../actions/mainSuit'
  10. const initState = {
  11. showDrop:false,
  12. CommonSymptoms:[],//常见症状
  13. searchDatas:[],//搜索结果
  14. bigDataSymptom:[],//大数据推送症状
  15. moduleData:[],//主诉模板
  16. addSmoduleData:[],//添加病情变化模板
  17. data:[],//主诉使用的模板数据
  18. saveText:[],//主诉框内的值
  19. selecteds:[],
  20. moduleNum:{num:0},//点了几次添加病情变化
  21. focusIndex:'',
  22. mainIds:[], //选中的主症状和伴随的id(搜索去重)
  23. editClear:true,
  24. symptomFeature:{//分词
  25. featureData:[],
  26. refresh:false //用于数据更新
  27. },
  28. chronicDesease:null, //慢病
  29. mainTailIds:[], //获取症状尾巴用
  30. mainReadSonM:[], //回读的子模板
  31. addSearchData:[] //添加症状里的搜索
  32. }
  33. export default function(state=initState,action){
  34. const res = Object.assign({},state);
  35. switch (action.type){
  36. case SET_MAINSUIT://主诉模板
  37. return setMainMoudle(state,action);
  38. case SET_DATA://主诉使用模板
  39. // res.data = res.moduleData.concat();
  40. res.data = JSON.parse(JSON.stringify(res.moduleData));
  41. res.update=Math.random();
  42. return res;
  43. // return setMainData(state,action);
  44. case COMM_SYMPTOMS:
  45. return getCommSymptoms(state,action);
  46. case CLEAR_COMSYMPTOMS://清空常见症状
  47. // return clearCommSymptoms(state,action);
  48. res.CommonSymptoms = [];
  49. return res;
  50. case GET_BIGDATAPUSH://大数据推送症状
  51. return getBigSymptom(state,action);
  52. case SHOW_TAIL://显示标签尾巴
  53. return handleTailClick(state,action);
  54. case INSERT_MAIN://插入选中的常见症状
  55. return insertMain(state,action);
  56. case COMM_CONFIRM://普通多选框确定事件
  57. return commConfirm(state,action);
  58. case MIX_CONFIRM://有伴 多选框确定事件
  59. return confirm(state,action);
  60. case SET_SEARCH:
  61. return setSearch(state,action);
  62. case INSERT_SEARCH:
  63. return insertSearch(state,action);
  64. case CLEAR_SEARCH://清空搜索结果
  65. res.searchDatas = [];
  66. return res;
  67. case NUMBER_SELECT://数字键盘选中的值处理
  68. return setNumberValue(state,action);
  69. case RADIO_SELECT://单选选中的值处理
  70. return setRadioValue(state,action);
  71. case CHANGE_LABELVAL://改变标签值
  72. return changeLabelVal(state,action);
  73. case CHANGE_LABELVAL_NUMBER://数字标签输入值
  74. return changeNumLabelVal(state,action);
  75. case SAVE_FREE://自由输入
  76. return saveFreeVal(state,action);
  77. case MAIN_FOCUS_INDEX:
  78. res.focusIndex = action.index;
  79. res.span = action.$span;
  80. return res;
  81. case CLEAR_MAIN_SUIT://清除数据
  82. return clearMainSuit(state,action);
  83. case SETTEXTMODEVALUE:
  84. return setTextModeValue(state,action);
  85. case SETMAINTEXT:
  86. return setCheckText(state,action);
  87. case MAINADDLABELITEM:
  88. return addLabelItem(state,action);
  89. case SETMAININPUT:
  90. return setInputLabel(state,action);
  91. case DEL_MAIN:
  92. return backspaceText(state,action);
  93. case REMOVE_MAIN_ID:
  94. return removeId(state,action);
  95. case MAINSUIT_MUL://单列多选
  96. return multipleComfirn(state,action);
  97. case DEL_MAIN_LABLE://单独删除标签
  98. return delSingleLable(state,action);
  99. case SET_FEATURE://主诉分词
  100. return getSymptomFeature(state,action);
  101. case SET_MS_RADIO_INPUT_VAL:
  102. return setRadioInputValue(state,action);
  103. case SAVE_CHRONIC://存慢病信息,说明走慢病流程,慢病没有主诉模板,故要清掉
  104. res.chronicDesease = action.data;
  105. res.moduleData = [];
  106. res.addSmoduleData = [];
  107. return res;
  108. case RECOVER_TAG_MAIN:
  109. return recoveTag(state,action);
  110. case MAIN_REMOVE_SPAN:
  111. // 只剩最后一个空标签时才移除
  112. if(res.data.length == 1){
  113. res.data = [];
  114. res.saveText = [];
  115. res.mainIds = [];
  116. res.editClear = true;
  117. }
  118. return res;
  119. case SET_ADD_SEARCH: //添加症状-搜索
  120. res.addSearchData = action.data;
  121. return res;
  122. case CHOOSE_SEARCH:
  123. return chooseSearch(state,action);
  124. case CLEAR_ADD_SEARCH://清空症状搜索结果
  125. res.addSearchData = [];
  126. return res;
  127. default:
  128. return state;
  129. }
  130. }