utils.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. import {dateHandle} from "../../../utils/dateHandle.js";
  2. const {dateDiff} = dateHandle;
  3. /**
  4. * 主题数据
  5. */
  6. export const themeList = [{
  7. id: 0,
  8. title: '个案追踪',
  9. des: '评价诊疗服务的内涵质量以及对各种诊疗规范、临床路径等的执行力',
  10. },{
  11. id: 1,
  12. title: '系统追踪',
  13. des: '评价对各种质量与安全管理制度与流程的执行力、医院服务的连贯性及多学科综合的服务能力',
  14. }];
  15. // 查核计划里的数据
  16. export const checkPlanList = [
  17. {id: 'week', value: 1, label: '每周', model: 7},
  18. {id: 'month', value: 2, label: '每月', model: 30},
  19. {id: 'twoMonth', value: 3, label: '每两月', model: 60},
  20. {id: 'quarter', value: 4, label: '每季度', model: 90},
  21. {id: 'halfAYear', value: 5, label: '每半年', model: 180},
  22. {id: 'custom', value: 6, label: '天', model: null},
  23. ];
  24. /**
  25. * 底部按钮数据
  26. */
  27. export const normalBtnGroup = [
  28. {id: 'pre', label: '上一步'},
  29. {id: 'next', label: '下一步'}
  30. ];
  31. export const btnGroupPlan1 = [
  32. {id: 'pre', label: '上一步'},
  33. {id: 'checkPlanCreate', label: '生成查核计划'}
  34. ];
  35. export const btnGroupPlan2 = [
  36. {id: 'checkPlanCallback', label: '返回'},
  37. {id: 'next', label: '下一步'}
  38. ];
  39. export const btnGroupSituationPreview = [
  40. {id: 'pre', label: '上一步'},
  41. {id: 'situationPreviewOK', label: '完成'}
  42. ];
  43. export const firstStepBtnGroup = [
  44. {id: 'goback', label: '返回'},
  45. {id: 'next', label: '下一步'}
  46. ];
  47. /**
  48. * 增加树形数据字段,以适配公共组件
  49. * @param {Object} data
  50. */
  51. export const conditionOptions = function(data) {
  52. if(!data) return [];
  53. let options = data.map((item)=>{
  54. return {
  55. ...item,
  56. key: item.id,
  57. label: item.name,
  58. children: conditionOptions(item.child)
  59. }
  60. });
  61. return options;
  62. }
  63. /**
  64. * 创建
  65. * 构造条件提交结果
  66. */
  67. export const optionsHandle = (arr, conditionIds) => {
  68. let options = [...arr].map((item)=>{
  69. return {
  70. ...item,
  71. selectFlag: conditionIds.includes(item.id),
  72. child: optionsHandle(item.child, conditionIds)
  73. }
  74. });
  75. return options;
  76. }
  77. /**
  78. * 构造查核组提交数据
  79. */
  80. export const checkGroup = function({list, checkedItem}) {
  81. let _list = [...list].map((ntem)=>{
  82. return {
  83. ...ntem,
  84. selectFlag: ntem.id === checkedItem.id ? true : false
  85. }
  86. });
  87. return _list;
  88. }
  89. /**
  90. * 构造查核地图提交数据
  91. */
  92. export const checkDep = function(list) {
  93. return list.map((item, i)=>{
  94. return {
  95. ...item,
  96. sort: i+1,
  97. enableFlag: item.status === 'disable' ? false : true,
  98. }
  99. });
  100. }
  101. /**
  102. * 编辑
  103. * 条件树遍历,获取选中项的id
  104. */
  105. export const initConditionIds = (arr, result) => {
  106. arr.map((item)=>{
  107. if(item.selectFlag || item.selectFlag === 'true') {
  108. result.push(item.id);
  109. }
  110. if(item.child && item.child.length > 0) {
  111. initConditionIds(item.child, result);
  112. }
  113. })
  114. }
  115. // 构造条件回显数据
  116. export const editCondition = ({depType, filterCondition})=>{
  117. let conditionIds = [];
  118. initConditionIds(filterCondition, conditionIds);
  119. return {
  120. depType, // 门急诊类型 1-门诊 2-急诊
  121. conditionIds, // 选中的key
  122. options: conditionOptions(filterCondition), // 树形节点数据
  123. defaultOpen: filterCondition.length > 0 ? [filterCondition[0].id]:[], // 默认展开的项
  124. }
  125. }
  126. // 构造查核组回显数据
  127. export const editCheckRent = ({checkGroup}) =>{
  128. let obj = checkGroup.find((item)=>item.selectFlag || item.selectFlag === 'true');
  129. return { // 查核组页面数据
  130. list: checkGroup,
  131. checkedItem: obj ? obj : {id: null}
  132. }
  133. }
  134. // 查核地图数据
  135. export const editCheckMap = ({checkDep}) =>{
  136. return { // 查核地图数据
  137. list: checkDep.map((item)=>{
  138. return {
  139. ...item,
  140. status: 'normal'
  141. }
  142. }).sort((a,b)=>{
  143. if(a.sort && b.sort)
  144. return a.sort - b.sort;
  145. }), // 列表数据
  146. actionItem: {id: '', pointList: []}, // 当前操作的列表项
  147. deptList: [], // 新增单位数据
  148. }
  149. }
  150. // 查核计划数据
  151. export const editCheckPlan = ({planConfig, planList}) =>{
  152. let checkedItem = checkPlanList.find((item)=>item.value === planConfig.frequency);
  153. return { // 查核计划
  154. checkedItem: checkedItem?checkedItem: {id: 'month', value: 2, label: '每月', model: 30}, // 选中的取模方式对象
  155. dateObj: { // 保存开始日期结束日期的对象
  156. start: planConfig.startDate,
  157. end: planConfig.endDate,
  158. dayNum: dateDiff(planConfig.startDat, planConfig.endDate) // 两个日期间隔的天数
  159. },
  160. checkList: planList.map((item)=>{
  161. return item.startDate
  162. }), // 核查计划数组
  163. }
  164. }
  165. // 预览数据
  166. export const editSituationPreview = ({name, remindPlanDay,remindPlanHour,remindCheckDay,situationType,subtotal,showNotApplicable}) => {
  167. return {
  168. sitName: name,
  169. preDay: remindPlanDay,
  170. preH: remindPlanHour,
  171. startDay: remindCheckDay,
  172. situationType:situationType,
  173. subtotal:subtotal,
  174. showNotApplicable:showNotApplicable
  175. }
  176. }
  177. // 判断两个数组全等
  178. export const arrayEquality = (arr1,arr2) =>{
  179. let flage = true;
  180. arr1.map((item, i)=>{
  181. if(item !== arr2[i]){
  182. flage = false;
  183. }
  184. });
  185. return flage;
  186. }