import { SEARCH_LIST, SET_LABEL, FILL_ACTIVE, GET_EXCEL, CHECK_VALUE_IS_CHANGE, CLEAR_LABEL, RESET_LABEL_NEW, CLEAR_ALL_LABEL, DEL_PART_ITEM_NEW, DEL_EXCEL_LIST, ADD_LABEL, SET_CONTEXT, SET_TIP_ADVICE, DEL_ONE_PIC_NEW, SEARCH_TYPE_NEW, CHECK_OFF_ON_NEW, RENEWADVICEDATA, CLEARNEWADVICEDATA, SELECTJITYPE, HANDLESELECTSHOW, HANDLESUI, } from '../types/newAdvice'; import store from '@store'; import {getStringPlus,getPushLists,getPushList,getCurrentDate} from '@utils/tools.js'; const initSearchList = { list: [], //搜索的结果 labelList: [], //选中的结果,也是需要保存的数据 labelListActive: [], //缓存值 fillActive: {}, //选中的标签的填写单 getExcelData: {}, //导入的数据 inspectStrPlus:'', getExcelDataList: [], //导入的数据 pushItem:[], //推送的数据 pushItems:[], //右侧模板预览的数据 inspectVal:'', context:{}, shType:5, labelListBig:[],//大项 labelListSmall:[],//小项 labelListBlood:[],//输血 drugOrder:[],//开单项 operationOrder:[],//开单项 transfusionOrder:[], activeIdx:'', operationName:{} } export default (state = initSearchList, action) => { if (action.type == HANDLESUI) { const newState = Object.assign({}, state); let tempArr = newState.labelListSmall; let tmpLis = action.item for(let i = 0;i < tempArr.length;i++){ if(action.idx == i){ tempArr[i].hasTreat = 1 }else{ tempArr[i].hasTreat = 0 } } let obj = { "dateValue": tmpLis.dateValue, "name": tmpLis.name, "uniqueName": tmpLis.name } newState.labelListSmall = [...tempArr] newState.operationName = obj return newState; } if (action.type == HANDLESELECTSHOW) { const newState = Object.assign({}, state); let tempArr = newState.labelListBig; for(let i = 0;i < tempArr.length;i++){ if(action.idx == i){ let flg = tempArr[i].selectShow; tempArr[i].selectShow = action.sign==1?true:action.sign==0?false:!flg newState.activeIdx = action.idx } } newState.labelListBig = [...tempArr] return newState; } if (action.type == SELECTJITYPE) { const newState = Object.assign({}, state); let tempArr = newState.labelListBig; for(let i = 0;i < tempArr.length;i++){ if(action.idx == i){ tempArr[i].selectShow = false tempArr[i].form = action.part.name tempArr[i].selectVal = action.part.val } } newState.labelListBig = [...tempArr] return newState; } if (action.type == CHECK_OFF_ON_NEW) { const newState = Object.assign({}, state); let tempArr = newState.labelListBig; let tempArrs = newState.labelListSmall; let tmpArr = newState.labelListBlood; let tmpLis = action.item,tempBigOrder=[],tempSmallOrder=[],tempBloodOrder=[],tempTotalOrder=[]; if(tmpLis&&tmpLis.flg == 5){//药品 for(let i = 0;i < tempArr.length;i++){ if(action.tip == i){ let flg = tempArr[i].check; tempArr[i].check = !flg } } newState.labelListBig = [...tempArr] }else if(tmpLis&&tmpLis.flg == 6){//手术、操作 for(let i = 0;i < tempArrs.length;i++){ if(action.tip == i){ let flg = tempArrs[i].check; tempArrs[i].check = !flg } } newState.labelListSmall = [...tempArrs] }else if(tmpLis&&tmpLis.flg == 8){//输血 for(let i = 0;i < tmpArr.length;i++){ if(action.tip == i){ let flg = tmpArr[i].check; tmpArr[i].check = !flg } } newState.labelListBlood = [...tmpArr] } tempBigOrder = tempArr.filter((item)=>item.check) tempSmallOrder = tempArrs.filter((item)=>item.check) tempBloodOrder = tmpArr.filter((item)=>item.check) newState.drugOrder=[...tempBigOrder] newState.operationOrder=[...tempSmallOrder] newState.transfusionOrder=[...tempBloodOrder] return newState; } if (action.type == DEL_ONE_PIC_NEW) { const newState = Object.assign({}, state); let tempArr = newState.labelListBig; let tempArrs = newState.labelListSmall; let tmpArr = newState.labelListBlood; let tmpLis = action.item,tempBigOrder=[],tempSmallOrder=[],tempBloodOrder=[],tempTotalOrder=[],num=0; if(tmpLis&&tmpLis.flg == 5){ tempArr = tempArr.filter((item,idx)=>{ if(action.tip != idx){ return item } }) newState.labelListBig = [...tempArr] }else if(tmpLis&&tmpLis.flg == 6){ tempArrs = tempArrs.filter((item,idx)=> { if(item['hasTreat'] = 1){ newState.operationName = {} } if(action.tip != idx){ return item } }) for(let i = 0;i < tempArrs.length;i++){ if(!tempArrs[i].hasTreat){ ++num } } if(tempArrs.length>0&&num == tempArrs.length){ tempArrs[0]['hasTreat'] = 1 let obj = { "dateValue": tempArrs[0].dateValue, "name": tempArrs[0].name, "uniqueName": tempArrs[0].name } newState.operationName = obj } newState.labelListSmall = [...tempArrs] }else if(tmpLis&&tmpLis.flg == 8){ tmpArr = tmpArr.filter((item,idx)=> { if(action.tip != idx){ return item } }) newState.labelListBlood = [...tmpArr] } tempBigOrder = tempArr.filter((item)=>item.check) tempSmallOrder = tempArrs.filter((item)=>item.check) tempBloodOrder = tmpArr.filter((item)=>item.check) tempTotalOrder=tempBigOrder.concat(tempSmallOrder) newState.drugOrder=[...tempBigOrder] newState.operationOrder=[...tempSmallOrder] newState.transfusionOrder=[...tempBloodOrder] return newState; } if (action.type == SET_TIP_ADVICE) { const newState = Object.assign({}, state); let tempArr = newState.labelListBig; let tempArrs = newState.labelListSmall; let tmpArr = newState.labelListBlood; let tmpLis = action.item if(tmpLis.flg == 5){//药品 for(let i= 0;i < tempArr.length;i++){ if(action.tip == i){ if(action.sign == 1){//时间 tempArr[i].time = action.value tempArr[i].dateValue = action.value }else{ tempArr[i].value = action.value } } } newState.labelListBig = tempArr }else if(tmpLis.flg == 6){//手术 for(let i= 0;i < tempArrs.length;i++){ if(action.tip == i){ tempArrs[i].time = action.value tempArrs[i].dateValue = action.value if(tmpLis.hasTreat){ let obj = { "dateValue": action.value, "name": tmpLis.name, "uniqueName": tmpLis.name } newState.operationName = obj } } } newState.labelListSmall = tempArrs }if(tmpLis.flg == 8){//输血 for(let i= 0;i < tmpArr.length;i++){ if(action.tip == i){ if(action.sign == 1){ tmpArr[i].time = action.value tmpArr[i].dateValue = action.value }else{ tmpArr[i].value = action.value } } } newState.labelListBlood = tmpArr } return newState; } if (action.type == SEARCH_TYPE_NEW) { const newState = Object.assign({}, state); newState.shType = action.value return newState; } if (action.type == RESET_LABEL_NEW) { //选中的结果重组 const newState = Object.assign({}, state); const tempArr = newState.labelListBig; const tempArrs = newState.labelListSmall; const tmpArr = newState.labelListBlood; let tmpLis = action.list,num=0 tmpLis['time'] = getCurrentDate(1) tmpLis['dateValue'] = getCurrentDate(1) if(tmpLis.flg == 5){ tempArr.push(tmpLis) newState.labelListBig = [...tempArr] }else if(tmpLis.flg == 6){ tempArrs.push(tmpLis) for(let i = 0;i < tempArrs.length;i++){ if(!tempArrs[i].hasTreat){ ++num } } if(num == tempArrs.length){ tempArrs[0]['hasTreat'] = 1 let obj = { "dateValue": tmpLis.dateValue, "name": tempArrs[0].name, "uniqueName": tempArrs[0].name } newState.operationName = obj } newState.labelListSmall = [...tempArrs] }else{ tmpArr.push(tmpLis) newState.labelListBlood = [...tmpArr] } return newState; } if (action.type == SEARCH_LIST) { const newState = Object.assign({}, state); newState.list = action.list newState.inspectVal = action.val return newState; } if (action.type == SET_LABEL) { //选中的结果 const newState = Object.assign({}, state); let tempArr = []; if(action.sign == 'common'){ let tmpInspectList = store.getState().homePage.inspectList tempArr = tmpInspectList; }else{ tempArr = newState.list } const tempArrs = newState.labelList; for (let i = 0; i < tempArr.length; i++) { if (i == action.idx) { tempArrs.push(tempArr[i]) newState.labelList = [...tempArrs] } } let tmpArr = newState.getExcelDataList; let tmpArr2 = newState.labelList; newState.pushItems = getPushLists(tmpArr,tmpArr2); newState.inspectStrPlus = getStringPlus(newState.pushItems) return newState; } if (action.type == ADD_LABEL) { //右侧推送的检验检查项,点击开单放到左侧检验检查的位置上 const newState = Object.assign({}, state); const tempArr = newState.labelList; for(let i = 0;i