瀏覽代碼

Merge branch 'ChronicMag' of http://192.168.2.236:10080/zhouna/newICSS into ChronicMag

zhangxc 6 年之前
父節點
當前提交
71df3b02bb

+ 1 - 1
src/common/components/NumberUnitPan/index.jsx

@@ -108,7 +108,7 @@ class NumberUnitPan extends Component{
           <td><span onClick={this.handleSelect}>0</span></td>
           <td><span onClick={this.handleSelect}>~</span></td>
           <td><span onClick={this.handleSelect}>/</span></td>
-          <td><span onClick={this.handleSelect}>日</span></td>
+          <td onClick={(e)=>e.stopPropagation()}></td>
           <td className={style['imgN']}><img src={backspace} onClick={this.handleBack.bind(this)} /></td>
         </tr>
         <tr>

二進制
src/common/images/1.png


二進制
src/common/images/2.png


二進制
src/common/images/3.png


二進制
src/common/images/4.png


二進制
src/common/images/5.png


二進制
src/common/images/6.png


二進制
src/common/images/7.png


二進制
src/common/images/8.png


+ 1 - 1
src/common/js/func.js

@@ -125,7 +125,7 @@ export const fullfillText = (arr,noPre=false,noEnd=false,ifEmpty=true)=>{
       }
     }else{
       pre = arr[i-1];
-      item = !ifEmpty&&cNum<config.showCheckNum?Object.assign({},it,{showInCheck:true}):it;
+      item = !ifEmpty&&cNum<config.showCheckNum+1?Object.assign({},it,{showInCheck:true}):it;
       //判断单选项是否有默认选中,位置在隐藏区域时,查体所有标签展示
       if(!ifEmpty&&!checkHiddenDefault&&cNum>config.showCheckNum&&+it.tagType===1&&(+it.controlType===0||+it.controlType===1)){
         if(it.questionDetailList.find((it)=>it.defaultSelect=='1')){

+ 1 - 1
src/components/AssessResult/AssessHis/index.jsx

@@ -88,7 +88,7 @@ class AssessResultHis extends Component {
   showScaleFn(item,pid){
     const { list,inquiryId } = this.props;
     const obj = list&&list[inquiryId];
-    if(!(obj.scaleInfo&&obj.scaleInfo[item.id])){
+    if(item&&item.id&&!(obj.scaleInfo&&obj.scaleInfo[item.id])){
       Notify.info("未保存该量表数据");
       return ;
     }

+ 27 - 11
src/components/AssessResult/ChartItem/index.jsx

@@ -81,17 +81,28 @@ class ChartItem extends Component {
     }
     handleChange&&handleChange(Object.assign(temp,{[i]:type}));
   }
-  getContainers(){
+  getContainers(obj){
     const timeTypes = this.props.timeTypes;
-    const range = this.getXAxisArr(config.chartDismen);
-    const obj = this.props.data[range[0]+range[range.length-1]];
     const {endDate} = this.props;
-    let arr = [];
+    let len = 1,idx=0;    //单个图表第一条线的在所有线中的index,用于显示不同的形状,打印使用
+    let arr = [],keys = Object.keys(obj||{});
     for(let i in obj){
-      arr.push(<Chart data={obj[i]} endDate={endDate} type={timeTypes&&timeTypes[i]} index={i} getXAxisArr={this.getXAxisArr} handleRangeChange={this.rangChange}/>)
+      idx = keys.findIndex((t)=>{return t==i});
+      len = idx==0?0:len+obj[keys[idx-1]].length;
+      arr.push(<Chart data={obj[i]} len={len} endDate={endDate} type={timeTypes&&timeTypes[i]} index={i} getXAxisArr={this.getXAxisArr} handleRangeChange={this.rangChange}/>)
     }
     return arr.length>0?arr:<p style={{color:'#acacac'}}>该模块暂无数据</p>;
   }
+  getLegends(obj){
+    let arr = [],temp='',doms=[];
+    for(let i in obj){
+      arr = [...arr,...obj[i]];
+    }
+    arr.map((it,ix)=>{
+      doms.push(<div><img src={require('@common/images/'+(ix+1)+'.png')} /><span>{it}</span></div>);
+    });
+    return doms;
+  }
   componentDidMount(){
     const {initFn,pindex} = this.props;
     const type = config.chartDismen;
@@ -102,11 +113,17 @@ class ChartItem extends Component {
     initFn&&initFn({range,rangeType:type,pindex,getNew:true});
   }
   render() {
-    const {title} = this.props;
+    const {title,data,names} = this.props;
+    const range = this.getXAxisArr(config.chartDismen);
+    const obj = data[range[0]+range[range.length-1]];
+    const nameObj = names[range[0]+range[range.length-1]];
     return <div className={style['assess-item']}>
       <h2>{title}</h2>
+      <div className={style['legend']}>
+        {this.getLegends(nameObj)}
+      </div>
       <div className={style['item-content']}>
-        {this.getContainers()}
+        {this.getContainers(obj)}
       </div>
     </div>;
   }
@@ -127,7 +144,7 @@ class Chart extends Component{
     this.timeSwitch = this.timeSwitch.bind(this);
   }
   drawChart(){
-    const {index,data,getXAxisArr,type,endDate} = this.props;
+    const {index,data,getXAxisArr,type,endDate,len} = this.props;
     const xAxis = getXAxisArr(type);
     const id = endDate?'chart'+endDate+index:'chart'+index;
     let series = [],names=[],inx=-1;
@@ -139,7 +156,6 @@ class Chart extends Component{
       sixMonth:9,
       year:60
     };
-
     data&&data.map((it,j)=>{
       let values=new Array();
       let name='';
@@ -161,10 +177,10 @@ class Chart extends Component{
         type: 'line',
         data: values,
         showAllSymbol:true,
-        symbol:config.chartSymbols[j%7],
+        symbol:config.chartSymbols[(len+j)%8],
         symbolSize:7,
         itemStyle:{
-          color:config.chartColors[j%7]
+          color:config.chartColors[(len+j)%8]
         }
       });
     });

+ 17 - 8
src/components/AssessResult/ScaleItem/index.jsx

@@ -70,8 +70,10 @@ class ScaleItem extends Component {
   }
   handleForRadio(id,idd, ind){
     const {formulaData} = this.state;
-    const obj = JSON.parse(JSON.stringify(formulaData));
+    const {calcuValues} = this.props;
+    const obj = deepClone(formulaData);
     const data = obj&&obj[id];
+    data.content = calcuValues&&calcuValues[id];
     if (data) {
       for(let z = 0; z <  data.content.details[idd].details.length; z++) {
         data.content.details[idd].details[z].state = 0;
@@ -84,7 +86,7 @@ class ScaleItem extends Component {
   }
   showFormula(id,it){
     const {formulaData} = this.state;
-    const obj = JSON.parse(JSON.stringify(formulaData)||{});
+    const obj = deepClone(formulaData)||{};
     if(!obj[id]){
       obj[id] = it;
     }
@@ -105,12 +107,16 @@ class ScaleItem extends Component {
     })
   }
   calcuFormula(j, v, ii) { //计算公式计算
-    const { calcuFormula,chronicPushItems } = this.props;
+    const { calcuFormula,chronicPushItems,calcuValues } = this.props;
     const {formulaId,formulaData} = this.state;
-    const it =formulaData&&formulaData[formulaId];
+    let it=formulaData&&formulaData[formulaId];
+    const rst = calcuValues&&calcuValues[formulaId];
+    if(rst){
+      it.content = rst;
+    }
     let pushObj = deepClone(chronicPushItems);
     pushObj[ii].details[j]=it;
-    let allHasInfo = true
+    let allHasInfo = true;
     for (let i = 0; i < it.content.details.length; i++) {
       if(it.content.details[i].controlType == 2) {  //输入框类型的有没有填值
         if(!it.content.details[i].value) {
@@ -145,8 +151,10 @@ class ScaleItem extends Component {
   }
   handleInputformula(id,idd,text) {
     const {formulaData} = this.state;
+    const {calcuValues} = this.props;
     const obj = deepClone(formulaData);
     const data = obj&&obj[id];
+    data.content = calcuValues&&calcuValues[id];
     if (data) {
       data.content.details[idd].value = text;
     }
@@ -156,7 +164,7 @@ class ScaleItem extends Component {
   }
   getDetailItems(item,i){
     let arr = [],temp='';
-    const {indexs,result,formulaResult,calcuResult,disabled} = this.props;
+    const {indexs,result,formulaResult,calcuResult,calcuValues,disabled} = this.props;
     const {optionId,formulaId,radioVal,formulaData,isFormulaConfirm} = this.state;
     const possible=result&&result.possible;
 
@@ -173,6 +181,7 @@ class ScaleItem extends Component {
         }else if(its.type==2){      //计算公式
           it=formulaData[formulaId]||deepClone(its);
           const showRes = calcuResult&&calcuResult[item.id]||it.content.result;
+          const details = calcuValues&&calcuValues[item.id]&&calcuValues[item.id].details||it.content.details;
           const cresult = showRes&&showRes[1]&&showRes[1].text;
                     temp = <div className={style['results']}>
                     <span>计算公式结果:</span>
@@ -185,8 +194,8 @@ class ScaleItem extends Component {
                                confirm={this.confirmFormula.bind(this,item,i)}
                                footer="true">
                       <table>
-                        {it.content.details.map((item1,idd)=>{
-                          if(item1.controlType==1||item1.controlType==3){//单选
+                        {details.map((item1,idd)=>{
+                          if(item1.controlType==0){//单选
                             return <tr>
                               <td>
                                 <span>{'请选择'+item1.name+':'}</span>

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

@@ -80,7 +80,7 @@ class AssessResult extends Component {
   }
   handoutTypes(item,i){
     const {getIndexData,indexData,timeTypes,wholeIndexs,closeAssess,showScaleFn,calcuFormula,isRecommend,chronicPushItems,
-      formulaResult,calcuResult} =this.props;
+      formulaResult,calcuResult,calcuValues,indexNames} =this.props;
     let obj = [];
     Object.keys(wholeIndexs).map((i)=>{
       obj[i]=chronicPushItems[i];
@@ -102,6 +102,7 @@ class AssessResult extends Component {
                           showScaleFn={showScaleFn}
                           calcuFormula={calcuFormula}
                           calcuResult={calcuResult}
+                          calcuValues={calcuValues}
                           formulaResult={formulaResult}
                           isRecommend={isRecommend}
                           chronicPushItems={chronicPushItems}
@@ -114,6 +115,7 @@ class AssessResult extends Component {
       case 10:   //数据来源于后台
         return <ChartItem title={name}
                           data={chartData||{}}
+                          names={indexNames||{}}
                           timeTypes={JSON.stringify(chartTimeTypes)=='{}'?timeTypes&&timeTypes[i]:chartTimeTypes[i]}
                           pindex={i}
                           initFn={getIndexData}

+ 17 - 1
src/components/AssessResult/index.less

@@ -73,7 +73,7 @@
     min-width: 302px;
     width: 49%;
     height: 250px;
-    margin-bottom: 20px;
+    margin: 15px 0 5px;
     position: relative;
     .chart-box{
       width: 100%;
@@ -168,6 +168,22 @@
   border-radius: 4px;
   padding: 5px;
 }
+.legend{
+  padding: 0 36px;
+  /*margin-bottom: 15px;*/
+  &>div{
+    display: inline-block;
+    margin-top: 10px;
+  }
+  span{
+    margin-right: 20px;
+  }
+  img{
+    vertical-align: middle;
+    width: 18px;
+    margin-right: 3px;
+  }
+}
 @media print {
   .printShow,.textareaStatic {
     display: block;

+ 36 - 45
src/components/ChronicInfo/index.jsx

@@ -14,6 +14,7 @@ import {ComplexModal,ConfirmModal,MiniToast, Radio,CheckBtn} from '@commonComp';
 import AssessResult from '@containers/AssessResult';
 import ScaleTable from '@containers/ScaleTable';
 import Notify from '@commonComp/Notify';
+import {deepClone} from '@utils/tools';
 import $ from 'jquery';
 
 /***
@@ -75,16 +76,6 @@ class ChronicInfo extends React.Component{
       printContainer: true,
       operaSupport: false,
     });
-    // setTimeout(() => {//把生成的图片和iframe删掉
-    //   let imgLis = document.querySelectorAll('.canvasImg')
-    //   let iframe = document.getElementsByTagName('iframe')
-    //   for(let i = 0;i < imgLis.length;i++){
-    //     imgLis[i].remove()
-    //   }
-    //   for(let i = 0;i < iframe.length;i++){
-    //     iframe[i].remove()
-    //   }
-    // }, 500);
   }
   
   showTableList(id){//量表按钮
@@ -111,9 +102,6 @@ class ChronicInfo extends React.Component{
       type:22,
     }
     getInfomation&&getInfomation(param);
-    /*this.setState({
-      infoId:id
-    })*/
   }
   closeInfo(){//关闭静态知识
     this.setState({
@@ -208,27 +196,31 @@ class ChronicInfo extends React.Component{
     });
   }
   handleInputformula(v,i, j,idd,  e) {
-    const { data, setChronicPush } = this.props;
+    const { data, setChronicPush,calcuValues } = this.props;
+    let data1 = JSON.parse(JSON.stringify(data));
+    if(calcuValues&&calcuValues[data1[i].id]){
+      data1[i].details[j].content=calcuValues&&calcuValues[data1[i].id];
+    }
     const text = e.target.value;
-    if (data[i].details) {
-      data[i].details[j].content.details[idd].value = text
-    } 
-    
-    const data1 = JSON.parse(JSON.stringify(data));
-    
-    setChronicPush(data1)
+    if (data1[i].details) {
+      data1[i].details[j].content.details[idd].value = text
+    }
+
+    setChronicPush(data1,data1[i].id,data1[i].details[j].content)
   }
   handleForRadio(ii,v,i, j,idd, ind){//计算公式
-    const { data, setChronicPush } = this.props;
-    if (data[i].details) {
-      for(let z = 0; z <  data[i].details[j].content.details[idd].details.length; z++) {
-        data[i].details[j].content.details[idd].details[z].state = 0
-      }
-      data[i].details[j].content.details[idd].details[ind].state = 1
-    } 
-    
+    const { data, setChronicPush,calcuValues } = this.props;
     const data1 = JSON.parse(JSON.stringify(data));
-    setChronicPush(data1)
+    if(calcuValues&&calcuValues[data1[i].id]){
+      data1[i].details[j].content=calcuValues&&calcuValues[data1[i].id];
+    }
+    if (data1[i].details) {
+      for(let z = 0; z <  data1[i].details[j].content.details[idd].details.length; z++) {
+        data1[i].details[j].content.details[idd].details[z].state = 0
+      }
+      data1[i].details[j].content.details[idd].details[ind].state = 1
+    }
+    setChronicPush(data1,data1[i].id,data1[i].details[j].content);
   }
   confirmFormula(){//计算公式确定
     this.setState({
@@ -258,8 +250,13 @@ class ChronicInfo extends React.Component{
       radioVal:Object.assign({},obj.radioVal),//不设置radioVal只有最近一次选中的值
     })
   }
-  calcuFormula(it,j, v, i) { //计算公式计算
-    const { calcuFormula, data ,chronicPushItems} = this.props;
+  calcuFormula(item,j, v, i) { //计算公式计算
+    const { calcuFormula, data ,chronicPushItems,calcuValues} = this.props;
+    let pushObj = deepClone(chronicPushItems);
+    if(calcuValues&&calcuValues[pushObj[i].id]){
+      pushObj[i].details[j].content=calcuValues&&calcuValues[pushObj[i].id];
+    }
+    let it = pushObj[i].details[j];
     let allHasInfo = true;
     for (let i = 0; i < it.content.details.length; i++) {
       if(it.content.details[i].controlType == 2) {  //输入框类型的有没有填值
@@ -280,21 +277,20 @@ class ChronicInfo extends React.Component{
 
     }
     if(allHasInfo) { //所有都有值,则计算
-      // delete it.content.resultz
       let param = {
         type: 2,
         data: it,
         disId: v.id,
         pIndex: j,
         ppIndex: i
-      }
-      calcuFormula({param,chronicPushItems})
+      };
+      calcuFormula({param,chronicPushItems:pushObj})
     } else {  //不是所有值都填过了
       Notify.info('请填写计算公式内容')
     }
   }
   getDetail(){
-    const {data,indexs,formulaResult,calcuResult} = this.props;
+    const {data,indexs,formulaResult,calcuResult,calcuValues} = this.props;
     const {formulaId,optionId,possible,radioVal,isFormulaConfirm} = this.state;
     let list = data&&data.map((v,i)=>{
                     return <div className={style["list"]}>
@@ -303,12 +299,6 @@ class ChronicInfo extends React.Component{
                                 <img src={infoPic} className={style["infoPic"]} onClick={this.showInfo.bind(this,v.id)}/>
                               </p>:''}
-                      {/*<MiniToast title='静态知识'
-                                icon={allTableIcon}
-                                show={infoId&&infoId==v.id?true:false}
-                                close={this.closeInfo}>
-                          {pureText}
-                      </MiniToast>*/}
                       {v.details&&v.details.map((it,j)=>{
                         if(it.type==1){
                           return <p>
@@ -328,6 +318,7 @@ class ChronicInfo extends React.Component{
                         }else if(it.type==2){
                           const cres = calcuResult&&calcuResult[v.id]||it.content.result;
                           const result = cres&&cres[1]&&cres[1].text;
+                          const details = calcuValues&&calcuValues[v.id]&&calcuValues[v.id].details||it.content.details;
                           return <div className={style["marTop"]}>
                             <span className={style["limit"]}>
                               计算公式结果:
@@ -349,8 +340,8 @@ class ChronicInfo extends React.Component{
                                 confirm={this.confirmFormula.bind(this,v,i)}
                                 footer="true">
                                 <table>
-                                {it.content.details.map((item,idd)=>{
-                                    if(item.controlType==3||item.controlType==1){//单选
+                                {details.map((item,idd)=>{
+                                    if(item.controlType==0){//单选
                                       return <tr>
                                         <td>
                                           <span>{'请选择'+item.name+':'}</span>
@@ -384,7 +375,7 @@ class ChronicInfo extends React.Component{
                                 </table>
                                 <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,it,j, v, i)}>计算</div>
                                 <table>
-                                  {it.content.result && Array.isArray(it.content.result) &&it.content.result.map((itemResult, resultIndex) => {
+                                  {cres && Array.isArray(cres) &&cres.map((itemResult, resultIndex) => {
                                     return <tr>
                                         <td>
                                             <span>{itemResult.name+':'}</span>

+ 14 - 6
src/components/DiagnosticList/index.jsx

@@ -13,6 +13,7 @@ import iconRadioDefault from '@common/images/icon-radio-default.png'
 import iconRadioActive from '@common/images/icon-radio-active.png'
 import tableIcon from '@common/images/table.png';
 import { delFollowUp } from '../../store/actions/treat';
+import { CONFIRM_TYPE } from "@store/types/typeConfig";
 
 class DiagnosticList extends Component {
     constructor(props) {
@@ -21,7 +22,8 @@ class DiagnosticList extends Component {
             visible: false,
             delItem: {},
             treatTitle: '',
-            activeHistory: -1
+            activeHistory: -1,
+            sign:-1
         }
         this.deleteItem = this.deleteItem.bind(this);
         this.cancel = this.cancel.bind(this);
@@ -122,6 +124,7 @@ class DiagnosticList extends Component {
     }
     referCase() {
         const { hideHistoryCaseModal, items ,autoFillModules,typeConfig} = this.props
+        const {sign} = this.state;
         hideHistoryCaseModal && hideHistoryCaseModal()
         if (this.state.activeHistory === -1 && typeConfig==0) {//没有选择历史病例直接点确定
             Notify.info("未选择历史病历,已默认展示慢病相关内容");
@@ -134,18 +137,22 @@ class DiagnosticList extends Component {
         let baseList = store.getState();
         
         let baseObj = items[this.state.activeHistory];
-  
-        // store.dispatch({type: CONFIRM_TYPE, confirmType: baseObj.sign});
+        // 切换模式
+        if(sign != typeConfig){
+          store.dispatch({type: CONFIRM_TYPE, confirmType: baseObj.sign});
+        }
         pushAllDataList(baseObj.sign,'push',baseObj,'history')       //引用
         this.props.getBilling();
         this.setState({
-            activeHistory: -1
+            activeHistory: -1,
+            sign:-1
         })
     }
     closeHistoryCaseModal() {
         const { hideHistoryCaseModal ,autoFillModules,typeConfig} = this.props
         this.setState({
-            activeHistory: -1
+            activeHistory: -1,
+            sign:-1
         })
         hideHistoryCaseModal && hideHistoryCaseModal()
         if(typeConfig==0){//智能推送模式才自动填充
@@ -156,7 +163,8 @@ class DiagnosticList extends Component {
         const { handleQuoteClick } = this.props
         // handleQuoteClick && handleQuoteClick(item)
         this.setState({
-            activeHistory: index
+            activeHistory: index,
+            sign:item.sign
         })
     }
     getHistoryCase() {

+ 4 - 3
src/components/SpreadDrop/index.jsx

@@ -468,9 +468,10 @@ class ListItem extends Component{
     const pos = isSpecialPos?style['independent']:'';
     return <ul className={classNames(style['row'],pos)} onBlur={(e)=>e.stopPropagation()}>
       {datas&&datas.map((it,i)=>{
-        /*return <li onClick={(e)=>this.handleClick(e,it,i)}
-                   className={this.getClass(it.id)}>{it.labelPrefix}{it.name}{it.labelSuffix}</li>*/
-          return <li onClick={(e)=>this.handleClick(e,it,i)} className={this.getClass(it.id)} title={it.name.length>8?it.name:''}>{it.name&&it.name.length>8?it.name.slice(0,8)+'...':it.name}</li>
+        if(isSpecialPos){
+          return <li onClick={(e)=>this.handleClick(e,it,i)} className={this.getClass(it.id)}>{it.name}</li>
+        }
+        return <li onClick={(e)=>this.handleClick(e,it,i)} className={this.getClass(it.id)} title={it.name.length>8?it.name:''}>{it.name&&it.name.length>8?it.name.slice(0,8)+'...':it.name}</li>
       })}
     </ul>;
   }

+ 1 - 1
src/config/index.js

@@ -56,7 +56,7 @@ export default {
     },
     chartDismen:'year',   //评估图表默认维度:近1年year,近6个月sixMonth,近1个月month,近1周week
     chartSymbols:['emptyCircle' , 'rect', 'arrow', 'triangle', 'diamond','circle', 'pin', 'roundRect'],
-    chartColors:['#3B9ED0','#F50933', '#F99903', '#66CB33', '#91c7ae','#749f83',  '#ca8622'],
+    chartColors:['#E84C47','#B947E8', '#47B0E8', '#4774E8', '#6C4EF9','#63DEC2', '#DDD81D','#EF592B'],
     showCheckNum:16,        //查体默认展开非自由文本标签的个数
     radioOptionPer:'()',     //单选项输入占位符
     textReg:new RegExp("([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9])"), //包含中英文或数字

+ 4 - 2
src/containers/AssessResult.js

@@ -23,6 +23,7 @@ function mapStateToProps(state) {
   return {
     data:assessResult.data,
     indexData:assessResult.indexData,
+    indexNames:assessResult.indexNames,
     update:assessResult.update,     //评估数据更新
     update1:assessResult.update1,       //加入记录更新
     timeTypes:assessResult.indexTimeTypes,    //图表切换的维度
@@ -36,6 +37,7 @@ function mapStateToProps(state) {
     chronicPushItems: pushMessage.chronicPushItems, //慢病右侧推送
     formulaResult:pushMessage.formulaResult,       //量表计算结果
     calcuResult:pushMessage.calcuResult,      //评估弹窗可能结果计算结果
+    calcuValues:pushMessage.calcuValues,      //计算公式填的值
   }
 }
 
@@ -93,7 +95,7 @@ function mapDispatchToProps(dispatch) {
 
 function parseChartData(indexData){
   let arr=[],obj={},temp={};
-  let nameArr=[],nameObj={};  //暂弃
+  let nameArr=[],nameObj={};
   if(!indexData){
     return [];
   }
@@ -105,7 +107,7 @@ function parseChartData(indexData){
     nameObj[temp.indexDesc]=[...nameArr,it.itemName];
   });
   //nameObj,obj;
-  return obj;
+  return {nameObj,obj};
 }
 const AssessResultContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResult);
 

+ 11 - 13
src/containers/ChronicInfo.js

@@ -8,6 +8,7 @@ import {saveClickNum} from '@store/async-actions/homePage';
 import { getFormulaResult } from '@store/async-actions/fetchModules'
 import {deepClone} from '@utils/tools';
 import Notify from '@commonComp/Notify';
+import {SET_CALCU_VALUES} from "../store/types/pushMessage";
 
 function mapStateToProps(state){
   const {pushMessage,assessResult} = state;
@@ -20,10 +21,12 @@ function mapStateToProps(state){
     scaleInfo: pushMessage.scaleInfo,//量表内容
     chronicDesease:state.mainSuit.chronicDesease,//主诉存的慢病
     update:assessResult.update1,
+    cupdate:pushMessage.update,
     formulaResult:pushMessage.formulaResult, //量表信息
     indexs:assessResult.wholeIndexs,
     wholeResults:assessResult.wholeResults,     //整体评估可能结果
-    calcuResult:pushMessage.calcuResult
+    calcuResult:pushMessage.calcuResult,      //计算公式结果
+    calcuValues:pushMessage.calcuValues,      //计算公式填的值
   }
 }
 
@@ -70,10 +73,12 @@ function mapDispatchToProps(dispatch){
       })
     },
     //设置量表推送内容
-    setChronicPush(data) {
+    setChronicPush(data,id,calcuItem) {
       dispatch({
         type: SET_CHRONIC_PUSHS,
-        data: data
+        data: data,
+        calcuItem,
+        id
       })
     },
     // 计算公式计算
@@ -84,17 +89,10 @@ function mapDispatchToProps(dispatch){
         if(+res.data.code==0){
           const data = chronicPushItems;
           const result = res.data.data.result;
-          data[param.ppIndex].details[param.pIndex].content.result =  result;
-          /*if(item.isPop){
-            dispatch({
-              type:SET_CHRONIC_CALCU_RESULT,
-              data:deepClone(result),
-              id:item.param.disId
-            });
-          }*/
+          const content = data[param.ppIndex].details[param.pIndex].content;
+          content.result =  result;
           dispatch({
-            type: SET_CHRONIC_PUSHS,
-            data: deepClone(data),
+            type: SET_CALCU_VALUES,
             result:deepClone(result),
             id:item.param.disId
           })

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

@@ -5,6 +5,7 @@ import config from "@config";
 const init = {
   data:[],        //评估模块数据
   indexData:{},     //评估图表数据
+  indexNames:{},
   indexTimeTypes:{},    //单个图表选中的维度
   wholeAssess:[],     //整体评估数据
   wholeIndexs:{},     //已加入的评估数据的index,加入按钮状态用
@@ -24,8 +25,9 @@ export default (state=init,action)=>{
       res.data = action.data;
       return res;
     case SET_INDEX_DATA:
-      res.indexData[range[0]+range[1]] = data;
-      Object.keys(data).map((i)=>{
+      res.indexData[range[0]+range[1]] = data.obj;
+      res.indexNames[range[0]+range[1]] = data.nameObj;
+      Object.keys(data.obj).map((i)=>{
         if(getNew){
           res.indexTimeTypes[pindex]=Object.assign({},res.indexTimeTypes[pindex],{[i]:config.chartDismen});
         }else{

+ 9 - 9
src/store/reducers/pushMessage.js

@@ -2,7 +2,7 @@ import {CHANGE_ASSAY, CHANGE_CHECK, BILLING_ADVICE, ADD_SCHEME, SET_TIPS,  SET_T
         SET_CHANGE_ADVICE_TREATMENT, SET_CHANGE_ADVICE_ASSAY, SET_CHANGE_ADVICE_CHECK, ADD_BILLING,
         CLEAR_ALL_PUSH_MESSAGE,SHOW_TIPS_DETAILS, HIDE_TIPS_DETAILS, SET_COMMONTREATMENT, IS_FIRST_MAIN_DIAG, 
         SET_ADVICE_INPUT ,SET_CHRONIC_TABLELIST,SHOW_TABLE_LIST,SET_SCALE_INFO,SET_CHRONIC_PUSHS,
-        SAVE_TABLE_RESULT, SAVE_FOLLOW_UP, DEL_FOLLOW_UP} from '../types/pushMessage';
+        SAVE_TABLE_RESULT, SAVE_FOLLOW_UP, DEL_FOLLOW_UP,SET_CALCU_VALUES} from '../types/pushMessage';
 import {changeAssay, changeCheck, setAdvice, addScheme, setTips, setTipsDetails, setChangeAdviceTreatment, 
         setChangeAdviceAssay, setChangeAdviceCheck, addBilling, clearAllPushMessage, showTipsDetails, hideTipsDetails, 
         setCommontreatment, isFirstMainDiag, setAdviceInput, saveFollowUp, delFollowUp } from '../actions/pushMessage';
@@ -16,19 +16,15 @@ const initState = {
   check: [ //辅检
   ],
   tips: {},
-  advice: {
-    // assay: '', 
-    // check: '',
-    // scheme: [],
-    // adviceStr: '' 
-  },
+  advice: {},
   AdviceStr: '',
   tmpFlg:'',
   tableList:[],
   formulaResult:{},
   scaleInfo:{},
   showHide:{},
-  calcuResult:{}
+  calcuResult:{},
+  calcuValues:{}
 };
 export default function(state = initState, action) {
   let res = Object.assign({},state);
@@ -78,9 +74,13 @@ export default function(state = initState, action) {
     case SET_CHRONIC_PUSHS:
       res.chronicPushItems = action.data;
       if(action.id){
-        res.calcuResult[action.id] = action.result;
+        res.calcuValues[action.id] = action.calcuItem;
       }
       return res;
+    case SET_CALCU_VALUES:
+      res.calcuResult[action.id] = action.result;
+      res.update = Math.random();
+      return res;
     case SET_SCALE_INFO://量表内容-量表id
       res.scaleInfo = Object.assign({},res.scaleInfo,{[action.id]:action.data});
       return res;

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

@@ -22,5 +22,6 @@ export const SET_SCALE_INFO = 'SET_SCALE_INFO' ; //量表明细
 export const SAVE_TABLE_RESULT = 'SAVE_TABLE_RESULT' ; //量表计算结果
 export const SAVE_FOLLOW_UP = 'SAVE_FOLLOW_UP'  //保存回访时间
 export const DEL_FOLLOW_UP = 'DEL_FOLLOW_UP'  //保存回访时间
+export const SET_CALCU_VALUES = 'SET_CALCU_VALUES';  //保存计算公式数据