const qs = require('qs'); // const imageUrlPrefix = 'http://192.168.2.241:82' //后台图片地址 const imageUrlPrefix = 'http://192.168.2.236:82' //后台图片地址 const getUrlArgObject = (parm) => { let query = window.location.search; let args = qs.parse(query.substr(1)); return args[parm];//返回对象 } const deepClone = (arr) =>{ let newArr = []; for(let i in arr){ newArr.push(arr[i]); } return newArr; } // 带输入框选项 const getExpStr = (str) =>{ let result = {} if(str.match(/\${number_(.*})/)){//数字输入框 let matchStr = str.match(/\${number_(.*})/)[0] result = { type:'number', placeholder:matchStr.split('${number_')[1].split('}')[0], prefix:str.split(matchStr)[0]||'', suffix:str.split(matchStr)[1]||'' } }else if(str.match(/\${input_(.*})/)){ let matchStr = str.match(/\${input_(.*})/)[0] result = { type:'text', placeholder:matchStr.split('${input_')[1].split('}')[0], prefix:str.split(matchStr)[0]||'', suffix:str.split(matchStr)[1]||'' } } return result } // 多行输入 多个输入框 const getModelExpStr = (str,txt) =>{ let result = {} console.log(str,txt,44444) if(str.match(/\${number_(.*})/)){//数字输入框 let matchStr = str.match(/\${number_(.*})/)[0] let tmpHolder = matchStr.split('${number_')[1].split('}')[0] let iptLis = [],join=''; if(tmpHolder.indexOf('/') != -1){ let tmpHolderArr = tmpHolder.split('/') for(let i = 0;i < tmpHolderArr.length;i++){ let obj={placeholder:'',value:''} let tmpData = tmpHolderArr[i]; obj.placeholder=tmpData if(txt){ obj.value=txt.split('/')[i] } iptLis.push(obj) } join = '/' }else{ let obj={placeholder:'tmpHolder',value:txt} iptLis.push(obj) } result = { type:'number', placeholder:tmpHolder, iptLis:iptLis, join:join, prefix:str.split(matchStr)[0]||'', suffix:str.split(matchStr)[1]||'', } }else if(str.match(/\${input_(.*})/)){ let matchStr = str.match(/\${input_(.*})/)[0] let tmpHolder = matchStr.split('${input_')[1].split('}')[0] let iptLis = [],join=''; if(tmpHolder.indexOf('/') != -1){ let tmpHolderArr = tmpHolder.split('/') for(let i = 0;i < tmpHolderArr.length;i++){ let obj={placeholder:'',value:''} let tmpData = tmpHolderArr[i]; obj.placeholder=tmpData if(txt){ obj.value=txt.split('/')[i] } iptLis.push(obj) } join = '/' }else{ let obj={placeholder:'tmpHolder',value:txt} iptLis.push(obj) } result = { type:'text', placeholder:tmpHolder, iptLis:iptLis, join:join, prefix:str.split(matchStr)[0]||'', suffix:str.split(matchStr)[1]||'', } } return result } const getAllStr = (allData) =>{//获取界面数据,拼接字符串 let allStr = '',data = allData.data; for(let i = 0;i < data.length;i++){ if(data[i].controlType != 3&&data[i].value){ allStr += (data[i].value).replace('{','').replace('}','')+';' } if(data[i].controlType == 3){//多列选择 let tmpStr = ''; for(let j = 0;j < data[i].questionDetailList.length;j++){ let tmpName = data[i].questionDetailList[j] if(tmpName&&tmpName.value){ let obj = getModelExpStr(tmpName.name) tmpStr+=obj.prefix+tmpName.value+obj.suffix+(j ==(data[i].questionDetailList.length-1)?';':',') } } allStr+=tmpStr } } return allStr; } const moduleCP = { 'symp':1, //症状情况 'diagT':51, //诊疗情况 'other':3, //其他史 'suplement':52,//补充内容 } const moduleConfig = (config,modules) => { let activeModule = [] for(let i = 0;i < config.length;i++){ let tmpCode = config[i].code for(let j = 0;j < modules.length;j++){ let tmpType = modules[j].type if(tmpCode=="symptoms_show"&&tmpType==moduleCP['symp']){ activeModule.push(modules[j]) }else if(tmpCode=="diagnosis_show"&&tmpType==moduleCP['diagT']){ activeModule.push(modules[j]) }else if(tmpCode=="omhistory_show"&&tmpType==moduleCP['other']){ activeModule.push(modules[j]) }else if(tmpCode=="replenish_show"&&tmpType==moduleCP['suplement']){ activeModule.push(modules[j]) } } } return { data:activeModule, len:activeModule.length||0, order:activeModule.length>0?activeModule[0].type:'' } } // 替换输入框占位符 const patt = /\$\{[^\]]+\}/g; module.exports = { imageUrlPrefix, getUrlArgObject, deepClone, getModelExpStr, getAllStr, moduleConfig, patt, moduleCP, getExpStr }