import config from '@config/index.js'; //函数类工具,对函数进行操作 返回函数 //延时操作 export function debounce(func, delay) { let timer = null; return function (...args) { if (timer) { clearTimeout(timer); } timer = setTimeout(() => { func.apply(this, args); }, delay); } } // 时间戳转换日期 export function dateParser(timestamp,link = '-'){ let time = new Date(timestamp); let year = time.getFullYear(); let month = time.getMonth()+1; let date = time.getDate(); let hour = time.getHours().toString().padStart(2,'0'); let minute = time.getMinutes().toString().padStart(2,'0'); // let result = year+link+month+link+date; let result = year+link+(month<10?"0"+month:month)+link+(date<10?"0"+date:date)+' '+hour+':'+minute; return result; } //时间搓转换年龄 export const getAge = (time) => { const birthday = new Date(time), year = birthday.getFullYear(), month = birthday.getMonth() + 1, day = birthday.getDate(), now = new Date(), now_year = now.getFullYear(), now_month = now.getMonth() + 1, now_day = now.getDate(); let age= now_year - year; if (now_month > month) { age += 1; } else if (now_month === month) { if (now_day >= day) { age += 1; } } return age; }; //获取URL参数-返回json对象 export const parseUrl = (url) => { const r = url.substr(1).split("&"), obj = {}; r.forEach((v) => { const index = v.indexOf('='); if (index > -1) { obj[v.substring(0, index)] = v.substring(index + 1); } }); return obj; } //字符串去空格 export const strTrim = (str) =>{ return str.replace(/ |
|<\/div>|
|\s/g,''); }; //获取组合组件已填文字填入saveText function getSaveText(data){//console.log(data) const arr = data.questionMapping.map((it)=>{ return it.value?(it.labelPrefix||'')+(it.value||'')+(it.labelSuffix||''):''; }); return arr.join(''); } //添加自由文本标签 function notTextLabel(label){ return +label.tagType!==8; } /* * 给标签组添加自由文本标签 * 入参:arr源数组, * noPre是否不添加前置文本标签,默认false即添加 * noEnd是否不添加后置文本标签,默认false即添加 * ifEmpty是否添加空标签,默认true即添加,传false添加逗号,如查体, * showInCheck是否默认在查体中展开 * */ export const fullfillText = (arr,noPre=false,noEnd=false,ifEmpty=true)=>{ let newArr =[], pre={}, textLabel={}, _textLabel={}, notText = true, saveText=[], tempText = '', value = '', item={}, cNum = 0, checkHiddenDefault=false;//console.log(arr) arr&&arr.map((it,i)=>{ notText = notTextLabel(it); cNum = i; value = it.value||''; textLabel = !ifEmpty&&i==0?Object.assign({},JSON.parse(config.textLabel),{showInCheck:true}):JSON.parse(config.textLabel); _textLabel = !ifEmpty&&cNumconfig.showCheckNum&&+it.tagType===1&&(+it.controlType===0||+it.controlType===1)){ if(it.questionDetailList.find((it)=>it.defaultSelect=='1')){ checkHiddenDefault=true; } } //如果本身不是文本标签且前面一个也不是文本标签,该标签前面添加文本标签 if(notTextLabel(pre)&¬Text){ // newArr.push(textLabel,it); ifEmpty?newArr.push(textLabel,it):newArr.push(_textLabel,item); if(it.tagType != 3) { tempText = value ? it.labelPrefix + value + it.labelSuffix : ''; }else{ tempText = getSaveText(it); } saveText.push("",tempText); }else{ //本身是或者前面是文本标签时,前面不添加文本标签 newArr.push(item); if(it.tagType != 3) { tempText = value ? it.labelPrefix + value + it.labelSuffix : ''; // tempText = notText?tempText:it.value||it.name; tempText = notText ? tempText : (it.value || it.value == "" ? it.value : it.name); }else{ tempText = getSaveText(it); } saveText.push(tempText); } if(notText&&!noEnd&&i===arr.length-1){//最后一个非文本标签,后面添加一个文本标签 //不能用上面的变量textLabel,因为上一个if可能也进了,这样就是同一个对象,值改变时会同步 newArr.push(ifEmpty?textLabel:_textLabel); saveText.push(""); } } }); return {newArr,saveText,checkHiddenDefault}; }; //获取标签index,入参:病例项index+标签index+标签内index export const getLabelIndex = (index)=>{ let ikey = ''; if(index.length == 3){ ikey = index.substr(1,1); }else if(index.length == 4){ ikey = index.substr(1,2); }else if(index.length == 5){ ikey = index.substr(1,3); } return ikey; }; export const getWindowInnerHeight = ()=>{ if(window.innerHeight!=undefined){ return window.innerHeight; }else{ let by = document.body, ele = document.documentElement; return Math.min(by.clientHeight,ele.clientHeight); } }; export const getWindowInnerWidth = ()=>{ let width = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth return width }; export const getIds = (data)=>{ let ids = []; data&&data.forEach((it,i)=>{ ids.push(it.id); }) return ids; }