deptJob_Summary_Score.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
  6. <title></title>
  7. <script src="../../../js/mui.min.js"></script>
  8. <script type="text/javascript" src="../../../js/jquery-1.11.2.min.js"></script>
  9. <link rel="stylesheet" type="text/css" href="../../../css/mui.min.css" />
  10. <link href="../../../css/OA-style.css" rel="stylesheet" />
  11. <style>
  12. body {
  13. background-color: #FFFFFF;
  14. }
  15. /* table标题背景 */
  16. .th-back {
  17. background-color: #00BCD4;
  18. color: #fff;
  19. }
  20. .font-color {
  21. color: #00BCD4;
  22. }
  23. .mui-content {
  24. background-color: #FFFFFF;
  25. }
  26. </style>
  27. </head>
  28. <header class="mui-bar mui-bar-nav">
  29. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="color: #FFFFFF;"></a>
  30. <h1 class="mui-title">
  31. <span >部门月度评分表</span>
  32. </h1>
  33. <button class="mui-pull-right" onclick="saveScore()" style="margin: 5px;">评分</button>
  34. </header>
  35. <div class="mui-content" style="overflow: auto;width: 200%;">
  36. <div id="detailDiv">
  37. <span id="title" style="text-align: center; display: block; font-size: 25px; margin: 10px;"></span>
  38. <span id="deptname" style="text-align: center; display: block; font-size: 25px; margin: 10px;"></span>
  39. <table id="tablePlan" border="1" style="background-color: #FFFFFF;margin: 5px;text-align: center;border: #e0e0e0 1px solid;">
  40. <tbody>
  41. <tr>
  42. <th width="12%" rowspan="2">项目</th>
  43. <th width="10%" rowspan="2">工作类别</th>
  44. <th width="5%" rowspan="2">序号</th>
  45. <th width="30%" rowspan="2">工作内容</th>
  46. <th width="5%" rowspan="2">工作量占比</th>
  47. <th width="20%" rowspan="2">评分标准</th>
  48. <th width="20%" rowspan="2">评分依据</th>
  49. <th width="5%" rowspan="2">自评</th>
  50. <th width="5%" colspan="8">评分人员</th>
  51. </tr>
  52. <tr >
  53. <th id="job_mutual1" width="5%"></th>
  54. <th id="job_mutual2" width="5%"></th>
  55. <th id="job_mutual3" width="5%"></th>
  56. <th id="job_mutual4" width="5%"></th>
  57. <th id="job_mutual5" width="5%"></th>
  58. <th id="job_mutual6" width="5%"></th>
  59. <th id="job_leader_score" width="5%"></th>
  60. <th id="job_manager_score" width="5%"></th>
  61. </tr>
  62. <tr v-for="item in itemAs">
  63. <td> {{item.job_project}}</td>
  64. <td> {{item.job_type_of_work}}</td>
  65. <td> {{item.job_serial_number}}</td>
  66. <td> {{item.job_content}}</td>
  67. <td>
  68. <template v-if="item.job_workload_share != null ">
  69. {{ Number(item.job_workload_share*100).toFixed(0) }}%
  70. </template>
  71. </td>
  72. <td> {{item.job_score_standard}}</td>
  73. <td> {{item.job_score_basis}}</td>
  74. <td>
  75. <template v-if="item.job_self_assessment != null ">
  76. {{ Number(item.job_self_assessment*100).toFixed(0) }}%
  77. </template>
  78. </td>
  79. <td>
  80. <template v-if="item.job_mutual1 != null ">
  81. {{ Number(item.job_mutual1*100).toFixed(0) }}%
  82. </template>
  83. </td>
  84. <td>
  85. <template v-if="item.job_mutual2 != null ">
  86. {{ Number(item.job_mutual2*100).toFixed(0) }}%
  87. </template>
  88. </td>
  89. <td>
  90. <template v-if="item.job_mutual3 != null ">
  91. {{ Number(item.job_mutual3*100).toFixed(0) }}%
  92. </template>
  93. </td>
  94. <td>
  95. <template v-if="item.job_mutual4 != null ">
  96. {{ Number(item.job_mutual4*100).toFixed(0) }}%
  97. </template>
  98. </td>
  99. <td>
  100. <template v-if="item.job_mutual5 != null ">
  101. {{ Number(item.job_mutual5*100).toFixed(0) }}%
  102. </template>
  103. </td>
  104. <td>
  105. <template v-if="item.job_mutual6 != null ">
  106. {{ Number(item.job_mutual6*100).toFixed(0) }}%
  107. </template>
  108. </td>
  109. <td>{{item.job_leader_score}}</td>
  110. <td>{{item.job_manager_score }}</td>
  111. </tr>
  112. </tbody>
  113. </table>
  114. </div>
  115. </div>
  116. <script src="../../../js/vue.min.js"></script>
  117. <script src="../../../js/config.js"></script>
  118. <script src="../../../js/app.js"></script>
  119. <script>
  120. mui.init();
  121. var vmA = new Vue({
  122. el: '#detailDiv',
  123. data: {
  124. itemAs: [], //列表信息流数据
  125. itemBs: [] //列表信息流数据
  126. }
  127. });
  128. var Excelid ;
  129. var job_type ;
  130. var title ;
  131. var deptname ;
  132. mui.plusReady(function() {
  133. self = plus.webview.currentWebview();
  134. Excelid = self.Excelid; //excel主键
  135. job_type = self.job_type; //类型 工作计划 | 工作总结
  136. title = self.title; //excel标题
  137. deptname = self.deptname; //excel部门
  138. document.getElementById("title").innerHTML = title;
  139. document.getElementById("deptname").innerHTML = deptname;
  140. doDetail(Excelid,job_type)
  141. });
  142. function doDetail(Excelid,job_type) {
  143. var url = API.API_URL();
  144. var state = app.getState(); //获取登陆信息
  145. var staffId = state.user.useId;
  146. var obj = {
  147. 'serviceId': 'oa_2018A1126GetDeptJobDetail',
  148. 'params': '{Excelid:' + Excelid + ',jobtype:"' + job_type + '"}'
  149. };
  150. mui.ajax(url, {
  151. dataType: 'json', //服务器返回json格式数据
  152. type: 'post', //HTTP请求类型
  153. data: obj,
  154. timeout: 10000, //超时时间设置为10秒;
  155. headers: {
  156. 'Accept': 'application/json'
  157. }, //超时时间设置为10秒;
  158. success: function(data) {
  159. if(data.returnCode == "0") {
  160. var result = data.returnParams.Rows;
  161. var Rules = data.returnParams.Rules;
  162. //console.log(JSON.stringify(data));
  163. if(result.length > 0) {
  164. vmA.itemAs = vmA.itemAs.concat(result);
  165. for(var i=0; i<Rules.length; i++ ){
  166. var deptName = Rules[i].score_user_deptname;
  167. var scoreUser = Rules[i].score_username;
  168. scoreUser = scoreUser.substring(0,scoreUser.indexOf("(")); //替换成该值
  169. //console.log(deptName+'/'+scoreUser);
  170. $('#'+Rules[i].set_type).text(deptName+'/'+scoreUser);
  171. }
  172. vmA.$nextTick(function(){ //数据加载完成之后
  173. var obj = $('#tablePlan');
  174. rowSpan(1,obj);
  175. rowSpan(2,obj);
  176. rowSpan(15,obj);
  177. rowSpan(16,obj);
  178. });
  179. }
  180. }
  181. },
  182. error: function(xhr, type, errorThrown) {}
  183. });
  184. }
  185. function saveScore(){
  186. var page = "deptJob_Summary_DoScore.html";
  187. mui.openWindow({
  188. createNew: true,
  189. url: page,
  190. extras: {
  191. Excelid: Excelid,
  192. job_type: job_type,
  193. title : title,
  194. deptname : deptname
  195. }
  196. });
  197. }
  198. function rowSpan(num,obj){
  199. var colIdx = num-1;
  200. obj.each(function () {
  201.             var that;
  202.             $('tr', this).each(function (row) {
  203.                 $('td:eq(' + colIdx + ')', this).filter(':visible').each(function (col) {
  204.                     if (that != null && $(this).html() == $(that).html()) {
  205.                         rowspan = $(that).attr("rowSpan");
  206.                         if (rowspan == undefined) {
  207.                             $(that).attr("rowSpan", 1);
  208.                             rowspan = $(that).attr("rowSpan");
  209.                         }
  210.                         rowspan = Number(rowspan) + 1;
  211.                         $(that).attr("rowSpan", rowspan);
  212.                         $(this).hide();
  213.                     } else {
  214.                         that = this;
  215.                     }
  216.                 });
  217.             });
  218.         });
  219. }
  220. </script>
  221. </html>