Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev5.3.4' into dev/new1

# Conflicts:
#	src/components/DiagnosticList/index.jsx
#	src/components/Treat/GeneralTreat/index.less
zhouna 5 rokov pred
rodič
commit
b5819e8a28
76 zmenil súbory, kde vykonal 794 pridanie a 268 odobranie
  1. 2 2
      src/common/components/EditableSpan/index.jsx
  2. 2 1
      src/common/components/EditableSpan/index.less
  3. 12 11
      src/common/components/InlineTag/index.jsx
  4. 6 1
      src/common/components/InlineTag/index.less
  5. 4 4
      src/common/components/ItemBox/index.jsx
  6. 1 0
      src/common/components/ItemBox/index.less
  7. BIN
      src/common/images/addItem2.png
  8. BIN
      src/common/images/check_off.png
  9. BIN
      src/common/images/check_on.png
  10. 57 0
      src/common/less/base.less
  11. 9 14
      src/common/less/variables.less
  12. 2 2
      src/components/AddAssistCheck/AssistName/index.jsx
  13. 3 2
      src/components/AddAssistCheck/Textarea/index.jsx
  14. 3 3
      src/components/AddAssistCheck/index.jsx
  15. 11 3
      src/components/AddAssistCheck/index.less
  16. 5 5
      src/components/AddInspect/SlideExcel/index.jsx
  17. 18 5
      src/components/AddInspect/SlideExcel/index.less
  18. 3 3
      src/components/AddInspect/SlideSelect/index.jsx
  19. 9 0
      src/components/AddInspect/SlideSelect/index.less
  20. 2 0
      src/components/Advice/Textarea/index.jsx
  21. 5 0
      src/components/Advice/Textarea/index.less
  22. 5 4
      src/components/Advice/index.jsx
  23. 1 1
      src/components/Advice/index.less
  24. 3 3
      src/components/AssistCheck/index.jsx
  25. 59 9
      src/components/Banner/ModeChange/index.jsx
  26. 10 2
      src/components/Banner/ModeChange/index.less
  27. 45 14
      src/components/Banner/index.jsx
  28. 6 4
      src/components/CommonSymptom/index.jsx
  29. 8 3
      src/components/CommonSymptom/index.less
  30. 1 1
      src/components/Diagnosis/index.jsx
  31. 3 3
      src/components/DiagnosticList/index.jsx
  32. 3 0
      src/components/DiagnosticList/index.less
  33. 3 3
      src/components/Inspect/index.jsx
  34. 7 5
      src/components/ListItems/index.jsx
  35. 21 6
      src/components/ListItems/index.less
  36. 31 0
      src/components/MedicalInfo/Filters/index.jsx
  37. 13 0
      src/components/MedicalInfo/Filters/index.less
  38. 31 6
      src/components/MedicalInfo/index.jsx
  39. 1 1
      src/components/MedicalInfo/index.less
  40. 13 11
      src/components/MultSpread/index.jsx
  41. 14 3
      src/components/Multiple/index.jsx
  42. 4 4
      src/components/Multiple/index.less
  43. 11 9
      src/components/NumberDrop/index.jsx
  44. 15 6
      src/components/NumberUnitDrop/index.jsx
  45. 1 1
      src/components/Operation/index.jsx
  46. 2 1
      src/components/Operation/index.less
  47. 6 0
      src/components/PushItems/DetailsModal/index.less
  48. 6 1
      src/components/PushItems/TipsMsg/index.less
  49. 16 8
      src/components/RadioDrop/index.jsx
  50. 6 6
      src/components/RadioInpDrop/index.jsx
  51. 27 12
      src/components/SpreadDrop/index.jsx
  52. 6 0
      src/components/Treat/GeneralTreat/index.less
  53. 5 1
      src/config/index.js
  54. 1 1
      src/containers/AdviceContainer.js
  55. 1 1
      src/containers/CurrentIll.js
  56. 1 1
      src/containers/DiagnosticItem.js
  57. 1 1
      src/containers/DiagnosticList.js
  58. 1 1
      src/containers/MainSuit.js
  59. 17 4
      src/containers/MedicalInfoContainer.js
  60. 1 1
      src/containers/OtherHistory.js
  61. 3 0
      src/containers/RadioDrop.js
  62. 10 3
      src/containers/SpreadDrop.js
  63. 1 2
      src/containers/TypeConfigContainer.js
  64. 8 0
      src/containers/eleType.js
  65. 2 1
      src/store/actions/otherHistory.js
  66. 12 2
      src/store/actions/typeConfig.js
  67. 19 3
      src/store/async-actions/fetchModules.js
  68. 3 2
      src/store/async-actions/medicalInfo.js
  69. 35 39
      src/store/async-actions/patInfo.js
  70. 42 7
      src/store/async-actions/print.js
  71. 6 3
      src/store/async-actions/tabTemplate.js
  72. 1 0
      src/store/reducers/homePage.js
  73. 6 2
      src/store/reducers/medicalInfo.js
  74. 4 2
      src/store/reducers/typeConfig.js
  75. 2 1
      src/store/types/medicalInfo.js
  76. 80 7
      src/utils/tools.js

+ 2 - 2
src/common/components/EditableSpan/index.jsx

@@ -1,7 +1,7 @@
 import React,{Component} from 'react';
 import style from './index.less';
 import config from "@config/index";
-import {filterArr,isIE,getPageCoordinate,filterDataArr,preventDefault} from '@utils/tools.js';
+import {filterArr,isIE,getPageCoordinate,filterDataArr,preventDefault,setFontColorSize} from '@utils/tools.js';
 import Notify from '../Notify/index.js';
 import classNames from 'classnames';
 
@@ -372,7 +372,7 @@ class EditableSpan extends Component{
     if(br&&$span&&!$span.innerText){
       this.$span.current.innerHTML=' ';
     }
-    return classNames(style['editable-span'],isFull,unselect,hasBr);
+    return classNames(style['editable-span'],isFull,unselect,hasBr,setFontColorSize(2));
   }
 
   render() {

+ 2 - 1
src/common/components/EditableSpan/index.less

@@ -7,9 +7,10 @@
   // line-height: 2;
   min-height: 16px;//火狐需要
   line-height: 22px;
-  vertical-align: middle;
+  vertical-align: unset;
   text-align: left;
   padding-right: 1px;//火狐左右移动需要
+  font-weight: bold;
 }
 .editable-br{
   .editable-span;

+ 12 - 11
src/common/components/InlineTag/index.jsx

@@ -3,6 +3,7 @@ import style from "./index.less";
 import classNames from 'classnames';
 import Notify from '@commonComp/Notify';
 import config from '@config/index';
+import {setFontColorSize} from '@utils/tools';
 /***
  * 标签组件
  * author:zn@2018-11-08
@@ -78,17 +79,17 @@ class InlineTag extends Component {
   getStyle(){
     const {hideTag,placeholder,isExtBlue} = this.props;
     const value = this.state.value;
-    const ext = isExtBlue?style['ext']:'';
-    if(hideTag){
+    const ext = isExtBlue?style['ext']:'';//是否为体征
+    if(hideTag){//是否是多标签组合
       if(value){
-        return classNames(style['selected-no-tag']);
+        return classNames(style['selected-no-tag'], setFontColorSize());
       }
-      return classNames(style['no-tag'],ext);
+      return classNames(style['no-tag'],ext, setFontColorSize(2),'prefixUnsetColor');
     }
-    if(!value||value.trim()==placeholder){
-      return classNames(style['gray'],ext);
+    if(!value||value.trim()==placeholder){//灰色标签
+      return classNames(style['gray'],ext, setFontColorSize(1));
     }
-    return style['selected-tag'];
+    return classNames(style['selected-tag'], setFontColorSize());
   }
   moveEnd(obj) {
     if(window.getSelection){//ie11 10 9 ff safari
@@ -114,18 +115,18 @@ class InlineTag extends Component {
     this.$span.current.style.minWidth=spanWidth;
   }
   render(){
-    const {prefix,suffix} = this.props;
+    const {prefix,suffix,isExtBlue} = this.props;
     return <div className={this.getStyle()}
                 onClick={this.handleFixClick}>
-                <span>{prefix}</span>
-                <span className={style['free-in']}
+                <span className="prefixUnset">{prefix}</span>
+                <span className={`${style['free-in']}`}
                       contentEditable={true}
                       onBlur={this.handleBlur}
                       onInput={this.handleInput}
                       onFocus={this.handleFocus}
                       onClick={(e)=>{e.stopPropagation();}}
                       ref={this.$span}></span>
-                <span>{suffix}</span>
+                <span className="prefixUnset">{suffix}</span>
             </div>;
     }
 }

+ 6 - 1
src/common/components/InlineTag/index.less

@@ -14,6 +14,10 @@
 }
 .gray{
    .tag;
+   span {
+    color: unset;
+    font-size: unset;
+   }
   &.ext{
     color: @extBlue;
   }
@@ -23,7 +27,8 @@
   min-width: 30px;
   vertical-align: top;
   text-align: center;
-  /*border-bottom: 1px @placeholder-color solid;*/
+  color: unset;
+  font-size: unset;
   outline: none;
   word-break: break-all;
 }

+ 4 - 4
src/common/components/ItemBox/index.jsx

@@ -1,6 +1,6 @@
 import React,{Component} from 'react';
 import style from './index.less';
-import {isIE,handleEnter} from '@utils/tools.js';
+import {isIE,handleEnter,setFontColorSize} from '@utils/tools.js';
 import $ from 'jquery';
 /***
  * author:zn@2018-11-13
@@ -60,9 +60,9 @@ componentWillReceiveProps(nextP){
 }
   render(){
     const {title,children,editable,className,handleFocus,fuzhen,border,handleBlur,titleTop,backgroundColor,boxId} = this.props;
-    return <div className={style["box"]+" "+"clearfix"} >
-      <div className={style["title"] + ' '+(className||'')} style={{marginTop:titleTop?'22px':''}}>{title}</div>
-      <div ref={this.$div} className={`${style["content"]} ${border?style["border"]:''} ${backgroundColor?style["noBorder"]:''}`} contentEditable={editable} style={this.getBoxStyle()} onFocus={editable?handleFocus:null} onInput={this.handleInput} onClick={(e)=>{this.handleClick(e);}} onBlur={handleBlur} id={boxId} onkeydown={handleEnter}>
+    return <div className={style["box"]+" "+"clearfix"}>
+      <div className={`${style["title"]} ${setFontColorSize(2,4)}` + ' '+(className||'')} style={{marginTop:titleTop?'22px':''}}>{title}</div>
+      <div ref={this.$div} className={`${style["content"]} ${border?style["border"]:''} ${backgroundColor?style["noBorder"]:'' } ${setFontColorSize(2,5)}`} contentEditable={editable} style={this.getBoxStyle()} onFocus={editable?handleFocus:null} onInput={this.handleInput} onClick={(e)=>{this.handleClick(e);}} onBlur={handleBlur} id={boxId} onkeydown={handleEnter}>
         {fuzhen?children||fuzhen:children}
       </div>
     </div>

+ 1 - 0
src/common/components/ItemBox/index.less

@@ -23,6 +23,7 @@
     padding:5px;
     outline: none;
     border-bottom:1px @part-border-color dashed;
+    color: #333;
     /*border-radius: 4px;*/
   }
   .border {

BIN
src/common/images/addItem2.png


BIN
src/common/images/check_off.png


BIN
src/common/images/check_on.png


+ 57 - 0
src/common/less/base.less

@@ -70,3 +70,60 @@ html,body {
 :global(.ql-align-right) {
     text-align: right;
 }
+
+//标准颜色(主诉、现病史、其他史、查体)
+//字体修改
+:global(.inheritStyle){//继承样式
+    color: inherit;
+    font-size: inherit;
+}
+:global(.largeFontSize){//超大字号
+    font-size: 18px !important;
+}
+:global(.middleFontSize){//大字号
+    font-size: 16px !important;
+}
+:global(.simpleFontSize){//默认字号
+    font-size: 14px !important;
+}
+:global(.simpleLightColor){//标签未选中颜色
+    color: #bfbfbf !important;
+}
+:global(.simpleColor){
+    color: #333 !important;
+}
+:global(.selectColor){//选中颜色
+    color: #000 !important;
+}
+:global(.prefixUnset){//选中颜色
+    color: unset !important;
+    font-size: unset !important;
+}
+:global(.prefixUnsetColor){//继承颜色
+    color: unset !important;
+}
+
+:global(.widthChangeed){
+    width: 318px !important;
+}
+:global(.pdright){
+    padding-right: 308px !important;
+}
+:global(.middleImg){
+    img {
+        margin-bottom: 7px !important;
+    }
+}
+:global(.titleWidth){
+    width: 78px !important;
+    #mainSuit {
+        margin-left: 78px;
+    }
+}
+:global(.specialSize){
+    margin-left: 74px !important;
+}
+:global(.specialpaceSize){
+    margin-left: 74px !important;
+}
+

+ 9 - 14
src/common/less/variables.less

@@ -4,7 +4,7 @@
 @cyan: #00bcd4;
 @blue: #3B9ED0;
 @red:#ff0000;
-@extBlue:#71A9FE;
+@extBlue:#5968DD;
 @tab-color:#3B9ED0;
 
 @ipt-color:#E9F5FA;
@@ -18,7 +18,8 @@
 
 @btn-text-color: #fff;
 @text-color: #333;
-@placeholder-color: #716e6e;
+
+@placeholder-color: #bfbfbf;
 
 @link-hover-decoration: underline;
 
@@ -101,15 +102,11 @@
   line-height: 44px;
   font-size: 12px;
   color:@red;
-  // border: none;
   background: #fff;
-  float: left;
-  // outline: none;
-  // text-align: center;
-  // cursor: pointer;
+  //float: left;
   margin-left: 22px;
   position: relative;
-  bottom: -10px;
+  //bottom: -10px;
 }
 .confirm{
   width: 120px;
@@ -117,16 +114,13 @@
   line-height: 44px;
   color:@blue;
   font-size: 12px;
-  // border: 1px solid @blue;
   background: #fff;
   margin-left: 20px;
-  float: right;
-  // outline: none;
+  //float: right;
   text-align: right;
-  // cursor: pointer;
   font-weight: bold;
   position: relative;
-  bottom: -10px;
+  //bottom: -10px;
   padding-right: 10px;
 }
 :global(.red){
@@ -154,6 +148,7 @@
   position: relative;//发热
   display: inline-block;
   color: @text-color;
+  font-weight: bold;
   /*padding: 0 3px 0;*/
   border-bottom: 1px @border-color solid;
 }
@@ -162,7 +157,7 @@
   position: relative;
   /*margin-right: 5px;
   padding: 0 3px 0;*/
-  color: unset;
+  // color: unset;
   border:none!important;
   &:before,&:after{
   content: ''!important;

+ 2 - 2
src/components/AddAssistCheck/AssistName/index.jsx

@@ -1,7 +1,7 @@
 import React, { Component } from "react";
 import styles from "../index.less";
 import $ from 'jquery';
-import { windowEventHandler } from '@utils/tools';
+import { windowEventHandler,setFontColorSize } from '@utils/tools';
 
 class AssistName extends Component {
 	constructor(props) {
@@ -24,7 +24,7 @@ class AssistName extends Component {
 	render() {
 		const { winWidth, name, getInfomation } = this.props;
 		return (
-				<span className={styles.assistName} style={{ width: winWidth < 1150 ? '120px' : 'auto' }} ref={this.$assistName}>
+				<span className={`${styles.assistName} ${setFontColorSize(2)}`} style={{ width: winWidth < 1150 ? '120px' : 'auto' }} ref={this.$assistName}>
 					<span className={styles.tagSpan} title={name}>
 						{name&&this.splitName(name)}:
             <span className={styles.imgInfo} title='点击i图标可查看详细说明' onClick={() => getInfomation({ name: name, position: 1, type: 6 })}></span>

+ 3 - 2
src/components/AddAssistCheck/Textarea/index.jsx

@@ -2,6 +2,7 @@ import React, { Component } from "react";
 import style from "./index.less";
 import config from '@config/index';
 import $ from 'jquery';
+import { setFontColorSize} from '@utils/tools';
 
 class Textarea extends Component {
   constructor(props) {
@@ -73,13 +74,13 @@ class Textarea extends Component {
     const {idx,disabled} = this.props;
     return (
       <div className={style.textWap}>
-        <div className={style.divTextarea}
+        <div className={`${style.divTextarea} ${setFontColorSize(2,1)}`}
             contenteditable={disabled?false:true}
             ref={this.$dom}
             onInput={this.handleInput}
             onKeyUp={this.handleInput}
         ></div>
-        <p ref={this.textInput} onClick={this.handleFocus} className={style.textareaWarring}></p>
+        <p ref={this.textInput} onClick={this.handleFocus} className={`${style.textareaWarring} ${setFontColorSize(2)}`}></p>
       </div>
     );
   }

+ 3 - 3
src/components/AddAssistCheck/index.jsx

@@ -4,7 +4,7 @@ import styles from './index.less';
 import $ from 'jquery';
 import Textarea from './Textarea';
 import AssistName from './AssistName';
-import { getPageCoordinate,getCurrentDate,setPosition } from '@utils/tools';
+import { getPageCoordinate,getCurrentDate,setPosition, setFontColorSize } from '@utils/tools';
 import ScrollArea from 'react-scrollbar';
 
 class AddAssistCheck extends React.Component {
@@ -222,7 +222,7 @@ class AddAssistCheck extends React.Component {
                       <Textarea value={item.value} disabled={item.disabled} handlePush={handlePush} isRead={isRead} handleChangeAssistValue={handleChangeAssistValue} idx={idx}></Textarea>
                     </ScrollArea>
                   </div>
-                  <div className={styles.pointerFinger}>
+                  <div className={`${styles.pointerFinger} ${setFontColorSize(2)}`}>
                     <p>报告日期:<span>{item.time || this.state.dateTime}</span></p>
                   </div>
                 </li>)
@@ -276,7 +276,7 @@ class AddAssistCheck extends React.Component {
                 <Textarea value={item.value} disabled={item.disabled} handlePush={handlePush} isRead={isRead} handleChangeAssistValue={handleChangeAssistValue} idx={idx}></Textarea>
                 </ScrollArea>
               </div>
-              <div className={styles.pointerFinger}>
+              <div className={`${styles.pointerFinger} ${setFontColorSize(2,2)}`}>
                 <p onClick={() => this.handleShowDate(idx)}>报告日期:<span>{item.time || this.state.dateTime}</span></p>
                 <i onClick={() => this.handleShowDate(idx)}></i>
                 {/*<a href="javascript:void(0);" onClick={() => { this.handleDelClick(idx,item) }}><img src={close} alt="" /></a>*/}

+ 11 - 3
src/components/AddAssistCheck/index.less

@@ -50,13 +50,18 @@
     position: relative;
     clear: both;
     border-radius: 4px;
-
+    color: #000;
     .pointerFinger {
       width: 260px;
       position: absolute;
       right: 0;
       top: 10px;
-
+      p {
+        font-size: unset;
+        span {
+          font-size: unset;
+        }
+      }
       i {
         display: inline-block;
         position: absolute;
@@ -91,7 +96,7 @@
           box-sizing: border-box;
           margin-right: 0;
           display: inline-block;
-          width: 140px;
+          // width: 140px;
         }
       }
     }
@@ -102,6 +107,9 @@
       box-sizing: border-box;
       float: left;
       position: relative;
+      span {
+        font-size: unset;
+      }
     }
 
     .textareaWrap {

+ 5 - 5
src/components/AddInspect/SlideExcel/index.jsx

@@ -1,6 +1,6 @@
 import React, { Component } from "react";
 import styles from "./index.less";
-import { normalVal, timestampToTime, getStatusImg } from '@utils/tools';
+import { normalVal, timestampToTime, getStatusImg,setFontColorSize } from '@utils/tools';
 import slideUp from "@common/images/slide-up.png";
 import slideDown from "@common/images/slide-down.png";
 class SlideExcel extends Component {
@@ -36,12 +36,12 @@ class SlideExcel extends Component {
     return (
       <li className={`${styles.excelDataLis} clearfix`} style={{ border: items.lisExcelRes.length - 1 == idx ? 0 : '' }}>
         <span className={styles.excelDataTitle}>
-          <span className={styles.tagSpan}>
-            {item.menus}
+          <span className={`${styles.tagSpan} ${styles.selectTagSpan}`}>
+            <span className={`${styles.menus} ${setFontColorSize(2)}`}>{item.menus}</span>
             <span className={styles.imgInfo} title='点击i图标可查看详细说明' onClick={() => getInfomation({ name: item.lisExcelItem[0].uniquemealName || '', type: 12, position: 1 })}></span>
           </span>
         </span>
-        <table className={styles.table}>
+        <table className={`${styles.table} ${setFontColorSize(2)}`}>
           {show ? (item.lisExcelItem && item.lisExcelItem.map((value, idx) => {
             return <tr>
               <td style={{ width: '30%' }}>
@@ -85,7 +85,7 @@ class SlideExcel extends Component {
         </table>
         {
           item.lisExcelItem && item.lisExcelItem.length > 5 ?
-            <div className={styles.slides} onClick={this.handleSlide}>
+            <div className={`${styles.slides} ${setFontColorSize(2)}`} onClick={this.handleSlide}>
               {
                 show ? <span>收起</span> : <span>剩余<span className={styles.num}>{item.lisExcelItem.length - 4}</span>项</span>
               }

+ 18 - 5
src/components/AddInspect/SlideExcel/index.less

@@ -44,12 +44,17 @@
   width: 80%;
   // display: inline-block;
   tr {
-      line-height: 18px;
-      height: 18px;
-      width: 100%;
-      td {
-          padding-top: 3px;
+    line-height: 18px;
+    height: 18px;
+    width: 100%;
+    font-size: unset;
+    td {
+      padding-top: 3px;
+      font-size: unset;
+      span {
+        font-size: unset;
       }
+    }
   }
 }
 
@@ -137,6 +142,7 @@
   cursor: pointer;
   span {
     color:#7d7d7d;
+    font-size: unset;
   }
   img{
     vertical-align: middle;
@@ -178,6 +184,13 @@
   display: inline-block;
   position: relative;
 }
+.selectTagSpan {
+  // color: #000;
+  // font-weight: bold;
+  // .menus {
+  //   border-bottom: 1px solid #666666;
+  // }
+}
 .tagSpan:hover {
   .imgInfo, .imgInfo1 {
     display: block;

+ 3 - 3
src/components/AddInspect/SlideSelect/index.jsx

@@ -1,6 +1,6 @@
 import React, { Component } from "react";
 import styles from "./index.less";
-import { normalVal,timestampToTime,getPageCoordinate,setPosition } from '@utils/tools';
+import { normalVal,timestampToTime,getPageCoordinate,setPosition,setFontColorSize } from '@utils/tools';
 import { InspectCommon, Calendar,DelToast} from '@commonComp';
 import slideUp from "@common/images/slide-up.png";
 import slideDown from "@common/images/slide-down.png";
@@ -126,7 +126,7 @@ class SlideSelect extends Component {
             // 标签,血常规。。
             item.show ?
             <p className={styles.staticTagActive}>
-                <span className={styles.tagSpan} data-flg="current" style={{color:"#000"}} onClick={(e)=>this.handleLabelSub(e,item.questionId,idx)}>
+                <span className={`${styles.tagSpan} ${styles.selectTagSpan} ${setFontColorSize(2)}`} data-flg="current" onClick={(e)=>this.handleLabelSub(e,item.questionId,idx)}>
                   {item.name}
                   <span className={styles.imgInfo1} title='点击i图标可查看详细说明' onClick={()=>getInfomation({name:item.uniqueName || '', position: 1, type: 12})}></span>
                 </span>
@@ -148,7 +148,7 @@ class SlideSelect extends Component {
         }
         {
             item.show ?
-                <table className={styles.table}>
+                <table className={`${styles.table} ${setFontColorSize(2)}`}>
                     {
                         show?(item.details.map((val)=>{
                             if(val.value && val.value != ''){

+ 9 - 0
src/components/AddInspect/SlideSelect/index.less

@@ -84,9 +84,14 @@
         line-height: 18px;
         height: 18px;
         width: 100%;
+        font-size: unset;
         td {
           cursor: default;
           padding-top: 3px;
+          font-size: unset;
+          span {
+              font-size: unset;
+          }
         }
     }
 }
@@ -192,6 +197,10 @@
   display: inline-block;
   position: relative;
 }
+.selectTagSpan {
+  color: #000;
+  font-weight: bold;
+}
 .tagSpan:hover {
     .imgInfo, .imgInfo1 {
         display: block;

+ 2 - 0
src/components/Advice/Textarea/index.jsx

@@ -1,6 +1,7 @@
 import React, { Component } from "react";
 import style from "./index.less";
 import config from '@config/index';
+import {setFontColorSize} from '@utils/tools';
 import $ from 'jquery';
 
 class Textarea extends Component {
@@ -58,6 +59,7 @@ class Textarea extends Component {
       <div>
         <div 
             style={{outline: 'none',minHeight:'20px'}}
+            className={`${style['text']} ${setFontColorSize(2)}`}
             contenteditable={true}
             ref={this.$dom}
             onInput={this.handleInput}

+ 5 - 0
src/components/Advice/Textarea/index.less

@@ -0,0 +1,5 @@
+.text {
+  div {
+    font-size: unset;
+  }
+}

+ 5 - 4
src/components/Advice/index.jsx

@@ -1,6 +1,7 @@
 import React,{Component} from 'react';
 import style from './index.less';
 import {ItemBox} from '@commonComp';
+import {setFontColorSize} from '@utils/tools';
 import Textarea from './Textarea';
 import FollowUp from '@components/Treat/FollowUp'
 
@@ -97,22 +98,22 @@ class Advice extends Component{
 
     return  <div id="adviceBox" className={`${'mainsuit-box'} ${style['main-suit']}`}>
       <ItemBox title='医嘱' editable={false} border={true} marginTop="10px">
-        <div className={style['billing']}>
+        <div className={`${style['billing']} ${setFontColorSize(2)}`}>
           {advice.assay && advice.assay.length > 0 || advice.check && advice.check.length > 0 ? <h1>开单项目</h1> : ''}
             {advice.assay && <span className={style['treat-input']}> {advice.assay}</span>}
             {advice.check && <span className={style['treat-input']}> {advice.check}</span>}
         </div>
-        {advice.commontreatment && advice.commontreatment.length > 0 &&<div className={style['billing']}  >
+        {advice.commontreatment && advice.commontreatment.length > 0 &&<div className={`${style['billing']} ${setFontColorSize(2)}`}  >
           {advice.commontreatment && advice.commontreatment.length > 0 && <h1>一般治疗</h1>}
             {/* {advice.commontreatment && <div className={style['treat-input']}  onInput={this.handleComTreatInput}  contentEditable={true} style = {{outline: 'none'}}></div>} */}
             {<Textarea value={advice.commontreatment} isRead={isRead} handleChangeAssistValue={this.handleComTreatInput} ></Textarea>}
         </div>}
         {!isFirstMainDiag && hasFollowUp &&<div><FollowUp  noHeader="true" textStyle={{padding: '0 10px'}}  setFollowUp={saveFollowUp} followUp = {followUp} isRead={isRead}></FollowUp></div>}
-        {advice.scheme && advice.scheme.length > 0 &&<div contentEditable='false' className={style['scheme']}>
+        {advice.scheme && advice.scheme.length > 0 &&<div contentEditable='false' className={`${style['scheme']} ${setFontColorSize(2)}`}>
           {advice.scheme && advice.scheme.length > 0  && <h1>治疗方案</h1>}
           {scheme}
         </div>}
-        <div className={style['billing']} > 
+        <div className={`${style['billing']} ${setFontColorSize(2)}`} > 
             {/* {!advice.adviceInput && <Textarea value='' isRead={isRead} handleChangeAssistValue={this.handleAdviceInput} ></Textarea>}
             {advice.adviceInput && <Textarea value={advice.adviceInput} isRead={isRead} handleChangeAssistValue={this.handleAdviceInput} ></Textarea>} */}
             <Textarea value={advice.adviceInput} isRead={isRead} handleChangeAssistValue={this.handleAdviceInput}  typeConfig={typeConfig}></Textarea>

+ 1 - 1
src/components/Advice/index.less

@@ -23,4 +23,4 @@
 }
 .treat-input {
   // display: inline-block;
-}
+}

+ 3 - 3
src/components/AssistCheck/index.jsx

@@ -4,7 +4,7 @@ import { ItemBox, ConfirmModal, WrapModalContainer } from '@commonComp';
 import styles from './index.less';
 import Notify from '@commonComp/Notify';
 import $ from 'jquery';
-import { isIE, getUrlArgObject } from '@utils/tools.js';
+import { isIE, getUrlArgObject,setFontColorSize } from '@utils/tools.js';
 import { dragBox } from '@utils/drag';
 import WrapModalBodyPac from '@containers/WrapModalBodyPac';
 import { getExcelList } from '@store/actions/inspect';
@@ -74,7 +74,7 @@ class AssistCheck extends React.Component {
         return (
             <div className={styles.wrapper}>
                 <div className={styles.top}>
-                    <span id="assistResultData">辅检结果数据</span>
+                    <span id="assistResultData" className={`${setFontColorSize(2,5)}`}>辅检结果数据</span>
                     {/* <div className={styles.pushButton} disabled={ieVersion && ieVersion > 9 ? true : false} onClick={checkSystemIpt}>
                         <p id="importPacBtn" className={styles.importInspectBtn}>导入辅检结果</p>
                     </div> */}
@@ -113,7 +113,7 @@ class AssistCheck extends React.Component {
                     border={true}
                     marginTop={'20px'}
                 >
-                    <div style={{padding:'10px',boxSizing:'border-box'}} >
+                    <div style={{padding:'10px',boxSizing:'border-box',color:'#000'}} >
                         <AddAssistCheck
                             handleChangeValue={handleChangeValue}
                             refreshScroller={this.refreshScroller}

+ 59 - 9
src/components/Banner/ModeChange/index.jsx

@@ -2,8 +2,11 @@ import React, { Component } from "react";
 import style from "./index.less";
 import ReactDom from "react-dom";
 import close from '@images/icon_close.png';
-import sopen from '@images/btn-open.png'
-import sclose from '@images/btn-closed.png'
+import sopen from '@images/btn-open.png';
+import sclose from '@images/btn-closed.png';
+import radio_off from '@images/icon-radio-default.png';
+import radio_on from '@images/icon-radio-active.png';
+
 
 class ModeChange extends Component {
     constructor(props){
@@ -11,14 +14,21 @@ class ModeChange extends Component {
       this.getStyle=this.getStyle.bind(this);
 
     }
-    getStyle(){
-        const {hideBtn} = this.props;
+    getStyle(flag){
+        const {hideBtn,config0} = this.props;
+        if(flag===1&&config0===1){
+          return style['fade'];
+        }
         return hideBtn?'':style['fade'];
     }
     render(){
-        const {closeConfigModal, changeType, confirmType, mode,hideBtn} = this.props;
+        const {closeConfigModal, changeType, confirmType, config0,config1,config2,config3,config4,hideBtn} = this.props;
         const domNode = document.getElementById('root');
-        const isOpen = +mode===0;
+        const isOpen = +config0!==1;
+        const general = +config1!==1;
+        const ohis = +config2!==1;
+        const fontsize = +config3!==1;
+        const color = +config4!==1;
         return ReactDom.createPortal(<React.Fragment>
             <div className={style['modal']}>
               <div className={style['shade']} onClick={closeConfigModal}></div>
@@ -27,16 +37,56 @@ class ModeChange extends Component {
                 <div className={style["oper"]}>
                     <p className={this.getStyle()}>
                       <span>开启模板智能推送:</span>
-                      <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType(isOpen?'1':'0'):null}>
+                      <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType('config0',isOpen?1:0):null}>
                         <img src={isOpen?sopen:sclose} alt=""/>
                         {isOpen?'开':'关'}
                         </a>
                     </p>
+                  <p className={this.getStyle(1)}>
+                    <span>开启一般情况默认值:</span>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn&&isOpen?()=>changeType('config1',general?1:0):null}>
+                      <img src={general?sclose:sopen} alt=""/>
+                      {general?'关':'开'}
+                    </a>
+                  </p>
+                  <p className={this.getStyle(1)+" "+style['big-marb']}>
+                    <span>开启其他史默认值:</span>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn&&isOpen?()=>changeType('config2',ohis?1:0):null}>
+                      <img src={ohis?sclose:sopen} alt=""/>
+                      {ohis?'关':'开'}
+                    </a>
+                  </p>
+                  <p className={this.getStyle()}>
+                    <span>默认字体大小:</span>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType('config3',0):null}>
+                      <img src={fontsize?radio_on:radio_off} alt=""/>
+                      标准
+                    </a>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType('config3',1):null}>
+                      <img src={fontsize?radio_off:radio_on} alt=""/>
+                      增大
+                    </a>
+                  </p>
+                  <p className={this.getStyle()}>
+                    <span>默认字体颜色:</span>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType('config4',0):null}>
+                      <img src={color?radio_on:radio_off} alt=""/>
+                      标准
+                    </a>
+                    <a className={style['switch']} href="javascript:void(0)" onClick={hideBtn?()=>changeType('config4',1):null}>
+                      <img src={color?radio_off:radio_on} alt=""/>
+                      增黑
+                    </a>
+                  </p>
                 </div>
                 <div className={style["explain"]}>
                     <p>说明:</p>
-                    <p>1.该设置只针对问诊模块中的“主诉”、“现病史”、“其他史”功能;</p>
-                    <p>2.慢病模式下,该模板智能推送的设置功能不可使用。</p>
+                    <p>1、智能推送模式只针对问诊模块中的“主诉”、“现病史”、“其他史”展示科室模版功能;</p>
+                    <p>2、慢病模式下,该模版智能推送的设置功能不可用;</p>
+                    <p>3、一般情况默认值:神清、精神可、胃纳可、睡眠可、二遍无殊、体重无明显减轻;</p>
+                    <p>4、其他史默认值:既往史无殊、过敏史无殊、个人史无殊;</p>
+                    <p>5、标准字号:</p>
+                    <p>6、标准字体颜色:</p>
                 </div>
                 {hideBtn?<div className={style['btn']} onClick={confirmType}><button>保存修改</button></div>:<div className={style['btn']} onClick={closeConfigModal}><button>&nbsp;&nbsp;关闭&nbsp;&nbsp;</button></div>}
             </div>

+ 10 - 2
src/components/Banner/ModeChange/index.less

@@ -16,20 +16,28 @@
       .maskContentZIndex1;
       position: fixed;
       top: 100px;
-      width: 432px;
+      width: 45%;
+      min-width: 450px;
       left:50%;
       margin-left: -216px;
       min-height: 284px;
       background: #fff;
       .oper{
         margin: 20px 30px;
+        p{
+          margin-bottom: 10px;
+          &.big-marb{
+            margin-bottom: 20px;
+          }
+        }
         .fade{
           opacity: .4;
         }
       }
       .explain{
         margin: 50px 30px;
-        opacity: .5;
+        /*opacity: .5;*/
+        color: #777;
         p{
           font-size: 12px;
           line-height: 20px;

+ 45 - 14
src/components/Banner/index.jsx

@@ -15,9 +15,14 @@ import ModeChange from './ModeChange'
 
 class Banner extends Component {
   constructor(props){
-    super(props)
+    super(props);
+    const conf = props.typeConfig;
     this.state = {
-      mode: props.typeConfig,
+      config0: conf[0],    //模式
+      config1:conf[1],   //一般情况默认
+      config2:conf[2],      //其他史默认
+      config3:conf[3],    //字体大小
+      config4:conf[4],       //字体颜色
       emergencyBox:false
     };
     this.showConfigModal = this.showConfigModal.bind(this);
@@ -25,32 +30,58 @@ class Banner extends Component {
     this.confirmType = this.confirmType.bind(this);
     this.showHisModal = this.showHisModal.bind(this);
     this.handleHisClose = this.handleHisClose.bind(this);
+    this.setInitConfig = this.setInitConfig.bind(this);
   }
 
   showConfigModal(){
-    this.setState({
-      mode:this.props.typeConfig,
-    });
+    this.setInitConfig();
     this.props.showConfigModal()
   }
 
-  changeType(typeConfig){
+  changeType(type,typeConfig){
+    if(type==='config0'&&typeConfig===1){     //智能模式关闭,一般情况和其他史默认值也关闭
+      this.setState({
+        config0: 1,
+        config1: 0,
+        config2: 0,
+      });
+      return;
+    }
     this.setState({
-      mode:typeConfig
+      [type]:typeConfig
     });
   }
 
   confirmType(){
     const {typeConfig,confirmType,clearCommS,closeConfigModal,readMode} = this.props;
-    const mode = this.state.mode;
     // 清空主诉常见症状
     clearCommS();
-    if(mode==typeConfig&&typeConfig==readMode){
+    /*if(mode==typeConfig&&typeConfig==readMode){
       closeConfigModal();
       return;
+    }*/
+    const configs= this.parseConf();
+    confirmType&&confirmType(configs);
+    closeConfigModal();
+  }
+  parseConf(){
+    let configs = Object.assign({},this.state);
+    delete configs.emergencyBox;
+    let obj = {};
+    for(let i in configs){
+      obj[i.replace('config','')] = configs[i];
     }
-    confirmType&&confirmType(mode);
-    closeConfigModal()
+    return obj;
+  }
+  setInitConfig(){
+    const conf = this.props.typeConfig;
+    this.setState({
+      config0: conf[0],
+      config1:conf[1],
+      config2:conf[2],
+      config3:conf[3],
+      config4:conf[4],
+    });
   }
   showHisModal(){
     const {getAllRecord} = this.props;
@@ -68,12 +99,12 @@ class Banner extends Component {
   handleHisClose(){
     this.setState({
       emergencyBox:false,
-    })
+    });
     dragBox('previewWrapper','previewStatic','del')    
   }
   render() {
     const {visible,ifShow,deptName, closeConfigModal,hasMain,hasCurrent,hasOther} = this.props;
-    const {mode,emergencyBox} = this.state;
+    const {emergencyBox} = this.state;
     const {showConfigModal, changeType, confirmType} = this;
     const domNode = document.getElementById('root');
     const disabled = !(hasMain||hasCurrent||hasOther);
@@ -92,7 +123,7 @@ class Banner extends Component {
           </div>
         </div>
         {visible&& <ModeChange
-          mode = {mode}
+          {...this.state}
           hideBtn={disabled}
           closeConfigModal = {closeConfigModal}
           changeType = {changeType}

+ 6 - 4
src/components/CommonSymptom/index.jsx

@@ -119,7 +119,13 @@ class CommonSymptom extends Component{
     return <div className={this.getClass()} contenteditable="false" style={{'display':hide?'none':'block'}} ref={this.div} onClick={this.handleOuter}>
       <ul className={style["listBox"]}>
         {mainHis.length>0?<ul className={style["his"]}>
+          <div className='clearfix'>
           <p>最近输入症状:</p>
+          <div className={style['oper']}>
+            <span className={style['clear']} onClick={this.handleClear}>清空选项</span>
+            <span className={style['confirm']} onClick={this.handleConfirm}>确定</span>
+          </div>
+          </div>
           {mainHis.map((it)=>{
             return <li onClick={(e)=>this.handleSelect(e,it)} className={this.getStyle(it.conceptId)} title={it.name.length>5?it.name:''}>{it.name.length>5?it.name.slice(0,4)+'...':it.name}</li>
           })}
@@ -129,10 +135,6 @@ class CommonSymptom extends Component{
           return <li onClick={(e)=>this.handleSelect(e,it)} className={this.getStyle(it.conceptId)} title={it.name.length>5?it.name:''}>{it.name.length>5?it.name.slice(0,4)+'...':it.name}</li>
         })}
       </ul>
-      <div className={style['oper']}>
-        <span className={style['clear']} onClick={this.handleClear}>清空选项</span>
-        <span className={style['confirm']} onClick={this.handleConfirm}>确定</span>
-      </div>
     </div>
   }
 }

+ 8 - 3
src/components/CommonSymptom/index.less

@@ -11,9 +11,11 @@
       color: #3B9ED0;
       border-bottom: 1px solid #EAEDF1;
       p{
-        line-height: 32px;
+        line-height: 44px;
         padding-left: 15px;
         color: #000;
+        width: 180px;
+        float: left;
       }
     }
   .c-title{
@@ -36,20 +38,23 @@
   .clear{
     .btnCom;
     .clear;
+    border: 1px #ff0000 solid;
+    padding: 5px 8px;
     margin-left: 15px;
     bottom: 0;
   }
   .confirm{
     .btnCom;
     .confirm;
+    border: 1px #3B9ED0 solid;
+    padding: 5px 8px;
     width: 75px;
     margin-left: 15px;
     bottom: 0;
-    padding-right: 20px;
   }
   .oper{
-    margin-top: 5px;
     padding-right: 5px;
+    float: right;
   }
 }
 .hide{

+ 1 - 1
src/components/Diagnosis/index.jsx

@@ -55,7 +55,7 @@ class Diagnosis extends Component {
     return (<div id="diagnosisResult">
       <ItemBox id="diagnosis" title='诊断' boxHeight='auto' titleTop='22px' marginTop='9px' backgroundColor='#EAF7FD'>
         <DiagnosticList refreshScroller={this.refreshScroller}></DiagnosticList>
-        <div style={{ marginLeft: '10px', position: 'relative' }}>
+        <div style={{ marginLeft: '10px', position: 'relative',color:'#000' }}>
           <Add showText="添加诊断结果" handleClick={this.handleshowSearch} id="addDiag" height="50px" />
           <DiagResultSearch
             refreshScroller={this.refreshScroller} setHighter={this.props.setHighter} windowHeight={this.props.windowHeight} pageTop={this.state.pageTop} height={150}></DiagResultSearch>

+ 3 - 3
src/components/DiagnosticList/index.jsx

@@ -12,7 +12,7 @@ import Notify from '@commonComp/Notify';
 import Treat from '@containers/Treat'
 import store from '@store';
 import { initItemList ,setInitHistory,getHistempDetail} from '@store/async-actions/historyTemplates';
-import { pushAllDataList,inspectAndAssist ,deepClone} from '@utils/tools';
+import { pushAllDataList,inspectAndAssist ,deepClone,setFontColorSize} from '@utils/tools';
 import { dragBox } from '@utils/drag';
 import iconRadioDefault from '@common/images/icon-radio-default.png'
 import iconRadioActive from '@common/images/icon-radio-active.png'
@@ -289,7 +289,7 @@ class DiagnosticList extends Component {
                         const hasTreat = item.treat && ((item.treat.commonTreatment&&item.treat.commonTreatment.content) || (item.treat.surgeryTreatment&&item.treat.surgeryTreatment.content) || item.treat.treatment.length>0 ||(item.adverseReactions&&item.adverseReactions.length > 0)
                            || (item.drugHistory && item.drugHistory['慢病用药内容'] &&  item.drugHistory['慢病用药内容'].length > 0) || (item.drugHistory &&item.drugHistory['普通病用药内容'] &&  item.drugHistory['普通病用药内容'].length > 0) ||item.follow)
                         isChronic = chronicMagItem&&item.type==2&&chronicList&&chronicList.findIndex((it)=>it.conceptId==item.conceptId)!=-1;
-                        return (<div draggable={true} className={style['diag-box'] + ' clearfix'} id="diagListBox" key={item.conceptId} >
+                        return (<div draggable={true} className={`${style['diag-box']} ${setFontColorSize(2,3)} clearfix`} id="diagListBox" key={item.conceptId} >
                                     {index === 0 ? '' : <span className={style['diag-up']} onClick={() => {this.upDiagnostic(index)}}><img className={style["diag-up"]} src={diagUp}/></span>}
                                     {list.length === 1 ? '' : index !== 0 ? '' : <span onClick={() => {this.downDiagnostic(index)}} className={style['diag-down']}><img className={style["diag-down"]} src={diagDown}/></span>}
                                     <span className={style['diag-number']} style={{fontWeight:index === 0 ?'bold':'normal'}}>{index === 0 ? '1' : index+1}</span>
@@ -300,7 +300,7 @@ class DiagnosticList extends Component {
                                       <span   className={style['diag-name-box']} style={{maxWidth: windowWidth > 1024 ?windowWidth-900 +'px':'130px'}} onClick={this.handleClickDiag.bind(this,item,false,true,false)}>
                                         {item.name}
                                       </span>
-                                      <img className={style['info-img']}  
+                                      <img className={`${style['info-img']}`}
                                           title='点击i图标可查看详细说明'
                                           style ={hasEnterItem===index  ? {display: "inline-block"} : {display: "none"}}
                                           src={hasEnterImg ? infoMove : infoShow} 

+ 3 - 0
src/components/DiagnosticList/index.less

@@ -9,6 +9,9 @@
     border-bottom: 1px dotted #989DA3;
     position: relative;
     background: #EAF7FD;
+    span {
+        font-size: unset;
+    }
 }
 .diag-number {
     display: inline-block;

+ 3 - 3
src/components/Inspect/index.jsx

@@ -7,7 +7,7 @@ import Notify from '@commonComp/Notify';
 import store from '@store';
 import $ from 'jquery';
 import { host, prefix } from '@utils/config.js';
-import { isIE, getUrlArgObject,getCurrentDate } from '@utils/tools.js';
+import { isIE, getUrlArgObject,getCurrentDate,setFontColorSize } from '@utils/tools.js';
 import { dragBox } from '@utils/drag';
 import WrapModalBody from '@containers/WrapModalBody';
 
@@ -219,7 +219,7 @@ class Inspect extends React.Component {
       <div className={styles.wrapper}>
         {/* 导入功能插件,ie8/9权限问题暂未解决,先隐藏 */}
         <div className={styles.top}>
-          <span id="inspectResultData">化验结果数据</span>
+          <span id="inspectResultData" className={`${setFontColorSize(2,5)}`}>化验结果数据</span>
           {/* <div className={this.getStyle()} onClick={ieVersion&&ieVersion<=9?null:this.handleImportExcel}> */}
           <div className={this.getStyle()} style={{ display: hospitalMsg.import_way_lis == 0 ? 'none' : 'block' }}>
             {/* <button disabled={ieVersion&&ieVersion>9?true:false}onClick={ieVersion && ieVersion <= 9 ? null : this.handleImportExcel}>导入化验结果</button>
@@ -263,7 +263,7 @@ class Inspect extends React.Component {
           style={{marginRight:'0'}}
           marginTop={'20px'}
         >
-          <div style={{ padding: '10px', boxSizing: 'border-box' }} >
+          <div style={{ padding: '10px', boxSizing: 'border-box',color:'#000' }} >
             <AddInspect
               handleSign={handleSign}
               setHighter={setHighter}

+ 7 - 5
src/components/ListItems/index.jsx

@@ -69,15 +69,17 @@ class ListItems extends Component{
     const noPush = tagType===11&&(!pushList||pushList.length===0);
     const noSearch = boxMark==1 && tagType==11 && !pos;       //非第一病程添加症状标签不显示搜索
     return <div className={style["drop-list"]} ref={parDiv} style={this.getStyle()} contentEditable="false" onClick={(e)=>{e.stopPropagation();}}>
-      {noPush?'':<p className={style['orderTips']}>按{order?'从左到右从上到下':'点击'}顺序成文</p>}
+      <div className='clearfix'>
+        {noPush?'':<p className={order?style['orderTips']:style['orderTips-m']}>按{order?'从左到右从上到下':'点击'}顺序成文</p>}
+        <div className={style["oper"]}>
+          <span className={style['clear']} onClick={handleClear}>清空选项</span>
+          <span className={style['confirm']} onClick={this.clickConfirm}>确定</span>
+        </div>
+      </div>
       {this.getLabels()}
       {noSearch && <div className="search">
         <SearchBox show={show} pushIds={this.getPushItemIds(pushList)} 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>
     </div>
   }
 }

+ 21 - 6
src/components/ListItems/index.less

@@ -1,22 +1,37 @@
 @import "~@less/mixin.less";
 .drop-list{
   .pop;
-  padding:8px 20px 25px 0;
+  padding:14px 20px 8px 0;
+  min-width: 300px;
 }
 .orderTips{
+  float: left;
   color: #bfbfbf;
-  margin:0 0 0 28px;
+  margin:0 0 10px 28px;
+  max-width: 98px;
+  white-space: initial;
+}
+.orderTips-m{
+  .orderTips;
+  margin-top:10px;
+}
+.oper{
+  float: right;
 }
 .clear{
   .btnCom;
   .clear;
-  height: auto;
-  line-height: unset;
+  border: 1px #ff0000 solid;
+  padding: 5px 8px;
+  /*height: auto;
+  line-height: unset;*/
 }
 .confirm{
   .btnCom;
   .confirm;
-  height: auto;
-  line-height: unset;
+  border: 1px #3B9ED0 solid;
+  padding: 5px 8px;
+ /* height: auto;
+  line-height: unset;*/
   width: 60px;
 }

+ 31 - 0
src/components/MedicalInfo/Filters/index.jsx

@@ -0,0 +1,31 @@
+import React, {Component} from "react";
+import style from './index.less';
+import checkOnIcon from '@common/images/check_on.png';
+import checkOffIcon from '@common/images/check_off.png';
+
+class Filters extends Component {
+  constructor(props) {
+    super(props);
+  }
+  drawItem(){
+    const {data,checkeds,handleCheck} = this.props;
+    let isChecked=false;
+    return data.map((it)=>{
+      isChecked = checkeds.includes(it.val);
+      return <span onClick={()=>handleCheck(it.val)}>
+                  <img src={isChecked?checkOnIcon:checkOffIcon} alt=""/>
+                  {it.name}
+                </span>
+    })
+  }
+  render() {
+    return <div className={style["filters"]}>
+              {this.drawItem()}
+            </div>
+
+
+
+  }
+}
+
+export default Filters;

+ 13 - 0
src/components/MedicalInfo/Filters/index.less

@@ -0,0 +1,13 @@
+.filters{
+  width: 380px;
+  margin-top:10px;
+  img{
+    vertical-align: text-bottom;
+    margin-right: 3px;
+  }
+  span{
+    cursor: pointer;
+    font-size: 12px;
+    margin:0 20px 4px 0;
+  }
+}

+ 31 - 6
src/components/MedicalInfo/index.jsx

@@ -2,6 +2,7 @@ import React, { Component } from 'react';
 import style from './index.less';
 import delIcon from '@common/images/del_nor.png';
 import {windowEventHandler,getCurrentDate,getWindowInnerHeight} from '@utils/tools'
+import Filters from './Filters';
 
 class MedicalInfo extends Component {
     constructor(props) {
@@ -12,20 +13,22 @@ class MedicalInfo extends Component {
         this.state={
           val:'',
           hasSearch: false,
-          msg:''
+          msg:'',
+          typeChecks:['0'],
         };
         this.search = this.search.bind(this);
         this.handleChange = this.handleChange.bind(this);
         this.clear = this.clear.bind(this);
         this.getSearchList = this.getSearchList.bind(this);
         this.handleEnter = this.handleEnter.bind(this);
+        this.handleTypeCheck = this.handleTypeCheck.bind(this);
     }
     getSearchList() {
         const { getAllConceptDetail,searchResult } = this.props;
         const that = this;
         if(searchResult&&searchResult.length>0){
           setTimeout(function(){
-            that.$ul.current.style.height = getWindowInnerHeight()-248+'px';
+            that.$ul.current.style.height = getWindowInnerHeight()-278+'px';
           },100);
         }
         return searchResult && searchResult.map((item) => {
@@ -48,7 +51,7 @@ class MedicalInfo extends Component {
       }
       const {handleChangeValue} = this.props;
       const val = this.$inp.current.value;
-      handleChangeValue&&handleChangeValue(val);
+      handleChangeValue&&handleChangeValue(val,this.state.typeChecks);
     }
   handleChange(){
     const value = this.$inp.current.value;
@@ -82,16 +85,37 @@ class MedicalInfo extends Component {
       this.$inp.current.focus();
       clearResult&&clearResult();
   }
+  handleTypeCheck(val){
+    let {typeChecks} = this.state;
+    //const allChecked = typeChecks.includes('0');
+    const alli = typeChecks.findIndex((it)=>it==='0');
+    const allChecked = alli!==-1;
+    if(val==='0'){      //全部与其他互斥
+      !allChecked?typeChecks=['0']:typeChecks.splice(alli,1);
+    }else{
+      allChecked&&typeChecks.splice(alli,1);
+      if(!typeChecks.includes(val)){
+        typeChecks.push(val);
+      }else{
+        const i = typeChecks.findIndex((it)=>val===it);
+        typeChecks.splice(i,1);
+      }
+    }
+    this.setState({
+      typeChecks:typeChecks
+    });
+  }
   componentDidMount(){
     const height = getWindowInnerHeight()-148;
     this.$cont.current.style.height = height+"px";
+    this.props.getFilters();
     windowEventHandler('resize', ()=>{
       if(this.$cont.current){
         const height = getWindowInnerHeight()-148;
         this.$cont.current.style.height = height+"px";
       }
       if(this.$ul.current){
-        const height = getWindowInnerHeight()-248;
+        const height = getWindowInnerHeight()-278;
         this.$ul.current.style.height = height+"px";
       }
     });
@@ -102,8 +126,8 @@ class MedicalInfo extends Component {
     });
   }
     render() {
-        const {searchResult} = this.props;
-        const {val, hasSearch,msg} = this.state;
+        const {searchResult,filterList} = this.props;
+        const {val, hasSearch,msg,typeChecks} = this.state;
         return (
             <div className={style['search-cont']} ref={this.$cont}>
               <div className={style['search-box']}>
@@ -112,6 +136,7 @@ class MedicalInfo extends Component {
                   {val?<img src={delIcon} alt="清空" onClick={this.clear}/>:''}
                   <button onClick={this.search}>搜索</button>
                 </p>
+                <Filters data ={filterList} checkeds={typeChecks} handleCheck={this.handleTypeCheck}></Filters>
               </div>
               {searchResult&&searchResult.length>0?<div className={style['result']}>
                     <p className={style['title']}>查询内容</p>

+ 1 - 1
src/components/MedicalInfo/index.less

@@ -56,7 +56,7 @@
         border: none;
     }
     .result{
-        margin-top:46px;
+        margin-top:95px;
         padding: 0 5px 0 0;
         height: 100%;
         box-sizing: border-box;

+ 13 - 11
src/components/MultSpread/index.jsx

@@ -9,8 +9,10 @@ import addIcon from '@images/addItem.png';
 import addIcon1 from '@images/addItem2.png';
 import style from "./index.less";
 import tools from '@utils/tools';
+import {setFontColorSize} from '@utils/tools';
 import NumberUnitDrop from '@containers/NumberUnitDrop';
 
+
 /****
  * 多标签组合
  * author:zn@2018-11.26
@@ -45,13 +47,13 @@ class MultSpread extends Component{
     this.setBMIstate = this.setBMIstate.bind(this);
   }
   getClass(){
-    const {saveText,ikey,showAdd} = this.props;
+    const {saveText,ikey,showAdd,isExtBlue} = this.props;
     const labelInx = tools.getLabelIndex(ikey);
     const text = saveText&&saveText[+labelInx];
     //const orgBorder = isImports&&!text?style['orange-border']:'';
     const isSelected = text?style['selected']:style['container'];
     const hasAdd = showAdd?style['add']:'';
-    return classNames(isSelected,hasAdd);
+    return classNames(isSelected,hasAdd,setFontColorSize(isExtBlue?2:1));
   }
   saveDoms(it){
     const doms = this.state.numDoms;
@@ -249,20 +251,20 @@ class MultSpread extends Component{
     const text = saveText&&saveText[+labelInx];
     const ext = !text&&isExtBlue?style['ext']:'';
     const orgBorder = isImports&&!text?style['orange-border']:'';
-    return classNames(orgBorder,ext);
+    return classNames(orgBorder,ext,setFontColorSize(isExtBlue?2:1));
   }
   render(){
     const {showAdd,addLabelItem,ikey,copyId,textPrefix,textSuffix,isExtBlue} = this.props;
     return (<div className={this.getContClass()}
                  style={{display:'inline-block'}}>
-      {textPrefix?<span>{textPrefix}</span>:''}
-      <div className={this.getClass()}>
-      {this.getLabels()}
-      {textSuffix?<span>{textSuffix}</span>:''}
-      {showAdd?<img src={isExtBlue?addIcon1:addIcon} alt="复制该项"
-                    className={style['add-icon']}
-                    onClick={()=>addLabelItem({ikey,copyId})}/>:''}
-    </div>
+        {textPrefix?<span className={`${setFontColorSize(isExtBlue?2:'')}`}>{textPrefix}ss</span>:''}
+        <div className={this.getClass()}>
+          {this.getLabels()}
+          {textSuffix?<span className={`${setFontColorSize(isExtBlue?2:'')}`}>{textSuffix}</span>:''}
+          {showAdd?<img src={isExtBlue?addIcon1:addIcon} alt="复制该项"
+                        className={style['add-icon']}
+                        onClick={()=>addLabelItem({ikey,copyId})}/>:''}
+        </div>
     </div>)
   }
 }

+ 14 - 3
src/components/Multiple/index.jsx

@@ -2,7 +2,7 @@ import react from "react";
 import style from "./index.less";
 import $ from 'jquery';
 import classNames from 'classnames';
-import {handleEnter,isIE,filterArr,deepClone,filterDataArr} from '@utils/tools.js';
+import {handleEnter,isIE,filterArr,deepClone,filterDataArr,setFontColorSize} from '@utils/tools.js';
 import {Notify} from '@commonComp';
 import SlideItem from "./SlideItem";
 import config from '@config/index.js';
@@ -47,9 +47,20 @@ class Multiple extends react.Component{
       $(this.$div.current).removeClass(style['borderd']);
     }
     if(value){
-      return hideTag?classNames(style['hide-tag'],orgBorder):classNames(style['selected-tag'],orgBorder,editBorder);
+      if(hideTag){
+          return classNames(style['hide-tag'],orgBorder,setFontColorSize(isExtBlue?2:''))
+        }
+      return classNames(style['selected-tag'],orgBorder,editBorder,setFontColorSize());
+    }else{
+      if(hideTag){
+        return isExtBlue?classNames(setFontColorSize(2)):classNames(setFontColorSize(2),'prefixUnsetColor')
+      }
+      return classNames(style['tag'],orgBorder,ext,setFontColorSize(1));
     }
-    return hideTag?'':classNames(style['tag'],orgBorder,ext);
+    // if(value){
+      //   return hideTag?classNames(style['hide-tag'],orgBorder,setFontColorSize(isExtBlue?2:'')):classNames(style['selected-tag'],orgBorder,editBorder,setFontColorSize());
+      // }
+      // return hideTag?classNames(setFontColorSize()):classNames(style['tag'],orgBorder,ext,setFontColorSize());
   }
 
   getListClass(){

+ 4 - 4
src/components/Multiple/index.less

@@ -7,21 +7,21 @@
   cursor: pointer;
   line-height: 20px;
   &.ext{
-    color: @extBlue!important;
+    // color: @extBlue!important;
   }
 }
 
 .selected-tag{
   padding: 0;
-  color: @text-color;
+  // color: @text-color;
   border-bottom: 1px @border-color solid;
   line-height: 22px;
 }
 .hide-tag{
   padding: 0;
-  color: @text-color;
+  // color: @text-color;
   line-height: 22px;
   &.ext{
-    color: @extBlue;
+    // color: @extBlue;
   }
 }

+ 11 - 9
src/components/NumberDrop/index.jsx

@@ -2,6 +2,7 @@ import React,{Component} from 'react';
 import className from 'classnames';
 import {NumberPan,Notify} from '@commonComp';
 import style from './index.less';
+import {setFontColorSize} from '@utils/tools'
 /***
  * author:zn@2018-11-19
  * 接收参数:
@@ -196,18 +197,19 @@ class NumberDrop extends Component{
     const {handleHide} = this.props;
     handleHide&&handleHide();
   }
-  getClasses(){         //整个标签是否有值的状态
+  getClasses(nospecial){         //整个标签是否有值的状态
     const {hideTag,placeholder,isImports,isExtBlue} = this.props;
     const val = this.state.value;
     const isSelected = val&&val!=placeholder?style['selected']:style['container'];
     const orgBorder = isImports&&!(val&&val!=placeholder)?style['orange-border']:'';
     const ext = isExtBlue?style['ext']:'';
     const noTag = hideTag?style['no-tag']:'';
-    return className(isSelected,noTag,orgBorder,ext);
+    
+    return className(isSelected,noTag,orgBorder,ext,setFontColorSize(isExtBlue?2:1));
   }
-  getSpanClass(){       //将被替换的文字选中状态显示
+  getSpanClass(nospecial){       //将被替换的文字选中状态显示
     const cls = this.props.show?style['blued']:style['nol'];
-    return cls;
+    return cls+' '+setFontColorSize(nospecial?'':2);
   }
   stopBubble(e){
     e.stopPropagation();
@@ -243,13 +245,13 @@ class NumberDrop extends Component{
     });
   }
   render(){
-    const {prefix,suffix,show,value,handleHide,allClick,bmi,formulaCode} = this.props;
+    const {prefix,suffix,show,value,handleHide,allClick,bmi,formulaCode,nospecial} = this.props;
     const val = formulaCode==="BMI_RES"?(+bmi===Infinity||isNaN(bmi)?'':bmi):value;
     const {placeholder,hasSelect} = this.state;
-    return <div className={this.getClasses()}
+    return <div className={this.getClasses(nospecial)}
                 style={{position:'relative'}}
                 onClick={allClick?this.handleNumClick:null}>
-      <span>{prefix}</span>
+      <span className={`${setFontColorSize(nospecial?'':2)}`}>{prefix}</span>
       <span onFocus={this.handleNumFocus}
             onClick={allClick?null:this.handleNumClick}
             contentEditable={true}
@@ -258,9 +260,9 @@ class NumberDrop extends Component{
             onkeyup={this.handleKeyDowm}
             onBlur={this.numInpBlur}
             onInput={this.handleSpanInp}
-            className={this.getSpanClass()}
+            className={this.getSpanClass(nospecial)}
             >&nbsp;{val||placeholder}</span>
-      <span>{suffix}</span>
+      <span className={`${setFontColorSize(nospecial?'':2)}`}>{suffix}</span>
       <NumberPan handleSelect={this.select.bind(this)}
                  noString={formulaCode?true:false}
                  onClose={handleHide}

+ 15 - 6
src/components/NumberUnitDrop/index.jsx

@@ -3,7 +3,7 @@ import className from 'classnames';
 import {NumberUnitPan} from '@commonComp';
 import style from './index.less';
 import config from '@config/index.js';
-import {filterArr,handleEnter,isIE,filterDataArr} from '@utils/tools.js';
+import {filterArr,handleEnter,isIE,filterDataArr,setFontColorSize} from '@utils/tools.js';
 import {Notify} from '@commonComp';
 import $ from 'jquery';
 /***
@@ -69,7 +69,7 @@ class NumberUnitDrop extends Component{
   }
 
   getClasses(){         //整个标签是否有值的状态
-    const {value,hideTag,show,isImports} = this.props;
+    const {value,hideTag,show,isImports,isExtBlue} = this.props;
     const inpValue = this.state.value;
     const blueBorder = this.state.editable?style['blue-border']:'';
     const isSelected = value||inpValue?style['selected']:style['container'];
@@ -80,20 +80,29 @@ class NumberUnitDrop extends Component{
     }else{
       $(this.$cont.current).removeClass(style['borderd']);
     }
-    return className(isSelected,noTag,blueBorder,orgBorder);
+    if(value){
+      return className(isSelected,noTag,blueBorder,orgBorder,setFontColorSize(isExtBlue?2:''));
+    }else{
+      if(isExtBlue){
+        return classNames(isSelected,noTag,blueBorder,orgBorder, setFontColorSize(2),'prefixUnsetColor');
+      }else{
+        return className(isSelected,noTag,blueBorder,orgBorder,setFontColorSize(1));
+      }
+    }
   }
 
   render(){
-    const {placeholder,prefix,suffix,show,value,handleHide,hideTag} = this.props;
+    const {placeholder,prefix,suffix,show,value,handleHide,hideTag,isExtBlue} = this.props;
     const {editable,hasSelect} = this.state;
     return <div className={this.getClasses()}
                 ref={this.$cont}
                 onClick={this.handleNumClick}>
-      <span ref = {this.$pre}>{prefix?prefix+' ':prefix}</span>
+      <span ref = {this.$pre} className="prefixUnset">{prefix?prefix+' ':prefix}</span>
       <span ref = {this.$span}
             onKeyDown={handleEnter}
+            className="prefixUnset"
             style={{cursor:editable?'text':'pointer',wordBreak:'break-all'}}>{value||placeholder}</span>
-      <span ref = {this.$suf}>{suffix?' '+suffix:suffix}</span>
+      <span ref = {this.$suf} className="prefixUnset">{suffix?' '+suffix:suffix}</span>
       <NumberUnitPan handleSelect={(obj)=>this.select(obj)}
                  onClose={handleHide}
                  show={show} toClear={!hasSelect} value={value}/>

+ 1 - 1
src/components/Operation/index.jsx

@@ -148,7 +148,7 @@ class Operation extends Component {
     let baseList = store.getState();
     let jsonData = getAllDataList(baseList);
     let jsonStr = getAllDataStringList(baseList);
-    let whichSign = baseList.typeConfig.typeConfig;
+    let whichSign = baseList.typeConfig.mode;
     let tmpLis = baseList.tabTemplate.items;
     let flg = isAllClear(jsonStr)
     if(!flg){

+ 2 - 1
src/components/Operation/index.less

@@ -167,4 +167,5 @@
     height: 1px;
     margin: 8px auto 0 auto;
     background: #D8D8D8;
-}
+}
+

+ 6 - 0
src/components/PushItems/DetailsModal/index.less

@@ -23,6 +23,12 @@
     overflow: hidden;
     z-index: 10;
     word-break: break-all;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
 }
 
 .details-content-name {

+ 6 - 1
src/components/PushItems/TipsMsg/index.less

@@ -2,7 +2,12 @@
 @import "~@less/base.less";
 
 .tips{
-  
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
    ul, ol {
      padding: 0 0 0 15px;
    }

+ 16 - 8
src/components/RadioDrop/index.jsx

@@ -1,5 +1,5 @@
 import React,{Component} from 'react';
-import {handleEnter,windowEventHandler} from '@utils/tools.js';
+import {handleEnter,windowEventHandler,setFontColorSize} from '@utils/tools.js';
 import {DropList} from '@commonComp';
 import classNames from 'classnames';
 import style from "./index.less";
@@ -43,13 +43,20 @@ class RadioDrop extends Component{
     }else{
       $(this.$cont.current).removeClass(style['borderd']);
     }
-    if(hideTag){
-      return classNames(style['no-tag'],ext);
-    }
+    // if(hideTag){
+    //   return classNames(style['no-tag'],ext,setFontColorSize(isExtBlue?2:''));
+    // }
     if(value){
-      return classNames(style['selected-tag'],editBorder);
+      if(hideTag){
+        return classNames(style['no-tag'],ext,setFontColorSize(isExtBlue?2:''));
+      }
+      return classNames(style['selected-tag'],editBorder,setFontColorSize());
+    }else{
+      if(hideTag){
+        return isExtBlue?classNames(setFontColorSize(2)):classNames(setFontColorSize(2),'prefixUnsetColor')
+      }
+      return classNames(style['tag'],orgBorder,ext,setFontColorSize(1));
     }
-    return classNames(style['tag'],orgBorder,ext);
   }
   handleSelect(item){
     const {handleSelect,ikey,mainSaveText,value} = this.props;
@@ -94,9 +101,10 @@ class RadioDrop extends Component{
     });
   }
   componentDidMount(){    //默认值选中
-    const {data,ikey,handleSelect,hideTag,mainSaveText,value,boxMark} = this.props;
+    const {data,ikey,handleSelect,hideTag,mainSaveText,value,boxMark,readDefault,confDefault} = this.props;
+    const showDefault = readDefault===-1||readDefault===undefined?confDefault:readDefault;
     const selected = data.find((it)=>{
-      return it.selected === undefined&&+it.defaultSelect===1;
+      return it.selected === undefined&&+showDefault===1&&+it.defaultSelect===1;
     });
     if(boxMark!=1&&!hideTag&&selected){
       // const text = selected.labelPrefix+selected.name+selected.labelSuffix;

+ 6 - 6
src/components/RadioInpDrop/index.jsx

@@ -1,5 +1,5 @@
 import React,{Component} from 'react';
-import {handleEnter,windowEventHandler,filterDataArr,getLabelIndex} from '@utils/tools.js';
+import {handleEnter,windowEventHandler,filterDataArr,getLabelIndex,setFontColorSize} from '@utils/tools.js';
 import {DropList,Notify} from '@commonComp';
 import config from '@config/index';
 import style from "./index.less";
@@ -42,9 +42,9 @@ class RadioInpDrop extends Component{
       return classNames(style['no-tag'],ext);
     }
     if(value){
-      return style['selected-tag'];
+      return classNames(style['selected-tag'],setFontColorSize());
     }
-    return classNames(style['tag'],orgBorder,ext);
+    return classNames(style['tag'],orgBorder,ext,setFontColorSize(1));
   }
   handleSelect(item){
     const {handleSelect,ikey,value,placeholder,mainSaveText} = this.props;
@@ -108,7 +108,7 @@ class RadioInpDrop extends Component{
                              value={temp.value}
                              ></InputComp>);
       }else{
-        list.push(<span>&nbsp;{temp}</span>);
+        list.push(<span className="inheritStyle">&nbsp;{temp}</span>);
       }
     }
     return list;
@@ -119,7 +119,7 @@ class RadioInpDrop extends Component{
       <div className={this.getClass()}
            onClick={(e)=>this.handleShow(e)}
            onKeyDown={handleEnter}>
-        {vals?this.parseInputDom():<span>{placeholder}</span>}
+        {vals?this.parseInputDom():<span className='inheritStyle'>{placeholder}</span>}
       </div>
       <DropList onSelect={this.handleSelect} data={data} show={show}/>
     </div>
@@ -193,7 +193,7 @@ class InputComp extends Component{
     const {value} = this.props;
     return <span contentEditable={true}
                  ref={this.$inp}
-                 className={style['inner-inp']}
+                 className={`${style['inner-inp']}`}
                  onClick={(e)=>{e.stopPropagation()}}
                  onFocus={(e)=>{e.stopPropagation()}}
                  onInput={this.handleInp}

+ 27 - 12
src/components/SpreadDrop/index.jsx

@@ -2,7 +2,7 @@ import React,{Component} from 'react';
 import classNames from 'classnames';
 import config from '@config/index.js';
 import style from './index.less';
-import {setPosition,deepClone,handleEnter,isIE,windowEventHandler,filterDataArr,getIds,getPageCoordinate} from '@utils/tools.js';
+import {setPosition,deepClone,handleEnter,isIE,windowEventHandler,filterDataArr,getIds,getPageCoordinate,setFontColorSize} from '@utils/tools.js';
 import {Notify} from '@commonComp';
 import ListItems from '@components/ListItems';
 import $ from 'jquery';
@@ -32,16 +32,17 @@ class SpreadDrop extends Component{
   constructor(props){
     super(props);
     const {nones,noneOn,noneIds,withOn,exists,nowOn,withs,exclusion,excluName} = deepClone(props.selecteds||[]);
+    const initEx = this.getInitExclu();
     this.state = {
       nones:nones||'',       //无,字符串拼接
       exists:exists||[],      //主症状id
-      excluName:excluName||'',
+      excluName:excluName||initEx.excName,
       withs:withs||[],       //伴随 id
       noneIds:noneIds||[],
       noneOn:noneOn||false,       //无是否选中
       withOn:withOn||false,       //伴是否选中
       nowOn:nowOn||'',           //最近选中“无”还是“伴”
-      exclusion:exclusion||'',      //选中互斥项id
+      exclusion:exclusion||initEx.excluId,      //选中互斥项id
       timer:null,  //延时,区分单击双击
       ban:{},  //放'伴'字段
       editable:false,      //双击编辑
@@ -166,21 +167,33 @@ class SpreadDrop extends Component{
     this.setState({
       editable:false
     });
-
-
+  }
+  getInitExclu(){
+    const {defaulted,data,value} = this.props;
+    let excluId = '',excName='';
+    if(defaulted&&value===undefined){
+      const it = data[0];
+      excluId = it.exclusionType===1?it.questionDetailList[0].id:'';
+      excName = it.exclusionType===1?it.questionDetailList[0].name:'';
+    }
+    return {
+      excluId,
+      excName
+    }
   }
   setStateInit(){
     const {nones,noneOn,noneIds,withOn,exists,nowOn,withs,exclusion,excluName,ban} = deepClone(this.props.selecteds||[]);
+    const initEx = this.getInitExclu();
     this.setState({
       nones:nones||'',
       exists:exists||[],
-      excluName:excluName||'',
+      excluName:excluName||initEx.excName,
       withs:withs||[],
       noneIds:noneIds||[],
       noneOn:noneOn||false,
       withOn:withOn||false,
       nowOn:nowOn||'',
-      exclusion:exclusion||'',
+      exclusion:exclusion||initEx.excluId,
       ban:ban||{},
     });
   }
@@ -344,9 +357,11 @@ class SpreadDrop extends Component{
       $(this.$div.current).removeClass(style['borderd']);
     }
     if(value){
-      return classNames(style['selected-tag'],blueBorder);
+      return classNames(style['selected-tag'],blueBorder,setFontColorSize());
+    }else{
+
     }
-    return classNames(style['tag'],orgBorder,ext);
+    return classNames(style['tag'],orgBorder,ext,setFontColorSize(1));
   }
 
   componentDidMount(){
@@ -363,8 +378,8 @@ class SpreadDrop extends Component{
     }
   }*/
   render(){
-    const {placeholder,value,show,data,order,type,tagType,ikey,pos} = this.props;
-    const {tmpDom,left} = this.state
+    const {placeholder,value,show,data,order,type,tagType,ikey,pos,defaulted} = this.props;
+    const {tmpDom,left} = this.state;
     const clickIndx = ikey.split('-')[1];//展开下拉的index
     if(!show&&tmpDom){
       $(tmpDom).parent().prev().attr({"contentEditable":true})
@@ -384,7 +399,7 @@ class SpreadDrop extends Component{
         onInput={this.onChange}
         onkeydown={handleEnter}
         >{value||placeholder}</div>
-          <ListItems parDiv={this.$list} pos={pos} data={data} order={order} left={left} boxMark={type} tagType={tagType}
+          <ListItems parDiv={this.$list} defaulted={defaulted} pos={pos} data={data} order={order} left={left} boxMark={type} tagType={tagType}
              show={show} handleSelect={this.handleSelect} handleConfirm={this.handleConfirm} handleClear={this.handleClear} {...this.state}></ListItems>
       </div>
   }

+ 6 - 0
src/components/Treat/GeneralTreat/index.less

@@ -28,6 +28,12 @@
     line-height: 36px;
 }
 .general-item-show {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
     display: block;
     line-height: 36px;
 }

+ 5 - 1
src/config/index.js

@@ -1,6 +1,10 @@
 export default {
     defaultValue:{      //默认配置
-      mode: 0     //0为半结构化模式,1为纯文本模式(主诉现病史其他史只自由文本输入)
+      0:0,     //0为半结构化模式,1为纯文本模式(主诉现病史其他史只自由文本输入)
+      1:0,    //一般情况默认值,1开启,2关闭
+      2:0,    //其他史默认值,1开启,2关闭
+      3:0,    //字体大小:1增大,0标准
+      4:0,    //字体颜色:1增黑,0标准
     },
     moduleCP:{//使用type
       '1':'mainSuit',          //主诉

+ 1 - 1
src/containers/AdviceContainer.js

@@ -11,7 +11,7 @@ function mapStateToProps(state) {
         isFirstMainDiag:  state.treat.isFirstMainDiag,
         followUp: state.pushMessage.advice.followUp,
         hasFollowUp: state.pushMessage.advice.hasFollowUp,
-        typeConfig: state.typeConfig.typeConfig
+        typeConfig: state.typeConfig.mode
     })
 }
 

+ 1 - 1
src/containers/CurrentIll.js

@@ -26,7 +26,7 @@ function mapStateToProps(state) {
         mainData:mainSuit.data,//主诉使用的模板
         symptomFeature:mainSuit.symptomFeature,//主诉分词数据
         moduleNum:mainSuit.moduleNum,//主诉使用的模板
-        type: typeConfig.typeConfig,
+        type: typeConfig.mode,
         mainIds:mainSuit.mainIds,//主诉症状选中的id(去重用)
         mainTailIds:mainSuit.mainTailIds,//主诉症状选中的id(去重用)
         totalHide: homePage.totalHide,

+ 1 - 1
src/containers/DiagnosticItem.js

@@ -12,7 +12,7 @@ import {billing, getConceptDetail} from '../store/async-actions/pushMessage';
 function mapStateToProps(state) {
     return {
         diagnosticList: state.diagnosticList.diagnosticList,
-        mode:state.typeConfig.typeConfig
+        mode:state.typeConfig.mode
     }
 }
 

+ 1 - 1
src/containers/DiagnosticList.js

@@ -23,7 +23,7 @@ function mapStateToProps(state) {
         showHistoryCase: diagnosticList.showHistoryCase,
         items:state.historyTemplates.items,
         chronicMagItem: diagnC?diagnC:state.mainSuit.chronicDesease,
-        typeConfig: state.typeConfig.typeConfig,
+        typeConfig: state.typeConfig.mode,
       //wholeResults:assessResult.wholeResults,
         scaleInfo: pushMessage.scaleInfo,//量表内容
         showHide: pushMessage.showHide,

+ 1 - 1
src/containers/MainSuit.js

@@ -23,7 +23,7 @@ function mapStateToProps(state) {
     datas:mainSuit.data,//数据源
     saveText:mainSuit.saveText,
 	  searchData:mainSuit.searchDatas,//搜索结果
-    type: typeConfig.typeConfig,
+    type: typeConfig.mode,
     showArr:homePage.showDrop,
     totalHide:homePage.totalHide,
     focusIndex:mainSuit.focusIndex,

+ 17 - 4
src/containers/MedicalInfoContainer.js

@@ -3,18 +3,21 @@ import { connect } from 'react-redux';
 import { getSearchList } from '@store/async-actions/medicalInfo';
 import MedicalInfo from '@components/MedicalInfo';
 import {getAllConceptDetail} from '../store/async-actions/pushMessage';
-import {CLEAR_INFO_SEARCH_LIST} from '@types/medicalInfo';
+import {getMedicalFilters} from '../store/async-actions/fetchModules';
+import {CLEAR_INFO_SEARCH_LIST,SET_FILTER_LIST} from '@types/medicalInfo';
 
 function mapStateToProps(state) {
+    const {medicalInfo} = state;
     return{
-        searchResult: state.medicalInfo.searchResult,
+        searchResult: medicalInfo.searchResult,
+        filterList:medicalInfo.filterList
     }
 }
 
 function mapDispatchToProps(dispatch) {
     return {
-        handleChangeValue(val){
-            dispatch(getSearchList(val))
+        handleChangeValue(val,types){
+            dispatch(getSearchList(val,types))
         },
         getAllConceptDetail(item) {
             dispatch(getAllConceptDetail(item))
@@ -23,6 +26,16 @@ function mapDispatchToProps(dispatch) {
               dispatch({
                 type:CLEAR_INFO_SEARCH_LIST
               })
+        },
+        getFilters(){
+              getMedicalFilters().then((res)=>{
+                  if(res.data.code=='0'){
+                      dispatch({
+                        type:SET_FILTER_LIST,
+                        list:res.data.data[7]
+                      })
+                  }
+              });
         }
     }
 }

+ 1 - 1
src/containers/OtherHistory.js

@@ -18,7 +18,7 @@ function mapStateToProps(state){
     showArr:homePage.showDrop,
     totalHide:homePage.totalHide,
     saveText:otherHistory.saveText,
-    type: typeConfig.typeConfig,
+    type: typeConfig.mode,
     hasMain,//主诉是否有数据
     searchData:otherHistory.searchData,    //延迟搜索结果
     focusTextIndex:otherHistory.focusIndex,    //聚焦的自由文本标签index

+ 3 - 0
src/containers/RadioDrop.js

@@ -12,8 +12,11 @@ import {billing} from '@store/async-actions/pushMessage';
 import config from '@config/index.js';
 
 function mapStateToProps(state){
+  const {typeConfig} = state;
   return {
     mainSaveText:state.mainSuit.saveText,
+    readDefault:typeConfig.readConfig[1],
+    confDefault:typeConfig.typeConfig[1]
   }
 }
 

+ 10 - 3
src/containers/SpreadDrop.js

@@ -15,10 +15,17 @@ import {filterArr,didPushParamChange,filterDataArr,getLabelIndex,fullfillText,ch
 import config from '@config/index.js';
 
 function mapStateToProps(state) {//console.log(state);
+  const {mainSuit,homePage} = state;
+  const {readConfig,typeConfig}=state.typeConfig;
+  const hasReadMode = readConfig!==-1;
+  const curOtherMode =hasReadMode&&readConfig[2]!==null?readConfig[2]:typeConfig[2];
+  const curMode =hasReadMode&&readConfig[1]!==null?readConfig[1]:typeConfig[1];
   return {
-    mainSaveText:state.mainSuit.saveText,
-    mainData:state.mainSuit.data,
-    windowWidth:state.homePage.windowWidth
+    mainSaveText:mainSuit.saveText,
+    mainData:mainSuit.data,
+    windowWidth:homePage.windowWidth,
+    otherDefault:+curOtherMode===1,
+    curDefault:+curMode===1,
   }
 }
 

+ 1 - 2
src/containers/TypeConfigContainer.js

@@ -4,7 +4,6 @@ import Banner from "../components/Banner";
 import { SHOW_CONFIG_MODAL, CLOSE_CONFIG_MODAL, CONFIRM_TYPE } from "../store/types/typeConfig";
 import {pushAllDataList} from '@utils/tools';
 import {saveMode,getOtherHisRecord} from '@store/async-actions/fetchModules';
-import config from "@config/index";
 import { allCheckedShow } from '@store/actions/tabTemplate';
 import {Notify} from '@commonComp';
 
@@ -22,7 +21,7 @@ function mapStateToProps(state) {
   const other = state.otherHistory;
   const typeConfig = state.typeConfig;
   return {
-    typeConfig:typeConfig.typeConfig||config.defaultValue.mode,
+    typeConfig:typeConfig.typeConfig,
     visible:typeConfig.visible,
     hasMain:ifHasData(main.data,main.saveText),
     hasCurrent:ifHasData(current.data,current.saveText),

+ 8 - 0
src/containers/eleType.js

@@ -142,9 +142,17 @@ function multCheckLabels(params,tagType){
   const {i,boxMark,showArr,importLabel,setHighter} = params;
   let isHigh=importLabel&&importLabel.includes(data.id);
   const showInx = boxMark+"-"+i+'-0';
+  const defaulted =data.selFlag===1;
+  let showVal = '';
+  if(defaulted){
+    const item0 = data.questionMapping[0];
+    showVal = item0.exclusionType===1?item0.questionDetailList[0].name:'';
+  }
   return <SpreadDrop data={data.questionMapping}
                      pos={data.pos}
                      ikey={showInx}
+                     defaulted={defaulted}
+                     showVal={showVal}
                      setHighter={setHighter}
                      placeholder={data.name}
                      value={data.value}

+ 2 - 1
src/store/actions/otherHistory.js

@@ -23,9 +23,10 @@ export const confirm = (state,action) =>{
     return res;
   }
   //只有无的项目选中
-  if(+copyType===0) {      //原标签保留
+  if(+copyType===0) {      //原标签保留
     arr.splice(ikey,1);
   }
+  arr[ikey].selFlag=0;      //已展开的既往史类标签,默认选中状态去掉
   if(arr[ikey].value)  arr[ikey].value= '';
   let preText = arr[ikey-1].value!==undefined?arr[ikey-1].value:arr[ikey-1].name||'';
   let newPreText =preText +nones;//console.log(arr[ikey-1],newPreText)

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

@@ -12,12 +12,22 @@ export const closeConfigModal=(state,action)=>{
 
 export const confirmType=(state,action)=>{
   const res=Object.assign({},state);
-  res.typeConfig = action.confirmType;
+  const configs = action.confirmType;
+  res.mode = configs[0];
+  for(let i in configs){
+    if(configs[i]!==null&&configs[i]!==undefined){
+      res.typeConfig[i] = configs[i];
+    }
+  }
+  //res.typeConfig = Object.assign({},res.typeConfig,action.confirmType);
   return res;
 };
 
 export const setReadMode=(state,action)=>{
   const res=Object.assign({},state);
-  res.readMode = action.readMode;
+  res.readMode = action.readMode||(action.readConfig&&action.readConfig[0]);
+  if(action.readConfig){
+    res.readConfig = action.readConfig;
+  }
   return res;
 };

+ 19 - 3
src/store/async-actions/fetchModules.js

@@ -29,6 +29,7 @@ const api={
   getAllHisURL:'/inquiryInfo/hisInquirysForJz',   //全科历史病历
   downloadURL:'/inquiryInfo/exportInquirys',   //全科历史病历--导出
   addSecondDia:'/inquiryInfo/addDiagnoseSecond',   //全科历史病历--添加二次诊断
+  getMedicalTypes:'/dictionaryInfo/getList',       //获取医学知识搜索分类
 };
 
 export const getFeature = (item)=>{
@@ -36,6 +37,11 @@ export const getFeature = (item)=>{
   return datas;
 }
 
+//获取医学知识搜索分类
+export const getMedicalFilters = ()=>{
+  return json(api.getMedicalTypes,{});
+};
+
 //获取模板,多个
 export const getModules = (ids)=>{
   const {patInfo} = store.getState();
@@ -192,7 +198,7 @@ export function setOtherHisModule(){
     const otherModel = initData.otherHisModel;
     const block = Object.assign(JSON.parse(config.textLabel),{full:true});
     const readMode = state.typeConfig.readMode;     //数据实际模式
-    const mode = readMode!==-1&&readMode!==null?readMode:state.typeConfig.typeConfig;
+    const mode = readMode!==-1&&readMode!==null?readMode:state.typeConfig.mode;
     const model = otherModel&&otherModel.length>0?deepClone(otherModel):[block];     //其他史模板,没有模板数据则显示一个空文本标签
     const arr = deepClone(initData.otherHis);        //最近其他史数据
     const arrSave = deepClone(initData.otherHisSave);    //最近其他史saveText
@@ -223,14 +229,24 @@ export function setOtherHisModule(){
   }
 }
 
+//转换设置传参
+function parseConfigParam(configs){
+  let arr = [];
+  for(let key in configs){
+    arr.push({
+      modeClassify:key.replace("config",''),
+      modeValue:configs[key]
+    })
+  }
+  return arr;
+}
 //保存切换模式
 export function saveMode(mode){
   return (dispatch,getStore)=>{
     const {patInfo} = getStore();
     const param = {
       doctorId:patInfo.message.doctorId,
-      modeClassify:0,
-      modeValue:mode
+      doctorPageMode: parseConfigParam(mode)
     };
     return json(api.saveMode,param);
   }

+ 3 - 2
src/store/async-actions/medicalInfo.js

@@ -2,7 +2,7 @@ import { json } from "@utils/ajax";
 import { GET_SEARCH_RESULT } from '@store/types/medicalInfo';
 
 
-export const getSearchList = (val) => {
+export const getSearchList = (val,types) => {
     if(val.trim() == ''){
         const data = [];
         return (dispatch) =>  dispatch({
@@ -14,7 +14,8 @@ export const getSearchList = (val) => {
     return (dispatch, getState) => {
         json('/retrieval/getStaticKnowledge',{
             inputStr:val,
-            inputIds:[]
+            inputIds:[],
+            types
         })
         .then((res)=>{
             const data = res.data.data;

+ 35 - 39
src/store/async-actions/patInfo.js

@@ -14,7 +14,8 @@ const api = {
     getPatInfo: '/patientInfo/getTopPatientInfo',
     getPatBaseInfo: '/patientInfo/getPatientInfo',
     getHospitalInfo:'/hospitalInfo/getHospitalInfo',
-    getPreMsg:'/api/prec/inquiryInfo/getInquiryDetail'
+    getPreMsg:'/api/prec/inquiryInfo/getInquiryDetail',
+    getDoctorConfig:'/doctorPageMode/getDoctorPageModes',       //获取医生设置
 };
 
 //获取预问诊信息
@@ -111,7 +112,39 @@ export const initHistoryDetails = (dispatch) => {
             }
         })
     }
+};
+//转换设置存值
+function parseDoctorCon(arr){
+  let obj = {};
+  let it;
+  if(!arr){
+    return null;
+  }
+  for(let i=0;i<arr.length;i++){
+    it = arr[i];
+    obj[it.modeClassify] = it.modeValue;
+  }
+  return obj;
 }
+
+//获取医生设置信息
+function getDoctorConfig(id,dispatch){
+  json(api.getDoctorConfig,{doctorId:id}).then((res)=>{
+    if(res.data.code==='0'){
+      const configs = parseDoctorCon(res.data.data);
+      if(!configs){
+        return ;
+      }
+      dispatch({
+        type:CONFIRM_TYPE,
+        confirmType:configs
+      })
+    }else{
+      Notify.info(res.data.msg);
+    }
+  });
+}
+
 //技术部需求,先获取第一个接口再去第二个
 export async function getPatientMessage(dispatch, getState){
   const state = getState();
@@ -132,6 +165,7 @@ export async function getPatientMessage(dispatch, getState){
   let data1 = {},data2 = {};
   if(res1.data.code=='0'){
     data1 = res1.data.data;
+    getDoctorConfig(data1.doctorId,dispatch);
   }
   if(res2.data.code=='0'){
     data2 = res2.data.data;
@@ -140,11 +174,6 @@ export async function getPatientMessage(dispatch, getState){
     type: GET_PATIENT_MESSAGE,
     data:Object.assign(data1,data2)
   });
-  //设置初始模式
-  dispatch({
-    type: CONFIRM_TYPE,
-    confirmType:data1.modeValue||config.defaultValue.mode
-  });
   localStorage.removeItem('deletedTags');
   dispatch(getInitModules);     //确保病人信息获取以后再获取模板等数据,否则参数为空
   dispatch(getCommonList(5));     //获取常用化验标签列表
@@ -153,36 +182,3 @@ export async function getPatientMessage(dispatch, getState){
   // initHospitalInfo(dispatch, getState) //不需要的
 }
 
-/*
-export const getPatientMessage = (dispatch, getState) => {
-  const state = getState();
-  const urlDatas = state.getInfoByUuid;
-  const params = {
-    hospitalCode:urlDatas.hospitalId,
-    hospitalDeptCode: urlDatas.deptNo,
-    doctorCode: urlDatas.doctorNo,
-    patientCode:urlDatas.patientNo,
-    recordId:urlDatas.recordId
-  };
-  // 获取医生,患者基本信息
-  Promise.all([json(api.getPatInfo, params),json(api.getPatBaseInfo, params)])
-    .then((data) => {
-      let data1 = {},data2={};
-      if(data[0].data.code=='0'){
-        data1 = data[0].data.data;
-      }
-      if(data[1].data.code=='0'){
-        data2 = data[1].data.data;
-      }
-      dispatch({
-        type: GET_PATIENT_MESSAGE,
-        data:Object.assign(data1,data2)
-      });
-      //设置初始模式
-      dispatch({
-        type: CONFIRM_TYPE,
-        confirmType:data1.modeValue
-      });
-      dispatch(getInitModules);     //确保病人信息获取以后再获取模板等数据,否则参数为空
-    })
-};*/

+ 42 - 7
src/store/async-actions/print.js

@@ -2,6 +2,7 @@ import {
     json
 } from "../../utils/ajax";
 import store from '@store';
+import {MODI_LOADING} from '@store/types/homePage.js';
 import Notify from '@commonComp/Notify';
 import {
     getAllDataList,
@@ -10,13 +11,43 @@ import {
     filterDataArr,
     filterOtherDataArr
 } from '@utils/tools';
-
-export const saveMessage = (bool) => {
+export const getConceptDetails = (bool) => {
+    let baseList = store.getState();
+    let disLis = baseList.diagnosticList.diagnosticList||[];
+    let tmpLis  = [];
+    for(let i = 0;i < disLis.length;i++){
+        let obj = {}
+        obj.name = disLis[i].name
+        obj.type = 7
+        obj.position = 3
+        tmpLis.push(obj)
+    }
+    json('/conceptDetail/getConceptDetails', {
+        "conceptIntorduces": tmpLis
+    }).then((res)=>{//conceptIntroduceDTO
+        let data = res.data;
+        if (data.code == 0) {
+            realSaveData(bool,data.data)
+        } else {
+            console.log(res)
+            realSaveData(bool)
+        }
+    }).catch((err)=>{
+        realSaveData(bool)
+        console.log(err)
+    })
+}
+export const saveMessage=(bool)=>{
+    store.dispatch({type:MODI_LOADING,flag:true});
+    getConceptDetails(bool)
+}
+export const realSaveData = (bool,list) => {
     let baseList = store.getState();
-    const readMode = baseList.typeConfig.readMode;          //回读模式
+    const dConfig = baseList.typeConfig;
+    const readMode = dConfig.readMode;          //回读模式
     let state = baseList.patInfo.message;
     //保存时保存当前的数据实际模式,不是系统模式,针对回读模式与系统模式不一致的情况处理
-    let whichSign = readMode===-1||readMode===null?baseList.typeConfig.typeConfig:readMode;
+    let whichSign = readMode===-1||readMode===null?dConfig.mode:readMode;
     const pushMessage = baseList.pushMessage;
     let jsonStr = getAllDataStringList(baseList);
     let jsonData = getAllDataList(baseList);
@@ -24,6 +55,7 @@ export const saveMessage = (bool) => {
     const lisArr = transferIndexData(lisData);
     const haveAssess = Object.keys(baseList.assessResult.data).length>0;
     let otherData = {},pacsData={};
+    const docConfigs = dConfig.readConfig===-1||!dConfig.readConfig?dConfig.typeConfig:dConfig.readConfig;
     const evaluation={
       htmlContent:haveAssess?JSON.stringify(getEvaluations(baseList.assessResult,pushMessage)):'{}',
       //scaleList:[]
@@ -37,13 +69,14 @@ export const saveMessage = (bool) => {
     otherData['haveAssess']=haveAssess
     otherData['pfix']=jsonStr.other?filterOtherDataArr(JSON.parse(jsonStr.other),jsonData.other):''
     pacsData.pacs = jsonData.pacs
-    pacsData.checkedListImport = jsonData.checkedListImport
+    pacsData.checkedListImport = jsonData.checkedListImport;
     json('/inquiryInfo/saveInquiry', {
         "doctorId": state.doctorId,
+        "conceptIntroduceDTO":list||[],
         "hospitalDeptId": state.hospitalDeptId,
         "hospitalId": state.hospitalId,
         "patientId": state.patientId,         //患者id              
-        "dataJson": JSON.stringify(Object.assign({haveAssess:haveAssess},jsonData)),
+        "dataJson": JSON.stringify(Object.assign({haveAssess:haveAssess,docConfigs:docConfigs},jsonData)),
         "indexData":lisArr,
         "inquiryEvaluation":evaluation,
         "detailList": [{
@@ -102,7 +135,9 @@ export const saveMessage = (bool) => {
         } else {
           Notify.info(data.msg);
         }
+        store.dispatch({type:MODI_LOADING,flag:false});
     }).catch(function(){
+        store.dispatch({type:MODI_LOADING,flag:false});
         Notify.info('保存失败,请稍后再试!');
     });
     if(bool){
@@ -176,6 +211,6 @@ function getEvaluations(base,pushMessage){
 
 export const clearMessages = () => {
     let baseList = store.getState();
-    let whichSign = baseList.typeConfig.typeConfig;
+    let whichSign = baseList.typeConfig.mode;
     pushAllDataList(whichSign,'clear');
 };

+ 6 - 3
src/store/async-actions/tabTemplate.js

@@ -47,8 +47,11 @@ export const saveTemplateDetail = (val,sex) => { //保存为模板
   let baseList = store.getState();
   let jsonData = getAllDataList(baseList);
   let jsonStr = getAllDataStringList(baseList);
-  const readMode = baseList.typeConfig.readMode;          //回读模式
-  let whichSign = readMode===-1||readMode===null?baseList.typeConfig.typeConfig:readMode;
+  const dConfig = baseList.typeConfig;
+  const readMode = dConfig.readMode;          //回读模式
+  let whichSign = readMode===-1||readMode===null?dConfig.mode:readMode;
+  const docConfigs = dConfig.readConfig===-1||!dConfig.readConfig?dConfig.typeConfig:dConfig.readConfig;
+  jsonData.docConfigs=docConfigs;     //保存当时的设置引用
   let state = baseList.patInfo.message;
   let preview = {
     "chief": jsonStr.chief,
@@ -134,7 +137,7 @@ export const delBatchItem = (ids) => { //批量删除
 
 export const changeTitleAsync = (obj) => { //改标题
   let baseList = store.getState();
-  let whichSign = baseList.typeConfig.typeConfig;
+  let whichSign = baseList.typeConfig.mode;
   let state = baseList.patInfo.message;
   if (obj.title.trim() == '') {
     Notify.info('请输入模板名称');

+ 1 - 0
src/store/reducers/homePage.js

@@ -11,6 +11,7 @@ const initState = {
   addItems:{},
   commSymHide:false,
   loadingFlag:true,
+  loadingShow:false,
   boxTop:0,
   boxLeft:0,
   allModules:[],

+ 6 - 2
src/store/reducers/medicalInfo.js

@@ -1,9 +1,10 @@
-import { SET_SEARCH_VALUE, GET_SEARCH_RESULT ,CLEAR_INFO_SEARCH_LIST} from '../types/medicalInfo';
+import { SET_SEARCH_VALUE, GET_SEARCH_RESULT ,CLEAR_INFO_SEARCH_LIST,SET_FILTER_LIST} from '../types/medicalInfo';
 import { setSearchValue, getSearchResult } from '../actions/medicalInfo'; 
 
 const initState = {
     searchValue: '',
-    searchResult: []
+    searchResult: [],
+    filterList:[],      //搜索分类
 }
 
 export default function (state=initState, action) {
@@ -16,6 +17,9 @@ export default function (state=initState, action) {
         case CLEAR_INFO_SEARCH_LIST:
             res.searchResult=[];
             return res;
+      case SET_FILTER_LIST:
+            res.filterList = action.list;
+            return res;
         default: 
             return state;
     }

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

@@ -4,8 +4,10 @@ import config from '@config/index';
 
 const initState = {
   visible: false,
-  typeConfig: config.defaultValue.mode, // 0:智能推送模式, 1:纯文本模式,用于切换选中状态
-  readMode:-1,  //回读回来的模式,-1即没有回读模式
+  typeConfig: config.defaultValue,
+  readConfig:-1,    //回读/引用回来的配置
+  readMode:-1,  //回读/引用回来的模式,-1即没有回读模式
+  mode:config.defaultValue[0],       //设置的模式, 0:智能推送模式, 1:纯文本模式,用于切换选中状态
 };
 export default function(state = initState, action) {
   switch (action.type) {

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

@@ -1,3 +1,4 @@
 export const SET_SEARCH_VALUE = 'SET_SEARCH_VALUE';
 export const GET_SEARCH_RESULT = Symbol('GET_SEARCH_RESULT');
-export const CLEAR_INFO_SEARCH_LIST = 'CLEAR_INFO_SEARCH_LIST';
+export const CLEAR_INFO_SEARCH_LIST = 'CLEAR_INFO_SEARCH_LIST';
+export const SET_FILTER_LIST = 'SET_FILTER_LIST';

+ 80 - 7
src/utils/tools.js

@@ -157,7 +157,7 @@ const pushAllDataList =(whichSign,action,reData,type) =>{           //回读清
       const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
       //清除已删除标签记录
       localStorage.removeItem('deletedTags');
-      store.dispatch({type: SET_READ_MODE, readMode: -1});      //清除回读模式值
+      store.dispatch({type: SET_READ_MODE, readMode: -1,readConfig:-1});      //清除回读模式值
       store.dispatch({type: CLEAR_MAIN_SUIT,data:[],saveText:[],editClear:true,mainIds:[],mainTailIds:[],clearAction:true,symptomFeature:[],chronicDesease:null,mainReadSonM:[]});
         store.dispatch({type: CLEAR_CURRENT_ILL,data:[],saveText:[],editClear:true,symptomIds:[],currReadSonM:[]});
         store.dispatch({type: CLEAROTHERHISTORY,data:[block],isEmpty:true,saveText:[],editClear:true,yjs_1:'',yjs_2:'',yjs_3:'',yjs_4:''});
@@ -231,10 +231,11 @@ const pushAllDataList =(whichSign,action,reData,type) =>{           //回读清
           isText:true,    //查体只显示文本
       });
     }else{
+        let dataJson = JSON.parse(reData.dataJson);
+        const docConfig = dataJson.docConfigs;
         //回读/引用设置回读模式值(主诉-其他史使用)
-        store.dispatch({type: SET_READ_MODE, readMode: whichSign});
+        store.dispatch({type: SET_READ_MODE, readMode: whichSign,readConfig:docConfig});
         if (whichSign == 0) {
-          let dataJson = JSON.parse(reData.dataJson);
           //其他史data
           const oData = dataJson.other;
           const onlyOneText = oData.length==1&&oData[0].tagType==8&&!(oData[0].name||oData[0].value);
@@ -368,7 +369,7 @@ const pushAllDataList =(whichSign,action,reData,type) =>{           //回读清
             }
         } else {
             if(type == 'template'){     //纯文本模板回读
-                let dataJson = JSON.parse(reData.dataJson);
+                //let dataJson = JSON.parse(reData.dataJson);
                 let dataJsonStr = JSON.parse(reData.preview);
                 // console.log(dataJson,dataJsonStr,'纯文本模板引用')
                 store.dispatch({     //主诉文本框
@@ -422,7 +423,7 @@ const pushAllDataList =(whichSign,action,reData,type) =>{           //回读清
               //tab跳回辅助信息
               store.dispatch(tabChange('0'));
             }else{  //纯文本历史病历回读
-                let dataJson = JSON.parse(reData.dataJson);
+                //let dataJson = JSON.parse(reData.dataJson);
                 let dataJsonStr = reData.detailList;
                 // console.log(dataJson,dataJsonStr,'纯文本历史病历回读')
                 if(!dataJson && !dataJsonStr && !reData.sign){
@@ -764,7 +765,7 @@ function getCurrentDate(flg,con){
 }
 function inspectAndAssist(){
   const state = store.getState();
-  let mainType = state.typeConfig.typeConfig
+  let mainType = state.typeConfig.mode
   if(mainType == 1){return}//文本模式不放化验辅检的模板
   let tmpAll = state.homePage.allModules;
   let tmpInspected = state.inspect.labelList;
@@ -1329,6 +1330,77 @@ function setPosition (e,dom,setHighter){
     // $(e.target)[0].scrollIntoView(true);
   },10);
 }
+/**
+ * 获取样式类名
+ * largeFontSize 18px      middleFontSize 16px(暂无)       simpleFontSize 14px
+ * flg  1标准字体时颜色加深,可以让选中的字体加粗
+ *      2体征颜色单独处理不需要设置
+ */
+const setFontColorSize = (flg,pacs) => {
+  const classNameSelect = ['largeFontSize','middleFontSize','simpleFontSize','simpleLightColor','simpleColor','selectColor']
+  const state = store.getState();
+  let readConfig = state.typeConfig.readConfig
+  let mainType = readConfig==-1?state.typeConfig.typeConfig:readConfig;
+  let font = mainType[3],colour = mainType[4],classStr = '';
+  if(font == 1&&colour == 1){//字体加大颜色加深
+    if(flg == 2){
+      if(pacs == 1){
+        classStr = `largeFontSize pdright`
+      }else if(pacs == 2){
+        classStr = `largeFontSize widthChangeed`
+      }else if(pacs == 3){
+        classStr = `largeFontSize middleImg`
+      }else if(pacs == 4){
+        classStr = `largeFontSize titleWidth`
+      }else if(pacs == 5){
+        classStr = `largeFontSize specialSize`
+      }else{
+        classStr = `largeFontSize`
+      }
+    }else if(flg == 1){
+      classStr = `selectColor largeFontSize`
+    }else{
+      classStr = `selectColor largeFontSize`
+    }
+  }else if(font == 0&&colour == 1){//标准字体颜色加黑
+    if(flg == 2){
+      classStr = `simpleFontSize`
+    }else if(flg == 1){
+      classStr = `selectColor simpleFontSize`
+    }else{
+      classStr = `selectColor simpleFontSize`
+    }
+  }else if(font == 1&&colour == 0){//大字体标准颜色
+    if(flg == 2){
+      if(pacs == 1){
+        classStr = `largeFontSize pdright`
+      }else if(pacs == 2){
+        classStr = `largeFontSize widthChangeed`
+      }else if(pacs == 3){
+        classStr = `largeFontSize middleImg`
+      }else if(pacs == 4){
+        classStr = `largeFontSize titleWidth`
+      }else if(pacs == 5){
+        classStr = `largeFontSize specialSize`
+      }else{
+        classStr = `largeFontSize`
+      }
+    }else if(flg == 1){
+      classStr = `simpleLightColor largeFontSize`
+    }else{
+      classStr = `simpleColor largeFontSize`
+    }
+  }else{//都是标准的
+    if(flg == 2){
+      classStr = `simpleFontSize`
+    }else if(flg == 1){
+      classStr = `simpleLightColor simpleFontSize`
+    }else{
+      classStr = `simpleColor simpleFontSize`
+    }
+  }
+  return classStr;
+}
 module.exports = {
     getIds,
     getWindowInnerWidth,
@@ -1378,5 +1450,6 @@ module.exports = {
     shiftLocalDelTag,
     setPosition,
     isAllPartClear,
-    getDomUpDown
+    getDomUpDown,
+    setFontColorSize
 };