123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import config from '@config/index.js';
- import {getLabelIndex} from './tools';
- /**
- * 各类标签统一的处理函数
- *
- * */
- //数字键盘选中事件
- export function setNumberValue(state,action){
- let res = Object.assign({},state);
- const param = action.params;
- const ikey = param.ikey;
- let labelInx = getLabelIndex(ikey);
- const subInx = ikey.split("-")[2];
- let item = res.data[labelInx];
- if(+item.tagType===1){ //独立数字键盘组件
- item.value = param.text;
- res.saveText[labelInx] = param.text?item.labelPrefix+param.text+item.labelSuffix:'';
- }else{ //内嵌血压类型组件的数字键盘组件
- item.questionMapping[subInx].value = param.text;
- let hasValue = false;
- const sub = item.questionMapping.map((it)=>{
- if(it.value){ //至少有一个子值才黑显
- hasValue = true;
- }
- if(it.tagType===8){ //维护时的连接词无value
- return it.name;
- }else{
- //组合中未填值的子标签预览中不显示
- if(!it.value){
- return '';
- }
- return (it.labelPrefix||'')+(it.value||'')+(it.labelSuffix||'');
- }
- });
- res.saveText[labelInx] = hasValue?sub.join(''):'';
- }
- res.update = Math.random();
- return res;
- }
- //单选下拉选中
- export function setRadioValue(state,action){
- let res = Object.assign({},state);
- const {ikey,id,text} = action;
- let labelInx = getLabelIndex(ikey);
- const subInx = ikey.split("-")[2];
- let item = res.data[labelInx];
- if(+item.tagType===1){
- item.value = text;
- res.saveText[labelInx] = item.labelPrefix+text+item.labelSuffix;
- item.questionDetailList.map((its)=>{
- if(its.id === id){
- its.selected = true;
- }else{
- its.selected = false;
- }
- });
- }else{
- item.questionMapping[subInx].value = text;
- let hasValue = false;
- const sub = item.questionMapping.map((it)=>{
- //添加选中状态
- it.questionDetailList.map((its)=>{
- if(its.id === id){
- its.selected = true;
- }else{
- its.selected = false;
- }
- });
- if(it.value){ //至少有一个子值才黑显
- hasValue = true;
- }
- if(it.tagType===8){ //维护时的连接词无value
- return it.name;
- }else{
- //组合中未填值的子标签预览中不显示
- if(!it.value){
- return '';
- }
- return (it.labelPrefix||'')+(it.value||'')+(it.labelSuffix||'');
- }
- });
- res.saveText[labelInx] = hasValue?sub.join(''):'';
- item.value = sub.join('');
- }
- res.update = Math.random();
- return res;
- }
- //单选带输入值保存,该类型不可加入血压类型中
- export const setRadioInputValue = (state,action)=>{
- const res = Object.assign({},state);
- const {ikey,values,id} = action.data;
- let index = getLabelIndex(ikey);
- let item = res.data[index];
- let str='',temp='',obj=item.questionDetailList;
- if(!values){ //清空
- let sld=obj.find((item)=>{
- return item.selected==true;
- });
- sld?sld.selected=false:'';
- item.vals = null;
- item.value = '';
- res.saveText[index] = '';
- res.update = Math.random();
- return res;
- }
- //存值
- for(let i in values){
- temp = values[i];
- if(typeof temp=='object'){
- str+=temp.value;
- }else{
- str+=temp;
- }
- }
- //选中状态
- if(id){
- obj.map((its)=>{
- if(its.id === id){
- its.selected = true;
- }else{
- its.selected = false;
- }
- });
- }
- item.vals = values;
- item.value = str;
- res.saveText[index] = str;
- res.update = Math.random();
- return res;
- }
|