123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- import {
- SEARCH_HOSPITAL_PAC,
- SEARCH_HOSPITAL_PAC_SON,
- SET_ALLCHECKS,
- SELECT_ONE_CHECKS,
- SHOW_IN_ICSSS
- } from '../types/wrapModalBodyPac';
- import {getAllString} from '@utils/tools.js';
- import store from '@store';
- import { getMRAnalyse } from '@store/async-actions/pushMessage';
- const initSearchList = {
- list: [], //点击的结果
- assistLabel: [], //搜索的结果
- dataString: '', //结果拼接
- assistVal: '',
- checkedListImport: [], //辅检导入
- hospitalPac: [], //医院检索到的
- hospitalPacObj: {}, //组对应的明细(单选多选全选)
- selectGroupList: [], //选的组的明细可能有多个组
- allCheck: false, //全选反选
- checkedList: [], //选中的小项
- allCheckLis:[],//所有导入数据
- msgObj:{
- name:'',
- patientNum:''
- }
- }
- export default (state = initSearchList, action) => {
- if (action.type == SHOW_IN_ICSSS) {
- let allState = store.getState().assistCheck;
- const newState = Object.assign({}, state);
- let tmpGroup = JSON.parse(JSON.stringify(newState.selectGroupList))
- let tmpListImport = JSON.parse(JSON.stringify(allState.checkedListImport))
- let tempArrs = JSON.parse(JSON.stringify(allState.assistLabel)),importLis=[];
- for (let i = 0; i < tmpGroup.length; i++) {
- for (let k = 0; k < tmpGroup[i].pacsResultDTO.length; k++) {
- let tmpObj = {}
- tmpObj.time = tmpGroup[i].Rtime
- tmpObj.disabled = true
- tmpObj.name = tmpGroup[i].pacsResultDTO[k].checkItem
- tmpObj.value = tmpGroup[i].pacsResultDTO[k].imagingResults
- tmpObj.imagingDiagnose = tmpGroup[i].pacsResultDTO[k].imagingDiagnose
- importLis.push(tmpObj)
- tempArrs.push(tmpObj)
- }
- }
- if(JSON.stringify(importLis) != '[]'){
- tmpListImport.push(importLis)
- }
- allState.checkedListImport = [...tmpListImport]
- allState.allCheckLis = [...tempArrs]
- allState.dataString = getAllString(tmpListImport,allState.assistLabel)
- newState.hospitalPac = [] //医院检索到的
- newState.hospitalPacObj = {} //组对应的明细(单选多选全选)
- newState.selectGroupList = [] //选的组的明细可能有多个组
- newState.allCheck = false //全选反选
- newState.checkedList = [] //选中的小项
- newState.msgObj={name:'',patientNum:''}
- if(importLis.length > 0) {
- store.dispatch(getMRAnalyse())
- }
- return newState;
- }
- if (action.type == SELECT_ONE_CHECKS) {
- const newState = Object.assign({}, state);
- let listWrap = JSON.parse(JSON.stringify(newState.hospitalPacObj))
- let tmpGroup = JSON.parse(JSON.stringify(newState.selectGroupList))
- let tmpLen = listWrap.pacsResultDTO.length;
- let tmpCheckedLis = JSON.parse(JSON.stringify(newState.checkedList))
- let numS = 0;
- if (tmpCheckedLis.indexOf(action.name) == -1) { //添加选中
- let tempArr = newState.checkedList;
- tempArr.push(action.name);
- newState.checkedList = [...tempArr]
- for (let m = 0; m < tmpGroup.length; m++) {
- if (tmpGroup[m].checkItem == action.checkItem) { //右侧有选中相同组的明细
- tmpGroup[m].pacsResultDTO.push(action.item)
- } else {
- ++numS
- }
- }
- if (numS == tmpGroup.length) { //直接添加到右侧
- listWrap.pacsResultDTO = []
- listWrap.pacsResultDTO.push(action.item)
- tmpGroup.push(listWrap)
- }
- newState.selectGroupList = [...tmpGroup] //右侧已选中的项目
- if (tempArr.length == tmpLen) {
- newState.allCheck = true;
- } else {
- newState.allCheck = false;
- }
- } else { //去除选中
- let tempArr = newState.checkedList;
- tempArr.splice(tempArr.findIndex(item => item === action.name), 1)
- newState.checkedList = [...tempArr]
- for (let i = 0; i < tmpGroup.length; i++) {
- if (tmpGroup[i].checkItem == action.checkItem) { //右侧肯定有相同组的
- let tmpArr = []
- for (let k = 0; k < tmpGroup[i].pacsResultDTO.length; k++) {
- if (action.name != tmpGroup[i].pacsResultDTO[k].checkItem) {
- tmpArr.push(tmpGroup[i].pacsResultDTO[k])
- }
- }
- if(tmpArr.length == 0){
- tmpGroup.splice(i,1)
- }else{
- tmpGroup[i].pacsResultDTO = [...tmpArr]
- }
- }
- }
- newState.selectGroupList = tmpGroup //右侧已选中的项目
- if (tempArr.length == listWrap.pacsResultDTO.length) {
- newState.allCheck = true;
- } else {
- newState.allCheck = false;
- }
- }
- return newState;
- }
- if (action.type == SET_ALLCHECKS) {
- const newState = Object.assign({}, state);
- let flg = newState.allCheck
- let listWrap = newState.hospitalPacObj
- let tmpGroup = newState.selectGroupList
- let tmpCheckedLis = []
- newState.allCheck = !flg
- if (!flg) { //全选
- let numFst = 0
- for (let i = 0; i < tmpGroup.length; i++) {
- if (listWrap.checkItem == tmpGroup[i].checkItem) {
- ++numFst
- tmpGroup[i].pacsResultDTO = listWrap.pacsResultDTO
- }
- }
- for (let m = 0; m < listWrap.pacsResultDTO.length; m++) {
- tmpCheckedLis.push(listWrap.pacsResultDTO[m].checkItem)
- }
- if (numFst == 0) {
- tmpGroup.push(listWrap)
- }
- newState.checkedList = [...tmpCheckedLis]
- newState.selectGroupList = [...tmpGroup]
- } else { //反选
- for (let j = 0; j < tmpGroup.length; j++) {
- if (listWrap.checkItem == tmpGroup[j].checkItem) {
- tmpGroup.splice(j, 1)
- }
- }
- newState.checkedList = []
- newState.selectGroupList = [...tmpGroup]
- }
- return newState;
- }
- if (action.type == SEARCH_HOSPITAL_PAC_SON) {
- const newState = Object.assign({}, state);
- let tmpArr = action.list
- let tmpSelect = newState.selectGroupList
- let tmpSelectSon = []
- for (let i = 0; i < tmpSelect.length; i++) {
- if (tmpSelect[i].checkItem == action.name) {
- for (let k = 0; k < tmpSelect[i].pacsResultDTO.length; k++) {
- tmpSelectSon.push(tmpSelect[i].pacsResultDTO[k].checkItem)
- }
- }
- }
- newState.checkedList = [...tmpSelectSon]
- if (tmpSelectSon.length == tmpArr.pacsResultDTO.length) {
- newState.allCheck = true;
- } else {
- newState.allCheck = false;
- }
- newState.hospitalPacObj = tmpArr
- return newState;
- }
- if (action.type == SEARCH_HOSPITAL_PAC) {
- const newState = Object.assign({}, state);
- newState.hospitalPac = action.list
- newState.msgObj = action.msg
- newState.allCheck = false
- newState.hospitalPacObj = {}
- return newState;
- }
- return state;
- }
|