resultValueEntry.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. setTimeout(() => {
  70. this.setData({
  71. bootBool:false
  72. })
  73. }, 3000);
  74. })
  75. },
  76. getPackageDtail() {
  77. app.$get('api/per/package/employee/info', { id: this.data.id }).then(res => {
  78. let data = res.data.data;
  79. let dimension = data.dimension;
  80. let relevance_employee = data.relevance_employee;
  81. dimension.forEach((item, index) => {
  82. if (item.index.length > 0) {
  83. item.index.forEach((item2, index2) => {
  84. item2.wdName = item.name;
  85. item2.userName = relevance_employee.name;
  86. item2.userId = relevance_employee.id;
  87. item2.dept_list = relevance_employee.dept_list;
  88. item2.dil = [
  89. {
  90. lab: '考核标准',
  91. prop: item2.per_remark ? item2.per_remark : null
  92. },
  93. { lab: '目标值', prop: item2.target ? item2.target : null },
  94. { lab: '权重%', prop: item2.weight ? item2.weight : null },
  95. { lab: '备注', prop: item2.remark ? item2.remark : null }
  96. ];
  97. });
  98. }
  99. });
  100. let flow = data.flow;
  101. let list = []; // 结果值录入集合
  102. flow.forEach(item => {
  103. if (item.code == 'result_value') {
  104. item.target.forEach(item2 => {
  105. if (item2.employee_id == app.globalData.userData.id) {
  106. list = item2.list;
  107. // status = item2.status;
  108. }
  109. });
  110. }
  111. });
  112. let statusList = []; // 已录入指标
  113. let noStatusList = []; // 未录入指标
  114. list.forEach(item => {
  115. if (item.status == 2) {
  116. dimension[item.dimension_key].index[item.index_key].message = item;
  117. statusList.push(dimension[item.dimension_key].index[item.index_key]);
  118. }
  119. if (item.status == 1) {
  120. dimension[item.dimension_key].index[item.index_key].message = item;
  121. if (item.result_cache) {
  122. // 是否有暂存的数据有就显示出来
  123. dimension[item.dimension_key].index[item.index_key].result = item.result_cache;
  124. }
  125. noStatusList.push(dimension[item.dimension_key].index[item.index_key]);
  126. }
  127. });
  128. this.setData({
  129. statusList: statusList,
  130. noStatusList: noStatusList,
  131. })
  132. if (this.data.tabIndex == 1) {
  133. this.setData({
  134. rvenotList: this.data.noStatusList
  135. })
  136. } else if (this.data.tabIndex == 2) {
  137. this.setData({
  138. rvenotList: this.data.statusList
  139. })
  140. }
  141. this.setData({
  142. age: { num1: noStatusList.length, num2: statusList.length }
  143. })
  144. })
  145. }
  146. });