inspect.js 11 KB

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