123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- import {
- SEARCH_HOSPITAL_INSPECT,
- SEARCH_HOSPITAL_INSPECT_SON,
- SET_ALLCHECK_INS,
- SELECT_ONNY_CHECK,
- SELECT_WARING,
- SHOW_IN_ICSS_INS
- } from '../types/wrapModalBody';
- import store from '@store';
- import { getStringPlus, getPushLists, getPushList} from '@utils/tools.js';
- const initWrapModal = {
- list: [], //搜索的结果
- getExcelData: {}, //导入的数据
- hospitalInspect:[],//医院检索到的
- hospitalInspectObj:{},//组对应的明细(单选多选全选)
- selectGroupList:[],//选的组的明细可能有多个组
- allCheck:false,//全选反选
- checkedList:[],//选中的小项
- btnMsg:'选中全部异常值数据'
- }
- export default (state = initWrapModal, action) => {
- if (action.type == SHOW_IN_ICSS_INS) {
- let allState = store.getState().inspect
- const newState = Object.assign({}, state);
- let tmpGroup = JSON.parse(JSON.stringify(newState.selectGroupList))
- let tmpArr = JSON.parse(JSON.stringify(allState.getExcelDataList));
- let tmpArr2 = allState.labelList;
- let excelDataLis = {
- lisExcelRes:[],
- messages:[]
- }
- for(let i = 0;i < tmpGroup.length;i++){
- let tmpObj = {//excelDataLis.lisExcelRes[0]
- menus:'',
- lisExcelItem:[]
- }
- for(let k = 0;k < tmpGroup[i].lisExcelWrapper.length;k++){
- tmpGroup[i].lisExcelWrapper[k].time = tmpGroup[i].Rtime
- }
- tmpObj.menus = tmpGroup[i].groupName
- tmpObj.lisExcelItem = tmpGroup[i].lisExcelWrapper
- excelDataLis.lisExcelRes.push(tmpObj)
- }
- newState.getExcelData = excelDataLis
- tmpArr.push(excelDataLis)
- newState.hospitalInspect = [] //医院检索到的
- newState.hospitalInspectObj = {} //组对应的明细(单选多选全选)
- newState.selectGroupList = [] //选的组的明细可能有多个组
- newState.allCheck = false //全选反选
- newState.checkedList = [] //选中的小项
- allState.getExcelDataList = [...tmpArr]
- allState.pushItem = getPushList(tmpArr,tmpArr2);
- allState.pushItems = getPushLists(tmpArr,tmpArr2);
- allState.inspectStrPlus = getStringPlus(getPushLists(tmpArr,tmpArr2))
- return newState;
- }
- if (action.type == SELECT_WARING) {//选中异常值
- const newState = Object.assign({}, state);
- let listWrap = JSON.parse(JSON.stringify(newState.hospitalInspectObj))
- let listWrapLen = listWrap&&listWrap.lisExcelWrapper.length
- let tmpGroup = JSON.parse(JSON.stringify(newState.selectGroupList))
- let tmpCheckedLis = JSON.parse(JSON.stringify(newState.checkedList))
- let warArr = [],checked = [],numS=0,selectNum=0;
- // console.log(action,listWrap,tmpCheckedLis)
- for(let m =0;m < listWrap.lisExcelWrapper.length;m++){
- let tmpName = listWrap.lisExcelWrapper[m].itemName
- let tmpType = listWrap.lisExcelWrapper[m].type
- for(let n = 0;n < tmpCheckedLis.length;n++){
- if(tmpType == 0 && tmpName == tmpCheckedLis[n]){//已选的正常的选项要保留
- warArr.push(listWrap.lisExcelWrapper[m])
- checked.push(tmpName)
- }
- }
- if(tmpType != 0 && (tmpCheckedLis.filter(item=>item == tmpName)).length == 0){
- ++selectNum
- }
- }
- // console.log(selectNum)
- for(let m =0;m < listWrap.lisExcelWrapper.length;m++){
- let tmpName = listWrap.lisExcelWrapper[m].itemName
- let tmpType = listWrap.lisExcelWrapper[m].type
- if(selectNum>0){
- if(listWrap.lisExcelWrapper[m].type != 0){//没有选中的选项要加上,有一个异常未选中就选中
- warArr.push(listWrap.lisExcelWrapper[m])
- checked.push(tmpName)
- }
- newState.btnMsg = "取消选中全部异常值数据"
- }else{//全部的选中就去掉所有异常选中的
- for(let n = 0;n < tmpCheckedLis.length;n++){
- if(tmpType == 0 && tmpName == tmpCheckedLis[n]){//已选的正常的选项要保留
- checked=[]
- warArr=[]
- warArr.push(listWrap.lisExcelWrapper[m])
- checked.push(tmpName)
- }
- }
- newState.btnMsg = "选中全部异常值数据"
- }
- }
- for(let i = 0;i < tmpGroup.length;i++){
- if(tmpGroup[i].groupName == listWrap.groupName){//右侧有选中相同组的明细
- if(warArr.length == 0){
- tmpGroup.splice(i,1)
- }else{
- tmpGroup[i].lisExcelWrapper = warArr
- }
- }else{//右侧没有选中相同组的明细
- ++numS
- }
- }
- if(numS == tmpGroup.length){//直接添加到右侧
- if(warArr.length > 0){
- listWrap.lisExcelWrapper = warArr
- tmpGroup.push(listWrap)
- }
- }
- if(checked.length == listWrapLen){
- newState.allCheck = true;
- }else{
- newState.allCheck = false;
- }
- newState.selectGroupList = [...tmpGroup]//右侧已选中的项目
- newState.checkedList = [...checked]
- return newState;
- }
- if (action.type == SELECT_ONNY_CHECK) {
- const newState = Object.assign({}, state);
- let listWrap = JSON.parse(JSON.stringify(newState.hospitalInspectObj))
- let tmpLen = listWrap.lisExcelWrapper.length;
- let tmpGroup = JSON.parse(JSON.stringify(newState.selectGroupList))
- 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].groupName == action.groupName){//右侧有选中相同组的明细
- tmpGroup[m].lisExcelWrapper.push(action.item)
- }else{
- ++numS
- }
- }
- if(numS == tmpGroup.length){//直接添加到右侧
- listWrap.lisExcelWrapper = []
- listWrap.lisExcelWrapper.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].groupName == action.groupName){//右侧肯定有相同组的
- let tmpArr = []
- for(let k = 0;k < tmpGroup[i].lisExcelWrapper.length;k++){
- if(action.name != tmpGroup[i].lisExcelWrapper[k].itemName){
- tmpArr.push(tmpGroup[i].lisExcelWrapper[k])
- }
- }
- if(tmpArr.length == 0){
- tmpGroup.splice(i,1)
- }else{
- tmpGroup[i].lisExcelWrapper = [...tmpArr]
- }
- }
- }
- newState.selectGroupList = tmpGroup//右侧已选中的项目
- if(tempArr.length == listWrap.lisExcelWrapper.length){
- newState.allCheck = true;
- }else{
- newState.allCheck = false;
- }
- }
- let selectNum=0;
- let tmpCheckedList = JSON.parse(JSON.stringify(newState.checkedList))
- let tmpListWrap = JSON.parse(JSON.stringify(newState.hospitalInspectObj))
- for(let m =0;m < tmpListWrap.lisExcelWrapper.length;m++){
- let tmpName = tmpListWrap.lisExcelWrapper[m].itemName
- let tmpType = tmpListWrap.lisExcelWrapper[m].type
- if(tmpType != 0&& (tmpCheckedList.filter(item=>item == tmpName)).length == 0){
- selectNum = selectNum+1
- }
- }
- if(selectNum>0){//说明有没选中的
- newState.btnMsg = "选中全部异常值数据"
- }else{
- newState.btnMsg = "取消选中全部异常值数据"
- }
- return newState;
- }
- if (action.type == SET_ALLCHECK_INS) {
- const newState = Object.assign({}, state);
- let flg = newState.allCheck
- let listWrap = newState.hospitalInspectObj
- let tmpGroup = newState.selectGroupList
- let tmpCheckedLis = []
- newState.allCheck = !flg
- if(!flg){//全选
- let numFst=0
- for(let i = 0;i < tmpGroup.length;i++){
- if(listWrap.groupName == tmpGroup[i].groupName){
- ++numFst
- tmpGroup[i].lisExcelWrapper = listWrap.lisExcelWrapper
- }
- }
- for(let m =0;m < listWrap.lisExcelWrapper.length;m++){
- tmpCheckedLis.push(listWrap.lisExcelWrapper[m].itemName)
- }
- if(numFst==0){
- tmpGroup.push(listWrap)
- }
- newState.btnMsg = "取消选中全部异常值数据"
- newState.checkedList=[...tmpCheckedLis]
- newState.selectGroupList = [...tmpGroup]
- }else{//反选
- for(let j = 0;j < tmpGroup.length;j++){
- if(listWrap.groupName == tmpGroup[j].groupName){
- tmpGroup.splice(j,1)
- }
- }
- newState.btnMsg = "选中全部异常值数据"
- newState.checkedList=[]
- newState.selectGroupList = [...tmpGroup]
- }
- return newState;
- }
- if (action.type == SEARCH_HOSPITAL_INSPECT) {
- const newState = Object.assign({}, state);
- newState.hospitalInspect = action.list
- newState.allCheck = false
- newState.hospitalInspectObj={}
- return newState;
- }
- if (action.type == SEARCH_HOSPITAL_INSPECT_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].groupName == action.name){
- for(let k = 0;k < tmpSelect[i].lisExcelWrapper.length;k++){
- tmpSelectSon.push(tmpSelect[i].lisExcelWrapper[k].itemName)
- }
- }
- }
- newState.checkedList = [...tmpSelectSon]
- if(tmpSelectSon.length == tmpArr.lisExcelWrapper.length){
- newState.allCheck = true;
- }else{
- newState.allCheck = false;
- }
- tmpArr.Rtime = action.time
- newState.hospitalInspectObj = tmpArr
- return newState;
- }
- return state;
- }
|