detail.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>反馈详情</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=312"/>
  10. <link rel="stylesheet" href="../../../assets/module/uParas.css?v=312"/>
  11. </head>
  12. <body>
  13. <style type="text/css">
  14. .divClass{
  15. padding-top: 10px;
  16. }
  17. .videoClass{
  18. width: 400px;
  19. height: 200px;
  20. border-radius: 6px !important;
  21. margin: -1px;
  22. }
  23. .videoDiv video{
  24. width: 200px;
  25. height: 100px;
  26. border-radius: 6px !important;
  27. margin: -1px;
  28. }
  29. </style>
  30. <!-- 加载动画 -->
  31. <div class="page-loading">
  32. <div class="ball-loader">
  33. <span></span><span></span><span></span><span></span>
  34. </div>
  35. </div>
  36. <!-- 正文开始 -->
  37. <div class="layui-fluid">
  38. <div class="layui-card">
  39. <div class="layui-card-body">
  40. <div class="layui-card-header">
  41. 反馈详情
  42. <div class="layui-inline pull-right">
  43. <button onclick="history.back()" class="layui-btn layui-btn-sm layui-btn-normal">返回</button>
  44. </div>
  45. <div class="layui-inline pull-right" style="padding-right: 15px;display: none" id="handleDiv">
  46. <button id="closeQuestion" class="layui-btn layui-btn-sm layui-btn-warm">关闭反馈</button>
  47. <button id="addHiddenDanger" class="layui-btn layui-btn-sm layui-btn-danger">下发为隐患</button>
  48. </div>
  49. </div>
  50. <div class="layui-card-body">
  51. <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
  52. <div class="layui-tab-content" style="height: auto;">
  53. <div class="layui-tab-item layui-show">
  54. <fieldset class="layui-elem-field layui-field-title">
  55. <legend>基本信息</legend>
  56. </fieldset>
  57. <div class="layui-row" >
  58. <div class="layui-col-xs12">
  59. <div class="layui-form">
  60. <table class="layui-table">
  61. <!--<colgroup>-->
  62. <!--<col width="150">-->
  63. <!--<col width="150">-->
  64. <!--<col width="200">-->
  65. <!--<col>-->
  66. <!--</colgroup>-->
  67. <thead>
  68. </thead>
  69. <tbody>
  70. <tr>
  71. <th width="150">问题/隐患 所在部门</th>
  72. <td id="executorGroupName" colspan="3"></td>
  73. </tr>
  74. <tr>
  75. <th width="150">反馈人员</th>
  76. <td id="executorName" ></td>
  77. <th width="150">提交时间</th>
  78. <td id="createdTime"></td>
  79. </tr>
  80. <tr>
  81. <th width="150">处理人员</th>
  82. <td id="disposeName"></td>
  83. <th width="150">处理时间</th>
  84. <td id="updatedTime"></td>
  85. </tr>
  86. <tr>
  87. <th width="150">处理结果</th>
  88. <td id="resultValue"></td>
  89. <th width="150">处理结果描述</th>
  90. <td id="resultRemark"></td>
  91. </tr>
  92. <tr>
  93. <th width="150" >反馈描述</th>
  94. <td colspan="3" id="spotRemark">
  95. </td>
  96. </tr>
  97. <tr>
  98. <th width="150">现场照片</th>
  99. <td id="spotImg" colspan="3"></td>
  100. </tr>
  101. <tr>
  102. <th width="150">现场视频</th>
  103. <td id="spotVideo" colspan="3"></td>
  104. </tr>
  105. </tbody>
  106. </table>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. <!-- 表单弹窗 -->
  118. <script type="text/html" id="modelTpl">
  119. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  120. <input type="hidden" class="layui-input" id="hdangerId" name="hdangerId"/>
  121. <input type="hidden" class="layui-input" id="hdangerReviewOn" name="hdangerReviewOn"/>
  122. <div class="divClass layui-col-md6">
  123. <label class="layui-form-label"><span class="layui-badge-dot"></span> 隐患名称</label>
  124. <div class="layui-input-block">
  125. <input type="text" class="layui-input" id="hdangerTitle" name="hdangerTitle" placeholder="请输入标题" maxlength="64"
  126. lay-verType="tips" lay-verify="required" required/>
  127. </div>
  128. </div>
  129. <div class="divClass layui-col-md6">
  130. <label class="layui-form-label"><span class="layui-badge-dot"></span> 隐患类型</label>
  131. <div class="layui-input-block">
  132. <select name="hdangerCatId" id="hdangerCatId" lay-verType="tips" lay-verify="required" required class="layui-input-block ">
  133. </select>
  134. </div>
  135. </div>
  136. <div class="divClass layui-col-md6">
  137. <label class="layui-form-label"><span class="layui-badge-dot"></span> 隐患等级</label>
  138. <div class="layui-input-block">
  139. <select id="hdangerLevel" name="hdangerLevel" lay-filter="layuiForm" lay-verType="tips" lay-verify="required"
  140. class="layui-input-block ">
  141. <option value="">点击选择</option>
  142. </select>
  143. </div>
  144. </div>
  145. <div class="divClass layui-col-md6">
  146. <label class="layui-form-label"><span class="layui-badge-dot"></span> 整改期限</label>
  147. <div class="layui-input-block">
  148. <input type="text" name="hdangerRetifyDeadline" id="hdangerRetifyDeadline"
  149. lay-verType="tips" lay-verify="required" class="layui-input" readonly>
  150. </div>
  151. </div>
  152. <div class="divClass layui-col-md6" id="hdangerReviewGroupDiv" style="display: none">
  153. <label class="layui-form-label"><span class="layui-badge-dot"></span> 评审部门</label>
  154. <div class="layui-input-block">
  155. <input type="text" id="hdangerReviewGroupName" class="layui-input" name="hdangerReviewGroupName"
  156. value=""
  157. placeholder="点击选择部门"
  158. class="form-control" readonly>
  159. <input type="hidden" id="hdangerReviewGroup" name="hdangerReviewGroup" readonly>
  160. <div id="menuContentReview" class="menuContent">
  161. <ul id="threeLevelGroupReview" class="ztree" style="margin-top:0;"></ul>
  162. </div>
  163. </div>
  164. </div>
  165. <div class="divClass layui-col-md6" id="hdangerReviewByDiv" style="display: none">
  166. <label class="layui-form-label"><span class="layui-badge-dot"></span> 评审人员</label>
  167. <div class="layui-input-block">
  168. <select id="hdangerReviewBy" name="hdangerReviewBy" lay-verType="tips" class="layui-input-block">
  169. <option value="">点击选择人员</option>
  170. </select>
  171. </div>
  172. </div>
  173. <div class="divClass layui-col-md6" id="hdangerRetifyGroupDiv" style="display: none">
  174. <label class="layui-form-label"><span class="layui-badge-dot"></span> 整改部门</label>
  175. <div class="layui-input-block">
  176. <input type="text" id="hdangerRetifyGroupName" class="layui-input" name="hdangerRetifyGroupName"
  177. value=""
  178. placeholder="点击选择部门"
  179. class="form-control" readonly>
  180. <input type="hidden" id="hdangerRetifyGroup" name="hdangerRetifyGroup" readonly>
  181. <div id="menuContentRetify" class="menuContent">
  182. <ul id="threeLevelGroupRetify" class="ztree" style="margin-top:0;"></ul>
  183. </div>
  184. </div>
  185. </div>
  186. <div class="divClass layui-col-md6" id="hdangerRetifyByDiv" style="display: none">
  187. <label class="layui-form-label "><span class="layui-badge-dot"></span> 整改人员</label>
  188. <div class="layui-input-block">
  189. <select id="hdangerRetifyBy" name="hdangerRetifyBy" class="layui-input-block"
  190. lay-filter="layuiFormRetify">
  191. <option value="">点击选择人员</option>
  192. </select>
  193. </div>
  194. </div>
  195. <div class="divClass layui-col-md6" id="hdangerAcceptedGroupDiv" style="display: none">
  196. <label class="layui-form-label"><span class="layui-badge-dot"></span> 验收部门</label>
  197. <div class="layui-input-block">
  198. <input type="text" id="hdangerAcceptedGroupName" class="layui-input" name="hdangerAcceptedGroupName"
  199. value=""
  200. placeholder="点击选择部门"
  201. class="form-control" readonly>
  202. <input type="hidden" id="hdangerAcceptedGroup" name="hdangerAcceptedGroup" readonly>
  203. <div id="menuContentAccepted" class="menuContent">
  204. <ul id="threeLevelGroupAccepted" class="ztree" style="margin-top:0;"></ul>
  205. </div>
  206. </div>
  207. </div>
  208. <div class="divClass layui-col-md6" id="hdangerAcceptedByDiv" style="display: none">
  209. <label class="layui-form-label"><span class="layui-badge-dot"></span> 验收人员</label>
  210. <div class="layui-input-block">
  211. <select id="hdangerAcceptedBy" name="hdangerAcceptedBy" class="layui-input-block"
  212. lay-verType="tips">
  213. <option value="">点击选择人员</option>
  214. </select>
  215. </div>
  216. </div>
  217. <div class="divClass layui-col-md12" >
  218. <label class="layui-form-label">现场描述</label>
  219. <div class="layui-input-block">
  220. <textarea class="layui-textarea" lay-verType="tips" lay-verify="required" placeholder="请输入描述"
  221. id="hdangerDesc" name="hdangerDesc" maxlength="500"></textarea>
  222. </div>
  223. </div>
  224. <!--附件-->
  225. <div class="divClass layui-col-md12">
  226. <label class="layui-form-label">现场照片</label>
  227. <div class="layui-input-block text-left">
  228. <div id="imageDiv" style="padding-top: 10px;"></div>
  229. </div>
  230. </div>
  231. <div class="divClass layui-col-md12">
  232. <label class="layui-form-label">现场视频</label>
  233. <div class="layui-input-block text-left">
  234. <div id="videoDiv" class="videoDiv" style="padding-top: 10px;"></div>
  235. </div>
  236. </div>
  237. <div class="layui-col-md12 text-center" style="padding-bottom: 10px;padding-top: 20px;">
  238. <button type="button" class="layui-btn" lay-filter="formSubmit" lay-submit>&emsp;提交&emsp;</button>
  239. <button type="button" class="layui-btn layui-btn-normal" ew-event="closePageDialog">&emsp;取消&emsp;</button>
  240. </div>
  241. </form>
  242. </script>
  243. <!-- js部分 -->
  244. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  245. <script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
  246. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  247. <script>
  248. var layer;
  249. layui.use(['layer', 'form', 'table', 'util', 'admin', 'uParas','laydate','_groupTree'], function () {
  250. var $ = layui.jquery;
  251. layer = layui.layer;
  252. var form = layui.form;
  253. var util = layui.util;
  254. var admin = layui.admin;
  255. var uParas = layui.uParas;
  256. var laydate = layui.laydate;
  257. var _groupTree = layui._groupTree;
  258. //debugger;
  259. var feedbackId = uParas.getUrlParam("feedbackId");
  260. var imghtml = "";
  261. var videohtml = "";
  262. var hdangerDesc = ""
  263. admin.req(uParas.baseUrl + '/ent/feedback/getDetail',{"feedbackId":feedbackId} , function (res) {
  264. if (res.code == 1) {
  265. var feedback = res.data;
  266. if(feedback != null){
  267. hdangerDesc = feedback.spotRemark;
  268. $("#spotRemark").text(feedback.spotRemark);
  269. $("#executorName").text(feedback.executorName);
  270. $("#createdTime").text(feedback.createdTime);
  271. $("#disposeName").text(feedback.disposeName);
  272. $("#updatedTime").text(feedback.updatedTime);
  273. $("#resultRemark").text(feedback.resultRemark);
  274. $("#executorGroupName").text(feedback.executorGroupName);
  275. if (feedback.resultValue == 0){
  276. $("#resultValue").text("未处理");
  277. $("#handleDiv").show();
  278. }else{
  279. $("#resultValue").text("已处理");
  280. }
  281. var subList = feedback.attachList;
  282. if (subList != null && subList.length > 0){
  283. $.each(subList,function (i, item) {
  284. if (item.attachType == 'image'){
  285. imghtml += '<img onclick="openImage(\'' +item.attachPath +'\')" style="width: 150px;height: 100px;border-radius: 6px !important;padding-right: 10px;" src="'+ item.attachPath +'"/>';
  286. } else if(item.attachType == 'video'){
  287. videohtml += '<video class="videoClass" src="' +item.attachPath + '" controls="controls"></video>';
  288. }
  289. });
  290. $('#spotImg').html(imghtml);
  291. $('#spotVideo').html(videohtml);
  292. }
  293. }
  294. }
  295. }, 'get');
  296. //关闭反馈
  297. $("#closeQuestion").click(function () {
  298. layer.confirm('确定要关闭反馈吗?', {
  299. skin: 'layui-layer-admin',
  300. shade: .1
  301. }
  302. , function (i) {
  303. layer.close(i);
  304. layer.load();
  305. admin.req(uParas.baseUrl + '/ent/feedback/close',{"feedbackId":feedbackId},function (res) {
  306. layer.closeAll('loading');
  307. if (res.code == 1) {
  308. layer.msg(res.msg);
  309. history.go(-1);
  310. } else {
  311. layer.msg(res.msg);
  312. }
  313. },'POST');
  314. });
  315. });
  316. $("#addHiddenDanger").click(function () {
  317. admin.req(uParas.baseUrl + '/ent/sysInfo/getInfo',null,function (resp) {
  318. if (resp.code == 1){
  319. //1评审,0不评审
  320. showAddModel(resp.data.hdangerReviewOn);
  321. }else{
  322. layer.msg(res.msg);
  323. }
  324. });
  325. });
  326. function showAddModel(hdangerReviewOn) {
  327. admin.open({
  328. type: 1,
  329. title: "填写隐患信息并提交",
  330. offset: 'auto',
  331. area: '800px',
  332. content: $('#modelTpl').html(),
  333. success: function (layero, dIndex) {
  334. //debugger
  335. form.render();
  336. $("#hdangerId").val(feedbackId);
  337. $("#hdangerReviewOn").val(hdangerReviewOn);
  338. /*隐患等级*/
  339. uParas.initSimpleSelect("hdangerLevel", "modelForm", "/admin/common/getHdangerLevelList", "keyName", "keyValue");
  340. /*隐患类型*/
  341. uParas.initSimpleSelect("hdangerCatId", "modelForm", "/admin/common/getCommonClassifyesByCatType?catType=1", "catName", "catId");
  342. var groupUrl = '/admin/common/getFindGroupLists';
  343. //1评审,0不评审
  344. if (hdangerReviewOn == 1){
  345. $("#hdangerReviewGroupDiv").show();
  346. $("#hdangerReviewByDiv").show();
  347. /*评审部门and人员*/
  348. _groupTree.initgroupTreeAndUsers(groupUrl,"threeLevelGroupReview","hdangerReviewGroupName",
  349. "hdangerReviewGroup","menuContentReview","hdangerReviewBy","modelForm");
  350. }else{
  351. $("#hdangerRetifyGroupDiv").show();
  352. $("#hdangerRetifyByDiv").show();
  353. $("#hdangerAcceptedGroupDiv").show();
  354. $("#hdangerAcceptedByDiv").show();
  355. /*整改部门and人员*/
  356. _groupTree.initgroupTreeAndUsers(groupUrl,"threeLevelGroupRetify","hdangerRetifyGroupName",
  357. "hdangerRetifyGroup","menuContentRetify","hdangerRetifyBy","modelForm");
  358. /*验收部门and人员*/
  359. _groupTree.initgroupTreeAndUsers(groupUrl,"threeLevelGroupAccepted","hdangerAcceptedGroupName",
  360. "hdangerAcceptedGroup","menuContentAccepted","hdangerAcceptedBy","modelForm");
  361. }
  362. $("#hdangerDesc").val(hdangerDesc);
  363. $("#imageDiv").html(imghtml);
  364. $("#videoDiv").html(videohtml);
  365. //时间选择
  366. laydate.render({
  367. elem: '#hdangerRetifyDeadline',
  368. min:new Date().valueOf(),
  369. format: 'yyyy-MM-dd HH:mm:ss',
  370. type: 'datetime'
  371. });
  372. //保存处理
  373. form.on('submit(formSubmit)', function(data) {
  374. //debugger
  375. //1评审,0不评审
  376. if (hdangerReviewOn == 1){
  377. if (data.field.hdangerReviewGroup == null || data.field.hdangerReviewGroup == "" || data.field.hdangerReviewGroup == "-1"){
  378. layer.msg("请选择评审部门");
  379. return false;
  380. }
  381. if (data.field.hdangerReviewBy == null || data.field.hdangerReviewBy == "" || data.field.hdangerReviewBy == "-1"){
  382. layer.msg("请选择评审人员");
  383. return false;
  384. }
  385. }else{
  386. if (data.field.hdangerRetifyGroup == null || data.field.hdangerRetifyGroup == "" || data.field.hdangerRetifyGroup == "-1"){
  387. layer.msg("请选择整改部门");
  388. return false;
  389. }
  390. if (data.field.hdangerRetifyBy == null || data.field.hdangerRetifyBy == "" || data.field.hdangerRetifyBy == "-1"){
  391. layer.msg("请选择整改人员");
  392. return false;
  393. }
  394. if (data.field.hdangerAcceptedGroup == null || data.field.hdangerAcceptedGroup == "" || data.field.hdangerAcceptedGroup == "-1"){
  395. layer.msg("请选择验收部门");
  396. return false;
  397. }
  398. if (data.field.hdangerAcceptedBy == null || data.field.hdangerAcceptedBy == "" || data.field.hdangerAcceptedBy == "-1"){
  399. layer.msg("请选择验收人员");
  400. return false;
  401. }
  402. }
  403. layer.load();
  404. var saveUrl = uParas.baseUrl + "/ent/hiddenDanger/saveFeedbackHiddenDanger";
  405. admin.req(saveUrl, data.field, function(resp) {
  406. layer.closeAll('loading');
  407. if (resp.code == 1) {
  408. layer.close(dIndex);
  409. layer.msg(resp.msg);
  410. location.reload();
  411. } else {
  412. layer.msg(resp.msg);
  413. }
  414. },'POST');
  415. return false;
  416. });
  417. }
  418. });
  419. }
  420. });
  421. // function showImg(src) {
  422. // var imgHtml = "<img src='" + src + "' width='1000px' height='650'/>";
  423. // layer.open({
  424. // type: 1,
  425. // shade: 0.1,
  426. // offset: 'auto',
  427. // area: [1000 + 'px',650+'px'], // area: [width + 'px',height+'px'] //原图显示
  428. // shadeClose:true,
  429. // scrollbar: false,
  430. // title: "图片附件预览", //不显示标题
  431. // content: imgHtml, //捕获的元素,注意:最好该指定的元素要存放在body最外层,否则可能被其它的相对元素所影响
  432. // // cancel: function () {
  433. // // layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', { time: 5000, icon: 6 });
  434. // // }
  435. // });
  436. // }
  437. </script>
  438. </body>
  439. </html>