info.ejs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <div class="panel-content">
  2. <div class="panel-title fluid">
  3. <div class="title-main d-flex justify-content-between">
  4. <div class="d-inline-block">
  5. <a href="/sp/<%- ctx.subProject.id %>/construction/<%- ctx.constructionTender.id %>/list" class="mr-2"><i class="fa fa-chevron-left mr-2"></i>
  6. <span>返回</span></a><%- (ctx.constructionTender.name.length > 20 ? ctx.constructionTender.name.substring(0,20) + '...' : ctx.constructionTender.name) %> / <%- logInfo.code %></div>
  7. <div>
  8. <% if (ctx.session.sessionUser.accountId === logInfo.shenpi_uid && logInfo.status === constructionConst.status.checking) { %>
  9. <a href="javascript:void(0);" id="check-btn" class="btn btn-sm btn-success pull-right mr-2">确认审签</a>
  10. <% } else if (ctx.session.sessionUser.accountId === logInfo.report_uid && logInfo.status === constructionConst.status.uncheck) { %>
  11. <a href="javascript:void(0);" id="start-btn" class="btn btn-sm btn-primary pull-right mr-2">提交审签</a>
  12. <% } else { %>
  13. <span class="pull-right <%- constructionConst.statusClass[logInfo.status] %>"><%- constructionConst.statusString[logInfo.status] %></span>
  14. <% } %>
  15. <!-- 提交审签后,可再次编辑,提供取消按钮 -->
  16. <% if (logInfo.report_uid === ctx.session.sessionUser.accountId && logInfo.status === constructionConst.status.checking) { %>
  17. <span class=" pull-right mr-2">|</span>
  18. <!--<a href="javascript:void(0);" id="edit-end" class="btn btn-sm btn-secondary pull-right mr-2" style="display: none">取消</a>-->
  19. <a href="javascript:void(0);" id="edit-start" data-target="#" class="btn btn-sm btn-outline-primary pull-right mr-2">编辑</a>
  20. <% } %>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="content-wrap">
  25. <div class="c-body">
  26. <div class="sjs-height-0">
  27. <div class="col-9 px-3 mx-auto">
  28. <div class="card">
  29. <div class="card-header">
  30. 基本内容
  31. </div>
  32. <div class="card-body">
  33. <div class="row">
  34. <div class="col-6 form-group row mb-2 mr-2">
  35. <label class="col-form-label col-2 text-right px-0">日志编号:</label>
  36. <input type="text" class="form-control form-control-sm col" value="<%- logInfo.code %>" readonly>
  37. </div>
  38. <div class="col-6 form-group row mb-2">
  39. <label class="col-form-label col-2 text-right px-0">日志类型:</label>
  40. <input type="text" class="form-control form-control-sm col" value="<%- constructionConst.type[logInfo.type] %>" readonly>
  41. </div>
  42. </div>
  43. <div class="row">
  44. <div class="col-6 form-group row mb-2 mr-2">
  45. <label class="col-form-label col-2 text-right px-0">施工日期:</label>
  46. <input type="text" class="form-control form-control-sm col" value="<%- logInfo.period %>" readonly>
  47. </div>
  48. <div class="col-6 form-group row mb-2">
  49. <label class="col-form-label col-2 text-right px-0">施工部位:</label>
  50. <input type="text" class="form-control form-control-sm col edit-input" value="<%- logInfo.log_json.parts %>" data-id="parts"
  51. <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>>
  52. </div>
  53. </div>
  54. <div class="row">
  55. <div class="col-6 form-group row mb-2 mr-2">
  56. <label class="col-form-label col-2 text-right px-0">填报人:</label>
  57. <input type="text" class="form-control form-control-sm col" value="<%- logInfo.report_username %>" readonly>
  58. </div>
  59. <div class="col-6 form-group row mb-2">
  60. <label class="col-form-label col-2 text-right px-0">审签人:</label>
  61. <% if (logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId && logInfo.start_time === null) { %>
  62. <div class="dropdown text-right align-middle pt-1" id="show-shenpi-btn" <% if (logInfo.shenpi_uid) { %>style="display: none" <% } %>>
  63. <button class="btn btn-outline-primary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  64. 选择审批人
  65. </button>
  66. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton" style="width:220px">
  67. <div class="mb-2 p-2"><input class="form-control form-control-sm" placeholder="姓名/手机 检索"
  68. id="gr-search" autocomplete="off"></div>
  69. <dl class="list-unstyled book-list">
  70. <% accountGroup.forEach((group, idx) => { %>
  71. <dt><a href="javascript: void(0);" class="acc-btn" data-groupid="<%- idx %>"
  72. data-type="hide"><i class="fa fa-plus-square"></i></a> <%- group.groupName %></dt>
  73. <div class="dd-content" data-toggleid="<%- idx %>">
  74. <% group.groupList.forEach(item => { %>
  75. <% if (item.id !== logInfo.report_uid) {%>
  76. <dd class="border-bottom p-2 mb-0 " data-id="<%- item.id %>">
  77. <p class="mb-0 d-flex"><span class="text-primary"><%- item.name %></span><span
  78. class="ml-auto"><%- item.mobile %></span></p>
  79. <span class="text-muted"><%- item.role %></span>
  80. </dd>
  81. <% } %>
  82. <% });%>
  83. </div>
  84. <% }) %>
  85. </dl>
  86. </div>
  87. </div>
  88. <div class="col-2" id="show-shenpi" <% if (!logInfo.shenpi_uid) { %>style="display: none" <% } %>>
  89. <label class="col-form-label"><span><%- logInfo.shenpi_username %></span><i class="fa fa-remove text-danger px-1 remove-shenpi-btn" style="cursor: pointer"></i></label>
  90. </div>
  91. <% } else { %>
  92. <input type="text" id="show-shenpi-input" class="form-control form-control-sm col" value="<%- logInfo.shenpi_username %>" readonly>
  93. <% } %>
  94. </div>
  95. </div>
  96. <div class="row">
  97. <div class="col-6 form-group row mb-2 mr-2">
  98. <label class="col-form-label col-2 text-right px-0">天气:</label>
  99. <textarea class="form-control form-control-sm col edit-textarea" data-id="weather" rows="3" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.weather %></textarea>
  100. </div>
  101. <div class="col-6 form-group row mb-2">
  102. <label class="col-form-label col-2 text-right px-0">温度:</label>
  103. <textarea class="form-control form-control-sm col edit-textarea" data-id="temperature" rows="3" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.temperature %></textarea>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="card">
  109. <div class="card-header">
  110. 施工情况记录(施工内容、机械作业、班组工作、施工存在问题)
  111. </div>
  112. <div class="card-body p-0">
  113. <textarea class="form-control form-control-sm edit-textarea" data-id="condition" rows="5" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.condition %></textarea>
  114. </div>
  115. </div>
  116. <div class="card">
  117. <div class="card-header">
  118. 技术、质量、安全工作记录(技术质量安全活动、检查评定验收、技术质量安全问题)
  119. </div>
  120. <div class="card-body p-0">
  121. <textarea class="form-control form-control-sm edit-textarea" data-id="work" rows="5" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.work %></textarea>
  122. </div>
  123. </div>
  124. <div class="card">
  125. <div class="card-header">
  126. 人员、材料(构配件)、机械到场及运行情况
  127. </div>
  128. <div class="card-body p-0">
  129. <textarea class="form-control form-control-sm edit-textarea" data-id="run" rows="5" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.run %></textarea>
  130. </div>
  131. </div>
  132. <div class="card">
  133. <div class="card-header">
  134. 其他事宜
  135. </div>
  136. <div class="card-body p-0">
  137. <textarea class="form-control form-control-sm edit-textarea" data-id="other" rows="5" <% if (!(logInfo.status === constructionConst.status.uncheck && logInfo.report_uid === ctx.session.sessionUser.accountId)) { %>readonly<% } %>><%- logInfo.log_json.other %></textarea>
  138. </div>
  139. </div>
  140. <div class="card">
  141. <div class="card-header d-flex">
  142. <span>附件</span>
  143. <% if (filePermission) { %>
  144. <div class="ml-auto">
  145. <a href="#upload" data-toggle="modal" class="btn btn-sm btn-light text-primary" data-placement="bottom" title="" data-original-title="添加清单"><i class="fa fa-cloud-upload" aria-hidden="true"></i> 上传附件</a>
  146. </div>
  147. <% } %>
  148. </div>
  149. <div class="card-body p-0">
  150. <table class="table table-bordered m-0" id="attList">
  151. <% if (attList.length !== 0) { %>
  152. <% for (const [index, att] of attList.entries()) { %>
  153. <tr class="text-center">
  154. <td width="5%"><%- index+1 %></td>
  155. <td class="text-left"><a href="<%- att.filepath %>" target="_blank"><%- att.filename %><%- att.fileext %></a></td>
  156. <td width="15%"><%- moment(att.upload_time).format("YYYY-MM-DD HH:mm:ss") %></td>
  157. <td width="10%"><a href="/sp/<%- ctx.subProject.id %>/construction/<%- ctx.constructionTender.id %>/log/<%- logInfo.id %>/file/<%- att.id %>/download" class="mr-2" title="下载"><i class="fa fa-download"></i></a>
  158. <% if (att.uid === ctx.session.sessionUser.accountId && (logInfo.status === constructionConst.status.checked ? Boolean(att.extra_upload) : true )) { %>
  159. <a href="javascript:void(0)" class="mr-2 delete-file" data-attid="<%- att.id %>" title="删除附件"><span class="fa fa-trash text-danger"></span></a>
  160. <% } %>
  161. </td>
  162. </tr>
  163. <% } %>
  164. <% } %>
  165. </table>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <script>
  174. const tender_id = <%- ctx.constructionTender.id %>;
  175. const log_id = <%- logInfo.id %>;
  176. const cur_uid = <%- logInfo.report_uid %>;
  177. const accountId = parseInt('<%- ctx.session.sessionUser.accountId %>');
  178. const logStatus = parseInt('<%- logInfo.status %>');
  179. const filePermission = <%- filePermission %>;
  180. const constructionStatusConst = JSON.parse(unescape('<%- escape(JSON.stringify(constructionConst.status)) %>'));
  181. <% if (ctx.session.sessionUser.accountId === logInfo.report_uid && logInfo.status === constructionConst.status.uncheck) { %>
  182. const accountGroup = JSON.parse(unescape('<%- escape(JSON.stringify(accountGroup)) %>'));
  183. const accountList = JSON.parse(unescape('<%- escape(JSON.stringify(accountList)) %>'));
  184. <% } %>
  185. const whiteList = JSON.parse('<%- JSON.stringify(whiteList) %>');
  186. let attData = JSON.parse(unescape('<%- escape(JSON.stringify(attList)) %>'));
  187. </script>