update_approve.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <title>编辑</title>
  7. <link rel="stylesheet" th:href="@{/lib/layui/css/layui.css}" media="all">
  8. <link rel="stylesheet" th:href="@{/css/public.css}" media="all">
  9. <link rel="stylesheet" th:href="@{/lib/font-awesome-4.7.0/css/font-awesome.min.css}" media="all">
  10. <style>
  11. body {
  12. background-color: #ffffff;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <form class="layui-form" action="" lay-filter="formDemo">
  18. <div class="layui-form layuimini-form" style="margin-right: -10px">
  19. <div class="layui-form-item layui-inline" style="width: 100%">
  20. <label class="layui-form-label" style="width: 95px">年度预算</label>
  21. <div class="layui-input-inline" style="width: 840px">
  22. <input type="hidden" id="id" name="id" class="layui-input" th:value="${approveInfo.id}">
  23. <input type="hidden" id="xmid" name="xmid" class="layui-input" th:value="${approveInfo.xmid}">
  24. <input type="hidden" id="tablename" name="tablename" class="layui-input"
  25. th:value="${approveInfo.tablename}">
  26. <input type="text" id="xm" name="xm" class="layui-input" readonly th:value="${approveInfo.xm}">
  27. </div>
  28. </div>
  29. <div class="layui-form-item layui-inline" style="width: 100%">
  30. <label class="layui-form-label" style="width: 95px">状态</label>
  31. <div class="layui-input-inline" style="width: 600px">
  32. <input type="hidden" id="spzt" name="spzt" class="layui-input" th:value="${approveInfo.zt}">
  33. <input type="text" id="zt" name="zt" class="layui-input" readonly th:value="${approveInfo.zt}">
  34. </div>
  35. <div class="layui-input-inline" style="width: 230px">
  36. <input type="text" value="年度预算" class="layui-input" readonly>
  37. </div>
  38. </div>
  39. <div class="layui-form-item layui-inline" style="width: 100%">
  40. <label class="layui-form-label" style="width: 95px">审批操作</label>
  41. <div class="layui-input-inline" style="width: 840px">
  42. <select id="spcz" name="spcz" class="layui-input" lay-filter="spcz">
  43. <option value="审批通过">审批通过</option>
  44. <option value="返回修改">返回修改</option>
  45. </select>
  46. </div>
  47. </div>
  48. <div class="layui-form-item layui-inline" style="width: 100%">
  49. <label class="layui-form-label" style="width: 95px">评语及意见</label>
  50. <div class="layui-input-inline" style="width: 840px" id="jyDiv1">
  51. <textarea class="layui-textarea" th:text="同意。" style="width: 840px;height: 100px" readonly></textarea>
  52. </div>
  53. <div class="layui-input-inline" style="width: 840px; display: none" id="jyDiv2">
  54. <textarea id="yj" name="yj" class="layui-textarea" style="width: 840px;height: 100px"></textarea>
  55. </div>
  56. </div>
  57. <!-- <div class="layui-form-item layui-inline" style="width: 100%">-->
  58. <!-- <label class="layui-form-label" style="width: 95px">选择常用语</label>-->
  59. <!-- <div class="layui-input-inline" style="width: 750px">-->
  60. <!-- <input type="text" id="cyy" name="cyy" class="layui-input" readonly>-->
  61. <!-- </div>-->
  62. <!-- <button type="button" class="layui-btn" lay-filter="cyySaveBtn" style="width: 80px">常用语</button>-->
  63. <!-- </div>-->
  64. <div class="layui-form-item layui-inline" style="width: 100%">
  65. <label class="layui-form-label" style="width: 95px">提交人</label>
  66. <div class="layui-input-inline" style="width: 370px">
  67. <input type="hidden" id="tjr" name="tjr" class="layui-input" th:value="${approveInfo.tjr}">
  68. <input type="text" id="tjrxm" name="tjrxm" class="layui-input" readonly th:value="${approveInfo.tjrxm}">
  69. </div>
  70. <label class="layui-form-label" style="width: 80px">提交时间</label>
  71. <div class="layui-input-inline" style="width: 350px">
  72. <input type="text" id="tjsj" name="tjsj" class="layui-input" readonly th:value="${approveInfo.tjsj}">
  73. </div>
  74. </div>
  75. <div class="layui-form-item layui-inline" style="width: 100%">
  76. <label class="layui-form-label" style="width: 95px">审核人</label>
  77. <div class="layui-input-inline" style="width: 370px">
  78. <input type="hidden" id="userId" name="userId" class="layui-input" th:value="${userInfo.userId}">
  79. <input type="hidden" id="shr" name="shr" class="layui-input" th:value="${approveInfo.shr}">
  80. <input type="text" id="shrxm" name="shrxm" class="layui-input" th:value="${approveInfo.shrxm}" readonly>
  81. </div>
  82. <label class="layui-form-label" style="width: 80px">审核时间</label>
  83. <div class="layui-input-inline" style="width: 350px">
  84. <input type="text" id="shsj" name="shsj" class="layui-input">
  85. </div>
  86. </div>
  87. <div class="layui-form-item layui-inline" style="width: 100%" id="spczDiv">
  88. <label class="layui-form-label" style="width: 95px">“审批”操作岗位</label>
  89. <div class="layui-input-inline" style="width: 370px">
  90. <input type="hidden" id="sjshgw" name="sjshgw" class="layui-input" th:value="${postInfo.postId}">
  91. <input type="text" id="sjshgwmc" name="sjshgwmc" th:value="${postInfo.postName}" class="layui-input"
  92. readonly>
  93. </div>
  94. <label class="layui-form-label" style="width: 80px">“审批”操作人</label>
  95. <div class="layui-input-inline" style="width: 350px">
  96. <input type="hidden" id="sjshr" name="sjshr" class="layui-input">
  97. <input type="text" id="sjshrxm" name="sjshrxm" class="layui-input" readonly>
  98. </div>
  99. </div>
  100. <!-- <div class="layui-form-item layui-inline" style="width: 100%">-->
  101. <!-- <label class="layui-form-label" style="width: 95px">当前岗位人员</label>-->
  102. <!-- <div class="layui-input-inline" style="width: 370px">-->
  103. <!-- <input type="hidden" id="dqgw" name="dqgw" class="layui-input" th:value="${userInfo.userId}">-->
  104. <!-- <input type="text" id="dqgwxm" name="dqgwxm" class="layui-input" th:value="${userInfo.name}" readonly>-->
  105. <!-- </div>-->
  106. <!-- </div>-->
  107. <!-- 右侧悬浮按钮 -->
  108. <div class="right-bottom-btn">
  109. <button type="button" class="layui-btn" lay-filter="viewNdysBtn">
  110. <i class="layui-icon layui-icon-file"></i>查看年度预算
  111. </button>
  112. <button type="button" class="layui-btn" lay-filter="viewSplistBtn">
  113. <i class="layui-icon layui-icon-file"></i>审批列表
  114. </button>
  115. <button type="button" class="layui-btn" lay-submit lay-filter="saveBtn">
  116. <i class="layui-icon layui-icon-ok"></i>提交
  117. </button>
  118. <button class="layui-btn" lay-filter="cancleBtn">
  119. <i class="layui-icon layui-icon-close"></i>取消
  120. </button>
  121. </div>
  122. </div>
  123. </form>
  124. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  125. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  126. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  127. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  128. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  129. <script type="text/javascript" th:inline="javascript">
  130. AjaxUtil.ctx = /*[[@{/}]]*/'';
  131. layui.use(['form', 'tableSelect', 'laydate', 'element'], function () {
  132. var form = layui.form,
  133. layer = layui.layer,
  134. laydate = layui.laydate,
  135. tableSelect = layui.tableSelect;
  136. var element = layui.element;
  137. var xmApproval = parent.getXmApproval();
  138. //提交时间
  139. laydate.render({
  140. elem: '#shsj',
  141. type: 'datetime',
  142. value: new Date()
  143. });
  144. element.render('checkbox');
  145. form.on('select(spcz)', function (data) {
  146. if (data.value == "审批通过")
  147. document.getElementById('spczDiv').style.display = 'block';
  148. else
  149. document.getElementById('spczDiv').style.display = 'none';
  150. });
  151. //“审批”操作人
  152. var postId = $("#sjshgw").val();
  153. if (postId != "") {
  154. tableSelect.render({
  155. elem: '#sjshrxm',
  156. checkedKey: 'userId',
  157. searchKey: 'name',
  158. searchPlaceholder: '搜索姓名',
  159. table: {
  160. url: AjaxUtil.ctx + 'sysUserPost/postUserlist/' + postId,
  161. cols: [
  162. [
  163. {type: "radio", fixed: 'left'},
  164. {type: 'numbers', align: 'center'},
  165. {field: 'name', width: '40%', title: '姓名', align: 'left'},
  166. {field: 'account', title: '账号', align: 'left'}
  167. ]
  168. ]
  169. },
  170. done: function (elem, data) {
  171. var NEWJSON = [];
  172. var NEWJSON1 = [];
  173. layui.each(data.data, function (index, item) {
  174. NEWJSON.push(item.name);
  175. NEWJSON1.push(item.userId);
  176. })
  177. elem.val(NEWJSON.join(","));
  178. $("#sjshr").val(NEWJSON1.join(","));
  179. }
  180. });
  181. }
  182. // 自动填充审批操作人gst
  183. var postId = $("#sjshgw").val();
  184. if (postId !== "") {
  185. AjaxUtil.get({
  186. url: AjaxUtil.ctx + 'sysUserPost/postUserlist/' + postId,
  187. success: function (res) {
  188. var users = res.data;
  189. var userIds = [];
  190. var userNames = [];
  191. /* for (var i = 0 ; i <users.length; i++) {
  192. if (i==0) {
  193. userIds.push(users[i].userId);
  194. userNames.push(users[i].name);
  195. }
  196. break;
  197. }
  198. */
  199. userIds.push(users[0].userId);
  200. userNames.push(users[0].name);
  201. $("#sjshr").val(userIds.join(","));
  202. $("#sjshrxm").val(userNames.join(","));
  203. },
  204. error: function (error) {
  205. }
  206. });
  207. }
  208. // 监听查看年度预算按钮
  209. $("button[lay-filter='viewNdysBtn']").click(function () {
  210. parent.layer.open({
  211. title: '查看年度预算',
  212. type: 2,
  213. shade: 0.3,
  214. maxmin: true,
  215. shadeClose: true,
  216. area: ['1010px', layerheight + 'px'],
  217. content: AjaxUtil.ctx + 'prjAnnualbudget/forApproveList',
  218. end: function (index) {
  219. layer.close(index);
  220. }
  221. });
  222. });
  223. // 监听审批列表按钮
  224. $("button[lay-filter='viewSplistBtn']").click(function () {
  225. parent.layer.open({
  226. title: '审批列表',
  227. type: 2,
  228. shade: 0.3,
  229. maxmin: true,
  230. shadeClose: true,
  231. area: ['1300px', '750px'],
  232. content: AjaxUtil.ctx + 'prjAnnualbudget/forApproveList?mc=' + xmApproval.xm,
  233. end: function (index) {
  234. layer.close(index);
  235. }
  236. });
  237. });
  238. // 监听提交按钮
  239. form.on('submit(saveBtn)', function (data) {
  240. var zt = $("#zt").val();
  241. var shr = $("#shr").val();
  242. var userId = $("#userId").val();
  243. console.log(shr);
  244. console.log(userId);
  245. if (userId != shr)
  246. Message.error("您不是指定的审核人!", 1500);
  247. else if (zt == '数据不匹配')
  248. Message.error("数据不匹配,请联系管理员处理!", 1500);
  249. else {
  250. var spcz = $("#spcz").val();
  251. if (spcz === '审批通过') {
  252. var sjshrxm = $("#sjshrxm").val();
  253. if (sjshrxm == '') {
  254. Message.error('“审批”操作人不能为空', 1000);
  255. return false;
  256. }
  257. }
  258. //基本信息
  259. layer.load(0, {shade: 0.1});
  260. AjaxUtil.post({
  261. url: AjaxUtil.ctx + "prjApproverecord/doUpdateApprove",
  262. data: data.field,
  263. success: function (res) {
  264. //更新审批状态
  265. var project = {
  266. "id": $("#xmid").val(),
  267. "spzt": ''
  268. }
  269. var zt = $("#zt").val();
  270. if (spcz == '返回修改')
  271. project.spzt = '未提交(返回)';
  272. else if (zt == '部门主任审批')
  273. project.spzt = '科技项目管理专责审批';
  274. else if (zt == '科技项目管理专责审批')
  275. project.spzt = '科技部部门主任审批';
  276. else if (zt == '科技部部门主任审批')
  277. project.spzt = '主管院领导审批';
  278. else if (zt == '主管院领导审批') {
  279. if (xmApproval.ysje < 100)
  280. project.spzt = '审批结束';
  281. else
  282. project.spzt = '院长审批';
  283. } else if (zt === '院长审批')
  284. project.spzt = '审批结束';
  285. layer.load(0, {shade: 0.1});
  286. AjaxUtil.post({
  287. url: AjaxUtil.ctx + "prjAnnualbudget/updateSpzt",
  288. contentType: "application/json",
  289. data: JSON.stringify(project),
  290. success: function (res) {
  291. parent.setUpdateFlag();
  292. var iframeIndex = parent.layer.getFrameIndex(window.name);
  293. parent.layer.close(iframeIndex);
  294. },
  295. error: function (error) {
  296. }
  297. });
  298. },
  299. error: function (error) {
  300. }
  301. });
  302. }
  303. });
  304. // 监听取消按钮
  305. $("button[lay-filter='cancleBtn']").click(function () {
  306. var iframeIndex = parent.layer.getFrameIndex(window.name);
  307. parent.layer.close(iframeIndex);
  308. });
  309. });
  310. </script>
  311. </body>
  312. </html>