import Vue from 'vue'; import Vuex from 'vuex'; import {deepClone,getAllStr,moduleCP} from '@utils/tools.js' Vue.use(Vuex); const store = new Vuex.Store({ state:{ searchShow:false, pathInfo:{}, //患者信息-后续提交要用 sysConfig:[], //系统配置项 allMoudles:[], //模板 symptom:{ //症状情况 choose:[], origin:{}, datas:{}, text:[], }, diagnose:{ //诊疗 origin:[], //模板数据 datas:[], text:[], imgFile:[],//上传图片信息file imgSrc:{},//上传的图片信息src }, others:{ //其他情况 origin:[], //模板数据 datas:[], text:[], imgFile:[], imgSrc:{}, }, addContent:{ origin:[], txt:'', txtDoc:'' }, loadingShow:false, detailInfo:{}, detailShow:false }, mutations:{ initAllData(state){ state.symptom={ //症状情况 choose:[], origin:{}, datas:{}, text:[], } state.diagnose={ //诊疗 origin:[], //模板数据 datas:[], text:[], imgFile:[], imgSrc:{}, } state.others={ //其他情况 origin:[], //模板数据 datas:[], text:[], imgFile:[], imgSrc:{}, } state.addContent={ origin:[], txt:'', txtDoc:'' } }, setDetail(state,param){//明细 const detail = param.detail; if(JSON.stringify(detail)=='{}'){ state.detailShow = false; }else{ state.detailInfo = Object.assign({},param); state.detailShow = true; } }, setSearchShow(state,flg){//搜索显示与否 state.searchShow = flg; }, setDataAll(state,param){ let res = state.allMoudles for(let i = 0;i 0){ for(let i in text){ // 点完成时才覆盖,单纯点开再关闭不覆盖flag if(text[i].pId==param.pId){ if(param.flag){ text.splice(i,1,param); } return } } text.push(param); }else{ text.push(param); } break; case moduleCP['diagT']: //诊疗情况 let diaText = JSON.parse(JSON.stringify(state.diagnose.text)); // 先判断order,然后判断index let item = diaText[param.order]; if(item){ // 判断是对象还是数组--数组则区分index if(Array.isArray(item)){ if(param.flag){//详情完成-覆盖 item[param.index] = param; }else{ //直接点label--无则覆盖 if(!item[param.index]){ item[param.index] = param; } } }else{ if(param.flag){ diaText[param.order] = param; } } }else{ if(param.arrFlag){ let temp = []; temp[param.index] = param; diaText[param.order] = temp; }else{ diaText[param.order] = param; } } state.diagnose.text = diaText; /*if(diaText.length > 0){ for(let i in diaText){ if(diaText[i].pId==param.pId){ if(param.flag){ diaText.splice(i,1,param); } return } } diaText.push(param); }else{ diaText.push(param); }*/ break; case moduleCP['other']: //其他情况 let otherText = JSON.parse(JSON.stringify(state.others.text)); let oitem = otherText[param.order]; if(oitem){ // 判断是对象还是数组--数组则区分index if(Array.isArray(oitem)){ if(param.flag){//详情完成-覆盖 oitem[param.index] = param; }else{ //直接点label--无则覆盖 if(!oitem[param.index]){ oitem[param.index] = param; } } }else{ if(param.flag){ otherText[param.order] = param; } } }else{ if(param.arrFlag){ let temp = []; temp[param.index] = param; otherText[param.order] = temp; }else{ otherText[param.order] = param; } } state.others.text = otherText; /*if(otherText.length > 0){ for(let i in otherText){ if(otherText[i].pId==param.pId){ if(param.flag){ otherText.splice(i,1,param); } return } } otherText.push(param); }else{ otherText.push(param); }*/ break; case moduleCP['suplement']: let addText = state.addContent.txt state.addContent.origin = param.data state.addContent.txt = getAllStr(param).allStr state.addContent.txtDoc = getAllStr(param).allStrDoc break; default: break; } }, delText(state,param){ const type = parseInt(param.type); switch(type){ case moduleCP['symp']: let text = state.symptom.text; for(let i in text){ if(text[i].pId==param.pId){ text.splice(i,1) } } break; case moduleCP['diagT']: //诊疗情况 let diaText = JSON.parse(JSON.stringify(state.diagnose.text)); let temp = diaText[param.order]; temp[param.index] = null; state.diagnose.text = diaText; // let diaText = state.diagnose.text; /*for(let i in diaText){ if(diaText[i].pId==param.pId){ diaText.splice(i,1) } }*/ break; case moduleCP['other']: let otherText = JSON.parse(JSON.stringify(state.others.text)); let otemp = otherText[param.order]; otemp[param.index] = null; state.others.text = otherText; /*let otherText = state.others.text; for(let i in otherText){ if(otherText[i].pId==param.pId){ otherText.splice(i,1) } }*/ break; case moduleCP['suplement']: break; default: break; } }, setChoose(state,param){ //症状情况-已选症状 state.symptom.choose = param.choose; }, delChoose(state,param){ //详情有必填项未填--移除症状 const id = param.id; let symp = state.symptom.choose; for(let i=0; i