소스 검색

ikey添加连接符-,其他史单列多选删除bug修改

zhouna 6 년 전
부모
커밋
3193f48e09

+ 5 - 5
src/components/MultSpread/index.jsx

@@ -42,7 +42,7 @@ class MultSpread extends Component{
   }
   getClass(){
     const {saveText,ikey,showAdd} = this.props;
-    const labelInx = ikey.substr(1);
+    const labelInx = tools.getLabelIndex(ikey);
     const text = saveText&&saveText[+labelInx];
     //const orgBorder = isImports&&!text?style['orange-border']:'';
     const isSelected = text?style['selected']:style['container'];
@@ -80,7 +80,7 @@ class MultSpread extends Component{
     let show = false;
     let inx = '',count=0;
     const list = data.map((it,i)=>{
-      inx=ikey+''+i;
+      inx=ikey+'-'+i;
       show = editable?false:showArr&&showArr[inx];
       switch (true){
         case +it.tagType===8:
@@ -168,7 +168,7 @@ class MultSpread extends Component{
   }
   changeToEdit(e){
     const {name,copyId,ikey,placeholder,handleDbclick,saveText,prefix,suffix} = this.props;
-    const labelInx = ikey.substr(1);
+    const labelInx = tools.getLabelIndex(ikey);
     const text = saveText&&saveText[+labelInx];
     //clearTimeout(this.state.timer);//取消延时的单击事件
     e.preventDefault();
@@ -191,7 +191,7 @@ class MultSpread extends Component{
       editable: false
     });
     let totalVal = e.target.innerText || e.target.innerHTML;
-    saveEditText && saveEditText({ikey,type:'4',totalVal});
+    saveEditText && saveEditText({ikey,type:ikey.split("-")[0],totalVal});
   }
   componentDidMount(){
     //挂载完成保存有加号的项目数据
@@ -204,7 +204,7 @@ class MultSpread extends Component{
   getContClass(){
     const {editable} = this.state;
     const {isImports,ikey,saveText} = this.props;
-    const labelInx = ikey.substr(1);
+    const labelInx = tools.getLabelIndex(ikey);
     const text = saveText&&saveText[+labelInx];
     const orgBorder = isImports&&!text?style['orange-border']:'';
     const edit = editable?style['blue-border']:'';

+ 1 - 1
src/containers/InlineTag.js

@@ -25,7 +25,7 @@ function mapDispatchToProps(dispatch,store){
       const type = params.ikey.substr(0,1);    //当前所在的项目
       const {ikey,text,prefix,suffix} = params;
       const i = getLabelIndex(ikey);
-      const inner = params.ikey.substr(params.ikey.length-1);
+      const inner = params.ikey.split("-")[2];
       dispatch({
         type:tagInpActions[+type],
         i,

+ 15 - 45
src/containers/MultSpread.js

@@ -4,7 +4,7 @@ import MultSpread from "@components/MultSpread";
 import {SETSELECTED,CLEARSELECTED,CONFIRMSELECTED,CHANGEOTHERTEXTLABEL,OTHERADDLABELITEM} from '@types/otherHistory';
 import {CHANGECHECKTEXTLABEL,ADDLABELITEM} from '@types/checkBody.js';
 import {CHANGE_LABELVAL,MAINADDLABELITEM} from '@store/types/mainSuit.js';
-import {CURRENTADDLABELITEM} from '@store/types/currentIll.js';
+import {CURRENTADDLABELITEM,CURRENT_TEXT_LABEL} from '@store/types/currentIll.js';
 import {HIDE,RESET,CLICKCOUNT,SETADDITEMINIT,ISREAD} from '@store/types/homePage.js';
 
 function mapStateToProps(state){
@@ -36,36 +36,13 @@ const getCopyData = (copyId,inx,boxMark)=>{
 
 /**************************双击标签输入*********************************/
 
-function mainSuitLabel(dispatch,params){
-  const index = params.ikey;
-  let ikey = index.substr(1);
-  const {changeVal,totalVal} = params;
-  dispatch({
-    type:CHANGE_LABELVAL,
-    data:{changeVal:changeVal,ikey:ikey,totalVal}
-  })
-}
-//其他史
-function otherHisLabelEdit(dispatch,params){
-  const index = params.ikey;
-  const {changeVal,totalVal} = params;
-  let ikey = index.substr(1);
-  dispatch({
-    type:CHANGEOTHERTEXTLABEL,
-    data:{changeVal:changeVal,ikey:ikey,totalVal}
-  })
-}
+const editTypes={
+  1:CHANGE_LABELVAL,      //主诉
+  2:CURRENT_TEXT_LABEL,                   //现病史
+  3:CHANGEOTHERTEXTLABEL,  //其他史
+  4:CHANGECHECKTEXTLABEL    //查体
+};
 
-//查体
-function checkBodyLabelEdit(dispatch,params){
-  const index = params.ikey;
-  let ikey = index.substr(1);
-  const {changeVal,totalVal} = params;
-  dispatch({
-    type:CHANGECHECKTEXTLABEL,
-    data:{changeVal:changeVal,ikey:ikey,totalVal}
-  })
-}
 function mapDispatchToProps(dispatch){
   return {
     resetHide(){
@@ -91,7 +68,7 @@ function mapDispatchToProps(dispatch){
     addLabelItem(param){
       const {copyId,ikey} = param;
       const boxMark = ikey.substr(0,1);
-      const inx = ikey.substr(1);
+      const inx = ikey.split("-")[1];
       //埋点记录
       dispatch({
         type:CLICKCOUNT,
@@ -103,20 +80,13 @@ function mapDispatchToProps(dispatch){
     },
     saveEditText(params){
       const {type} = params;
-      switch (+type){
-        case 1:
-          mainSuitLabel(dispatch,params);
-          break;
-        case 2:
-          break;
-        case 3:
-          otherHisLabelEdit(dispatch,params);
-          break;
-        case 4:
-          checkBodyLabelEdit(dispatch,params);
-          break;
-        default:
-      }
+      const index = params.ikey;
+      let ikey = index.split("-")[1];
+      const {changeVal,totalVal} = params;
+      dispatch({
+        type:editTypes[+type],
+        data:{changeVal:changeVal,ikey:ikey,totalVal}
+      });
     },
     handleClick(obj){
       dispatch({

+ 3 - 3
src/containers/eleType.js

@@ -22,7 +22,7 @@ export function singleRadio(params){
   const data = params.item;
   const {i,hideTag,boxMark,showArr,selecteds,importLabel} = params;
   let isHigh=importLabel&&importLabel.includes(data.id);
-  const showInx = boxMark+i+'0';    //单括号多标签的情况下需要识别同一个标签内多个下拉组件的显示状态
+  const showInx = boxMark+'-'+i+'-0';    //单括号多标签的情况下需要识别同一个标签内多个下拉组件的显示状态
   switch (+data.controlType){
     case 0:
     case 1:
@@ -120,7 +120,7 @@ function multLabels(params){
                      update={Math.random()}
                      boxMark={boxMark}
                      isImports={isHigh}
-                     ikey={boxMark+i}
+                     ikey={boxMark+'-'+i}
                      selecteds={selecteds&&selecteds[i]}
                      saveText={saveText}
                      /*name={data.name||data.tagName}*/
@@ -133,7 +133,7 @@ function multCheckLabels(params,tagType){
   const data = params.item;
   const {i,boxMark,showArr,selecteds,importLabel} = params;
   let isHigh=importLabel&&importLabel.includes(data.id);
-  const showInx = boxMark+i+'0';
+  const showInx = boxMark+"-"+i+'-0';
   return <SpreadDrop data={data.questionMapping}
                      ikey={showInx}
                      placeholder={data.name}

+ 4 - 4
src/store/actions/currentIll.js

@@ -421,7 +421,7 @@ export function setNumberValue(state,action){
   const param = action.params;
   const index = param.ikey;
   let labelInx = getLabelIndex(index);
-  const subInx = index.substr(index.length-1);
+  const subInx = index.split("-")[2];
   let item = res.data[labelInx];
   // if(param.text.trim()){
     if(+item.tagType===1){
@@ -453,7 +453,7 @@ export function setRadioValue(state,action){
   let res = Object.assign({},state);
   const {ikey,id,text} = action;
   let labelInx = getLabelIndex(ikey);
-  const subInx = ikey.substr(ikey.length-1);
+  const subInx = ikey.split("-")[2];
   let item = res.data[labelInx];
   if(typeof text != 'string'){    //需要展开项--有无治疗类型
     const len = +item.copyType === 0?1:0;
@@ -508,7 +508,7 @@ export const setRadioInputValue = (state,action)=>{
   const res = Object.assign({},state);
   const {ikey,values,id} = action.data;
   let index = getLabelIndex(ikey);
-  let innerInx = ikey.substr(ikey.length-1);
+  let innerInx = ikey.split("-")[2];
   let item = res.data[index];
   if(item.tagType!=1){      //在组合项中
     item = res.data[index].questionMapping[innerInx];
@@ -930,7 +930,7 @@ export function multipleComfirn(state,action){
   let res = Object.assign({},state);
   const {ikey,seleData,fullIkey} = action.data;
   let data = res.data;
-  let index = fullIkey.substr(fullIkey.length-1,1);
+  let index = fullIkey.split("-")[2];
   if(data[ikey].tagType==3){    //在组合项中
     let item = data[ikey].questionMapping;
     let arr=[];

+ 1 - 1
src/store/actions/homePage.js

@@ -16,7 +16,7 @@ export const showDrop=(state,action)=>{
   let temp = Object.assign({},obj);
   let keyArr = Object.keys(obj); 
   for(let i=0; i<keyArr.length; i++){
-    temp[JSON.parse(keyArr[i])] = false;
+    temp[keyArr[i]] = false;
   }
   /*for(let i in obj){
     temp[i] = false;

+ 1 - 1
src/store/async-actions/fetchModules.js

@@ -217,7 +217,7 @@ export function setOtherHisModule(){
     const model = otherModel&&otherModel.length>0?[...otherModel]:[block];     //查体模板
     const arr = deepClone(initData.otherHis);        //最近其他史数据
     const arrSave = deepClone(initData.otherHisSave);    //最近其他史saveText
-    const selects = deepClone(initData.otherSelecteds);  //其他史杂音类选中项
+    const selects = initData.otherSelecteds?[...initData.otherSelecteds]:[];  //其他史杂音类选中项
     const isHis = initData.otherIsHis;     //是否是历史数据
     const onlyOneText = arr && arr.length == 1 && arr[0].tagType == 8 && !arr[0].value;    //是否只有一个空的自由文本标签
     //是历史数据且不为空则显示历史数据,否则显示模板

+ 1 - 7
src/store/reducers/otherHistory.js

@@ -7,13 +7,7 @@ import {confirm,setRadioValue,setNumberValue,setCheckBoxValue,setCheckText,setSe
 import config from '@config/index.js';
 
 const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
-const initState = {data:[block],isEmpty:true,saveText:[],selecteds:[],focusIndex:'',editClear:true};/*mockData.OtherHis.moduleDetailDTOList;[
-    mockData.radioData,
-    mockData.inputData,
-    mockData.spreadData,
-    mockData.inpRadioData,
-    mockData.spreadMultData,
-  ];*/
+const initState = {data:[block],isEmpty:true,saveText:[],selecteds:[],focusIndex:'',editClear:true};
 
 export default function(state=initState,action){//console.log(state)
   const res = Object.assign({},state);

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

@@ -28,4 +28,5 @@ export const DEL_CURRENT_LABLE = 'DEL_CURRENT_LABLE';     //
 export const SET_RADIO_INPUT_VALUE = 'SET_RADIO_INPUT_VALUE';
 export const CURRENT_CHRONIC = 'CURRENT_CHRONIC';//慢病填充模板
 export const SAVE_CURR_FREE = 'SAVE_CURR_FREE';//自由输入
+export const CHANGE_CURRENT_LABELVAL = 'CHANGE_CURRENT_LABELVAL';//双击标签输入改变值
 

+ 1 - 8
src/utils/tools.js

@@ -1101,14 +1101,7 @@ function checkFullfillText(arr,noPre=false,noEnd=false){
 
 //获取标签index,入参:病例项index+标签index+标签内index
 function getLabelIndex(index){
-  let ikey = '';
-  if(index.length == 3){
-    ikey = index.substr(1,1);
-  }else if(index.length == 4){
-    ikey = index.substr(1,2);
-  }else if(index.length == 5){
-    ikey = index.substr(1,3);
-  }
+  let ikey = index.split('-')[1];
   return ikey;
 };