Procházet zdrojové kódy

查体添加重新推送,图标未换

zhouna před 5 roky
rodič
revize
41c6de4ec6

+ 3 - 1
src/components/CheckBody/index.jsx

@@ -7,6 +7,7 @@ import {getPageCoordinate,windowEventHandler,isIE,filterDataArr} from '@utils/to
 import $ from "jquery";
 import showImg from "../../common/images/show.png";
 import hideImg from "../../common/images/close.png";
+import rePushIcon from '../../common/images/possible.png';
 import config from '@config/index';
 
 class CheckBody extends Component{
@@ -110,9 +111,10 @@ class CheckBody extends Component{
     });
   }
   render(){
-    const {searchData,totalHide,data,saveText} = this.props;
+    const {searchData,totalHide,data,saveText,rePush} = this.props;
     const {boxLeft,boxTop} = this.state;
     return <ItemBox title='查体' handleClick={this.handleClick}>
+        <img src={rePushIcon} onClick={rePush}/>
         {this.getLabels()}
         {/*{showMoreBtn?more:''}*/}
         {searchData && searchData.length>0?<SearchDrop data={searchData} show={!totalHide} left={boxLeft} top={boxTop} onSelect={this.handleSearchSelect}></SearchDrop>:''}

+ 5 - 2
src/containers/CheckBody.js

@@ -1,8 +1,8 @@
 import {connect} from 'react-redux';
 import CheckBody from '@components/CheckBody';
-import {getModule,getInitData} from '@store/async-actions/fetchModules.js';
+import {getModule,getInitData,pregetCheckbodyData} from '@store/async-actions/fetchModules.js';
 import {HIDE,RESET,SETDROPSHOW,ISREAD,MODI_LOADING} from '@store/types/homePage.js';
-import {SELECTSEARCHDATA} from "@store/types/checkBody";
+import {SELECTSEARCHDATA,REPUSH_CHECK_LABELS} from "@store/types/checkBody";
 import {billing} from '@store/async-actions/pushMessage';
 import {didPushParamChange,filterDataArr} from '@utils/tools.js';
 
@@ -56,6 +56,9 @@ function mapDispatchToProps(dispatch){
         }
       });
     },
+    rePush(){console.log(222)
+      dispatch(pregetCheckbodyData(false,true));
+    }
   }
 }
 

+ 12 - 2
src/store/actions/checkBody.js

@@ -1,6 +1,5 @@
 import config from '@config/index.js';
-import {formatContinueDots,getLabelIndex,handleLocalDelTag,checkFullfillText} from '@utils/tools.js';
-import {shiftLocalDelTag} from "../../utils/tools";
+import {formatContinueDots,getLabelIndex,handleLocalDelTag,checkFullfillText,shiftLocalDelTag,getValuedLabels,removeRepeat} from '@utils/tools.js';
 
 export function preSetCheckbody(state,action) {
   let res = Object.assign({},state);
@@ -330,4 +329,15 @@ export function recoveTag(state,action) {
   shiftLocalDelTag();
   res.update = Math.random();
   return res;
+}
+
+export function reflashLabels(state,action) {
+  let res = Object.assign({},state);
+  const valuedLabels = getValuedLabels(res.data);
+  const newLabels = removeRepeat(valuedLabels,action.data);
+  const addTextsArr = checkFullfillText(newLabels);
+  res.data = addTextsArr.newArr;
+  res.saveText = addTextsArr.saveText;
+  res.update = Math.random();
+  return res;
 }

+ 8 - 2
src/store/async-actions/fetchModules.js

@@ -10,7 +10,7 @@ import config from "@config/index";
 import {CURRENT_CHRONIC} from '@store/types/currentIll';
 import {MODI_LOADING} from '@store/types/homePage';
 import {GET_ALL_HIS,FILTER_ALL_HIS} from '@store/types/emergencyHis';
-import {SET_IMPORT_CHECKBODY_LABEL} from "../types/checkBody";
+import {SET_IMPORT_CHECKBODY_LABEL,REPUSH_CHECK_LABELS} from "../types/checkBody";
 import {getBigPush} from '@utils/utils';
 
 const api={
@@ -135,7 +135,7 @@ export const getOtherHisRecord = ()=>{
 };
 
 //预取查体模板数据-现病史触发推送时获取
-export function pregetCheckbodyData(flag){     //flag=true获取到数据后立即显示
+export function pregetCheckbodyData(flag,addValued){     //flag=true获取到数据后立即显示,addValued=true在已选的标签后叠加
   return (dispatch)=>{
     if(flag){
       dispatch({type:MODI_LOADING,flag:true});
@@ -155,6 +155,12 @@ export function pregetCheckbodyData(flag){     //flag=true获取到数据后立
           type:PRESET,
           data:data
         });
+        if(addValued){
+          dispatch({
+            type:REPUSH_CHECK_LABELS,
+            data:data
+          })
+        }
         if(flag){
           const arr = checkFullfillText(data).newArr;
           const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签

+ 4 - 2
src/store/reducers/checkBody.js

@@ -1,10 +1,10 @@
 import {RECOVER_TAG_CHECK,SET,SETNUMBER4,SETSELECTED4,SETCHECKBOX,ADDLABELITEM,SETCHECKTEXT,SETSEARCHDATA,
   SELECTSEARCHDATA,CHANGECHECKTEXTLABEL,CLEARCHECKBODY,CHECK_FOCUS_INDEX,CHECKBODY_CLEAR,
   SETCHECKINPUT,DEL_CHECKBODY,CHECKCONFIRMSELECTED,
-  CHECKBODY_MUL,DEL_CHECKBODY_LABLE,SET_CK_RADIO_INPUT_VAL,SET_IMPORT_CHECKBODY_LABEL,PRESET} from '../types/checkBody.js';
+  CHECKBODY_MUL,DEL_CHECKBODY_LABLE,SET_CK_RADIO_INPUT_VAL,SET_IMPORT_CHECKBODY_LABEL,PRESET,REPUSH_CHECK_LABELS} from '../types/checkBody.js';
 import {recoveTag,set,setCheckBoxValue,
   setSearchData,insertLabelData,changeLabelVal,clearCheckBody,backspaceText
-  ,confirm,multipleComfirn,delSingleLable,setImportCheckbodyLabel,preSetCheckbody} from '../actions/checkBody.js';
+  ,confirm,multipleComfirn,delSingleLable,setImportCheckbodyLabel,preSetCheckbody,reflashLabels} from '../actions/checkBody.js';
 import {setRadioInputValue,setRadioValue,setNumberValue,setCheckText,addLabelItem,setInputLabel} from '@utils/utils';
 import config from '@config/index.js';
 
@@ -67,6 +67,8 @@ export default function(state=initState,action){
       return setImportCheckbodyLabel(state,action);
     case RECOVER_TAG_CHECK:
       return recoveTag(state,action);
+    case REPUSH_CHECK_LABELS:
+      return reflashLabels(state,action);
     default:
       return res;
   }

+ 2 - 1
src/store/types/checkBody.js

@@ -19,4 +19,5 @@ export const DEL_CHECKBODY_LABLE = 'DEL_CHECKBODY_LABLE';
 export const SET_CK_RADIO_INPUT_VAL = 'SET_CK_RADIO_INPUT_VAL';
 export const SET_IMPORT_CHECKBODY_LABEL='SET_IMPORT_CHECKBODY_LABEL';
 export const PRESET = 'PRESET_CHECKBODY_DATA';
-export const RECOVER_TAG_CHECK = 'RECOVER_TAG_CHECK';     //恢复已删除标签
+export const RECOVER_TAG_CHECK = 'RECOVER_TAG_CHECK';     //恢复已删除标签
+export const REPUSH_CHECK_LABELS = 'REPUSH_CHECK_LABELS';   //重新获取查体

+ 24 - 1
src/utils/tools.js

@@ -1410,6 +1410,27 @@ const setFontColorSize = (flg,pacs) => {
     return classStr;
   // }, 0);
 }
+
+//获取查体体征和已选中的标签
+function getValuedLabels(arr){
+  const newArr = arr.filter((it)=>{
+    return it.value||+it.specFlag===4;
+  });
+  return newArr;
+}
+
+//对象数组去重
+function removeRepeat(arr1,arr2){     //arr1被完全保留的数组
+  const arr = arr2.reduce(function(newArr,item){
+    const it = newArr.findIndex((i)=>i.id===item.id);
+    if(it===-1){
+      newArr.push(item);
+    }
+    return newArr;
+  },[...arr1]);
+  return arr;
+}
+
 module.exports = {
     getIds,
     getWindowInnerWidth,
@@ -1460,5 +1481,7 @@ module.exports = {
     setPosition,
     isAllPartClear,
     getDomUpDown,
-    setFontColorSize
+    setFontColorSize,
+    getValuedLabels,
+    removeRepeat
 };