inspect.js 13 KB

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