inspect.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. import {
  2. SEARCH_LIST,
  3. SET_LABEL,
  4. FILL_ACTIVE,
  5. GET_EXCEL,
  6. CHECK_VALUE_IS_CHANGE,
  7. CLEAR_LABEL,
  8. RESET_LABEL,
  9. CLEAR_ALL_LABEL,
  10. DEL_PART_ITEM,
  11. DEL_EXCEL_LIST,
  12. ADD_LABEL,
  13. SET_CONTEXT,
  14. SET_TIP
  15. } from '../types/inspect';
  16. import store from '@store';
  17. import { getStringPlus, getPushLists, getPushList} from '@utils/tools.js';
  18. const initSearchList = {
  19. list: [], //搜索的结果
  20. labelList: [], //选中的结果,也是需要保存的数据
  21. labelListActive: [], //缓存值
  22. fillActive: {}, //选中的标签的填写单
  23. getExcelData: {}, //导入的数据
  24. inspectStrPlus:'',
  25. getExcelDataList: [], //导入的数据
  26. pushItem:[], //推送的数据
  27. pushItems:[], //右侧模板预览的数据
  28. inspectVal:'',
  29. context:{}
  30. }
  31. export default (state = initSearchList, action) => {
  32. if (action.type == SEARCH_LIST) {
  33. const newState = Object.assign({}, state);
  34. newState.list = action.list
  35. newState.inspectVal = action.val
  36. return newState;
  37. }
  38. if (action.type == SET_LABEL) { //选中的结果
  39. const newState = Object.assign({}, state);
  40. let tempArr = [];
  41. if(action.sign == 'common'){
  42. let tmpInspectList = store.getState().homePage.inspectList
  43. tempArr = tmpInspectList;
  44. }else{
  45. tempArr = newState.list
  46. }
  47. const tempArrs = newState.labelList;
  48. for (let i = 0; i < tempArr.length; i++) {
  49. if (i == action.idx) {
  50. tempArrs.push(tempArr[i])
  51. newState.labelList = [...tempArrs]
  52. }
  53. }
  54. let tmpArr = newState.getExcelDataList;
  55. let tmpArr2 = newState.labelList;
  56. newState.pushItems = getPushLists(tmpArr,tmpArr2);
  57. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  58. return newState;
  59. }
  60. if (action.type == RESET_LABEL) { //选中的结果重组
  61. const newState = Object.assign({}, state);
  62. const tempArr = newState.labelList;
  63. tempArr[tempArr.length-1].details = action.list;
  64. tempArr[tempArr.length-1].uniqueName = action.uniqueName;
  65. tempArr[tempArr.length-1].inpValue = '';
  66. return newState;
  67. }
  68. if (action.type == ADD_LABEL) { //右侧推送的化验辅检项,点击开单放到左侧化验辅检的位置上
  69. const newState = Object.assign({}, state);
  70. const tempArr = newState.labelList;
  71. for(let i = 0;i <action.lis.length;i++){
  72. tempArr.push(action.lis[i]);
  73. }
  74. newState.labelList = [...tempArr]
  75. let tmpArr = newState.getExcelDataList;
  76. let tmpArr2 = newState.labelList;
  77. newState.pushItems = getPushLists(tmpArr,tmpArr2);
  78. newState.inspectStrPlus = getStringPlus(newState.pushItems);
  79. return newState;
  80. }
  81. if (action.type == FILL_ACTIVE) { //点击标签放到暂存里
  82. const newState = Object.assign({}, state);
  83. const tempArr = newState.labelList;
  84. for (let i = 0; i < tempArr.length; i++) {
  85. if (i == action.idx) {
  86. newState.fillActive = tempArr[i]
  87. }
  88. }
  89. return newState;
  90. }
  91. if (action.type == CLEAR_LABEL) { //清空数据填写
  92. const newState = Object.assign({}, state);
  93. const tempArrs = newState.fillActive;
  94. const tempArr = newState.fillActive.details;
  95. let tmpArr = newState.getExcelDataList;
  96. let tmpArr2 = newState.labelList;
  97. for (let i = 0; i < tempArr.length; i++) {
  98. // tempArr[i].value = ''
  99. }
  100. tempArrs.show = false;
  101. newState.pushItem = getPushList(tmpArr,tmpArr2);
  102. newState.pushItems = getPushLists(tmpArr,tmpArr2);
  103. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  104. return newState;
  105. }
  106. if (action.type == GET_EXCEL) { //导入数据
  107. const newState = Object.assign({}, state);
  108. let tmpArr = newState.getExcelDataList;
  109. let tmpArr2 = newState.labelList;
  110. newState.getExcelData = action.data
  111. tmpArr.push(action.data)
  112. newState.getExcelDataList = [...tmpArr]
  113. newState.pushItem = getPushList(tmpArr,tmpArr2);
  114. newState.pushItems = getPushLists(tmpArr,tmpArr2);
  115. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  116. // getExcelString(action,newState,tmpArr,tmpArr2)
  117. return newState;
  118. }
  119. if(action.type == DEL_EXCEL_LIST){ //删除excel列表的某个数据
  120. const newState = Object.assign({}, state);
  121. const tempArr2 = newState.labelList;
  122. let tmpArr = newState.getExcelDataList;
  123. tmpArr.splice(action.idx,1);
  124. newState.getExcelDataList = [...tmpArr];
  125. let tempArr1 = newState.getExcelDataList;
  126. newState.pushItem = getPushList(tempArr1,tempArr2);
  127. newState.pushItems = getPushLists(tempArr1,tempArr2);
  128. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  129. return newState;
  130. }
  131. if (action.type == CHECK_VALUE_IS_CHANGE) { //数据添加后显示与否
  132. const newState = Object.assign({}, state);
  133. // const tempArrAct = newState.fillActive;
  134. const tempArr = action.arr;
  135. tempArr.time = action.time;
  136. let tmpArr = newState.getExcelDataList;
  137. const tempArrs = newState.labelList;
  138. tempArrs[action.idx] = tempArr;
  139. newState.fillActive = tempArr;
  140. newState.labelList = tempArrs;
  141. // tempArrAct.show = true;
  142. newState.pushItem = getPushList(tmpArr,tempArrs);
  143. newState.pushItems = getPushLists(tmpArr,tempArrs);
  144. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  145. return newState;
  146. }
  147. if (action.type == CLEAR_ALL_LABEL) { //清空所有数据
  148. const newState = Object.assign({}, state);
  149. newState.labelList =action.data;
  150. newState.getExcelDataList = action.dataExcel;
  151. let tmpArr = action.dataExcel;
  152. const tempArrs = action.data;
  153. newState.pushItem = getPushList(tmpArr,tempArrs);
  154. newState.inspectStrPlus = action.saveTextData;
  155. return newState;
  156. }
  157. if (action.type == DEL_PART_ITEM) { //清空填寫数据
  158. const newState = Object.assign({}, state);
  159. const tempArr = newState.labelList;
  160. tempArr.splice(action.idx,1);
  161. newState.labelList = [...tempArr];
  162. let tmpArr = newState.getExcelDataList;
  163. newState.pushItem = getPushList(tmpArr,tempArr);
  164. newState.pushItems = getPushLists(tmpArr,tempArr);
  165. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  166. return newState;
  167. }
  168. if (action.type == SET_CONTEXT) {
  169. const newState = Object.assign({}, state);
  170. newState.context = action.obj
  171. return newState;
  172. }
  173. if (action.type == SET_TIP) {
  174. const newState = Object.assign({}, state);
  175. const tempArr = newState.labelList;
  176. for(let i = 0;i < tempArr.length;i++){
  177. if(action.idx == i){
  178. tempArr[i].inpValue=action.value
  179. }
  180. }
  181. let tmpArr = newState.getExcelDataList;
  182. newState.pushItem = getPushList(tmpArr,tempArr);
  183. newState.pushItems = getPushLists(tmpArr,tempArr);
  184. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  185. return newState;
  186. }
  187. return state;
  188. }
  189. function getExcelString(action,newState,tmpArr,tmpArr2) {
  190. let tmpString = '';
  191. if(JSON.stringify(action.data||{}) != '{}' && action.data.lisExcelRes.length > 0){
  192. action.data.lisExcelRes.map((item)=>{
  193. item.lisExcelItem.map((part)=>{
  194. if(part.type == 1){
  195. if(part.max != '' && (part.value-0) > (part.max-0) ) {
  196. let rate = (part.value/part.max).toFixed(2);
  197. let tmpStr = part.mealName+','+part.itemName+','+part.value+' '+part.unit+'升高'+rate+';'
  198. tmpString += tmpStr;
  199. }else if(part.min != '' && (part.value-0) < (part.min-0) ){
  200. let rate = (part.value/part.min).toFixed(2);
  201. let tmpStr = part.mealName+','+part.itemName+','+part.value+' '+part.unit+'降低'+rate+';'
  202. tmpString += tmpStr;
  203. }else{
  204. let tmpStr = part.mealName+','+part.itemName+','+part.value+' '+part.unit+'异常;'
  205. tmpString += tmpStr;
  206. }
  207. }else{
  208. let tmpStr = part.mealName+','+part.itemName+','+part.value+' '+part.unit+'正常;'
  209. tmpString += tmpStr;
  210. }
  211. })
  212. })
  213. newState.pushItem = getPushList(tmpArr,tmpArr2);
  214. newState.pushItems = getPushLists(tmpArr,tmpArr2);
  215. newState.inspectStrPlus = getStringPlus(newState.pushItems)
  216. }else{
  217. newState.inspectStrPlus = '';
  218. newState.pushItem = []
  219. }
  220. }
  221. function getString(lists) {
  222. let tmpString = '';
  223. lists.map((item)=>{
  224. if(item.show == true){
  225. item.details.map((part)=>{
  226. if(part.value){
  227. if(typeof(part.value) == "number"){
  228. if(part.maxValue != '' && (part.value-0) > (part.maxValue-0) ) {
  229. let rate = (part.value/part.maxValue).toFixed(2);
  230. let tmpStr = item.name+','+part.name+','+part.value+' '+part.labelSuffix+'升高'+rate+';'
  231. tmpString += tmpStr;
  232. }else if(part.minValue != '' && (part.value-0) < (part.minValue-0) ){
  233. let rate = (part.value/part.minValue).toFixed(2);
  234. let tmpStr = item.name+','+part.name+','+part.value+' '+part.labelSuffix+'降低'+rate+';'
  235. tmpString += tmpStr;
  236. }else{
  237. let tmpStr = item.name+','+part.name+','+part.value+' '+part.labelSuffix+';'
  238. tmpString += tmpStr;
  239. }
  240. }else{
  241. tmpString += item.name+','+part.name+','+part.value+' '+part.labelSuffix+';'
  242. }
  243. }
  244. })
  245. }
  246. })
  247. return tmpString;
  248. }