resultValueEntry.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. var app = getApp();
  2. var that;
  3. import moment from 'moment' // 时间库
  4. Page({
  5. data: {
  6. tabIndex: 1,//条件选择
  7. list: [],
  8. page: 1,
  9. id: '',
  10. packageName:'',
  11. },
  12. onLoad(e) {
  13. that = this;
  14. dd.setNavigationBar({ title: "结果值录入" });
  15. this.setData({
  16. id: e.id,
  17. packageName:e.tel,
  18. })
  19. this.getPackageDtail()
  20. },
  21. tabAction(e) {
  22. let index = e.target.dataset.index
  23. this.setData({
  24. tabIndex: index,
  25. })
  26. this.getPackageDtail()
  27. },
  28. bindTextAreaBlur(e){
  29. this.setData({
  30. [`noStatusList[${e.target.dataset.index}].result`]: e.detail.value,
  31. });
  32. },
  33. // 提交
  34. save(e) {
  35. let num = e.target.dataset.index
  36. let isLr = false;
  37. let data = {
  38. id: this.data.id, // 个人考核包ID
  39. cache: num, // 是否暂存 1 是 0 否(提交)
  40. result_info: '' // 结果值信息
  41. };
  42. let result_info = [];
  43. this.data.noStatusList.some(item => {
  44. if (item.result) {
  45. result_info.push({
  46. result: item.result, // 单项目结果值
  47. dimension_key: item.message.dimension_key, // 维度索引
  48. index_key: item.message.index_key, // 指标索引
  49. index_id: item.id // 指标ID
  50. });
  51. isLr = true;
  52. }
  53. });
  54. if (!isLr) {
  55. app.globalData.showToast('至少输入一项结果值');
  56. return false;
  57. }
  58. data.result_info = JSON.stringify(result_info);
  59. if (this.data.bootBool) {
  60. return;
  61. }
  62. this.setData({
  63. bootBool:true
  64. })
  65. app.$post('api/per/package/record_result', data)
  66. .then(res => {
  67. app.globalData.showToast('设置成功');
  68. this.getPackageDtail();
  69. })
  70. .finally(() => {
  71. setTimeout(() => {
  72. this.setData({
  73. bootBool:false
  74. })
  75. }, 3000);
  76. });
  77. },
  78. getPackageDtail() {
  79. app.$get('api/per/package/employee/info', { id: this.data.id }).then(res => {
  80. let data = res.data.data;
  81. let dimension = data.dimension;
  82. let relevance_employee = data.relevance_employee;
  83. dimension.forEach((item, index) => {
  84. if (item.index.length > 0) {
  85. item.index.forEach((item2, index2) => {
  86. item2.wdName = item.name;
  87. item2.userName = relevance_employee.name;
  88. item2.userId = relevance_employee.id;
  89. item2.dept_list = relevance_employee.dept_list;
  90. item2.dil = [
  91. {
  92. lab: '考核标准',
  93. prop: item2.per_remark ? item2.per_remark : null
  94. },
  95. { lab: '目标值', prop: item2.target ? item2.target : null },
  96. { lab: '权重%', prop: item2.weight ? item2.weight : null },
  97. { lab: '备注', prop: item2.remark ? item2.remark : null }
  98. ];
  99. });
  100. }
  101. });
  102. let flow = data.flow;
  103. let list = []; // 结果值录入集合
  104. flow.forEach(item => {
  105. if (item.code == 'result_value') {
  106. item.target.forEach(item2 => {
  107. if (item2.employee_id == app.globalData.userData.id) {
  108. list = item2.list;
  109. // status = item2.status;
  110. }
  111. });
  112. }
  113. });
  114. let statusList = []; // 已录入指标
  115. let noStatusList = []; // 未录入指标
  116. list.forEach(item => {
  117. if (item.status == 2) {
  118. dimension[item.dimension_key].index[item.index_key].message = item;
  119. statusList.push(dimension[item.dimension_key].index[item.index_key]);
  120. }
  121. if (item.status == 1) {
  122. dimension[item.dimension_key].index[item.index_key].message = item;
  123. if (item.result_cache) {
  124. // 是否有暂存的数据有就显示出来
  125. dimension[item.dimension_key].index[item.index_key].result = item.result_cache;
  126. }
  127. noStatusList.push(dimension[item.dimension_key].index[item.index_key]);
  128. }
  129. });
  130. this.setData({
  131. statusList: statusList,
  132. noStatusList: noStatusList,
  133. })
  134. if (this.data.tabIndex == 1) {
  135. this.setData({
  136. rvenotList: this.data.noStatusList
  137. })
  138. } else if (this.data.tabIndex == 2) {
  139. this.setData({
  140. rvenotList: this.data.statusList
  141. })
  142. }
  143. this.setData({
  144. age: { num1: noStatusList.length, num2: statusList.length }
  145. })
  146. })
  147. .finally(() => {
  148. this.skeletonLoad = false;
  149. });
  150. }
  151. });