update.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  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">
  19. <div class="layui-form-item layui-inline" style="width: 100%">
  20. <label class="layui-form-label" style="width: 70px">序号</label>
  21. <div class="layui-input-inline" style="width: 270px">
  22. <input type="text" id="xh" name="xh" autocomplete="off" class="layui-input">
  23. </div>
  24. <label class="layui-form-label required" style="width: 70px">出差人</label>
  25. <div class="layui-input-inline" style="width: 270px">
  26. <input type="hidden" id="ccr" name="ccr">
  27. <input type="text" id="ccrxm" name="ccrxm" class="layui-input" readonly>
  28. </div>
  29. </div>
  30. <div class="layui-form-item layui-inline" style="width: 100%">
  31. <label class="layui-form-label required" style="width: 70px">出差地点</label>
  32. <div class="layui-input-inline" style="width: 270px">
  33. <input type="text" id="ccdd" name="ccdd" class="layui-input">
  34. </div>
  35. <label class="layui-form-label required" style="width: 70px">出差天数</label>
  36. <div class="layui-input-inline" style="width: 270px">
  37. <input type="number" id="ccts" name="ccts" min = "0" lay-verify="required" lay-reqtext="出差天数不能为空" autocomplete="off" class="layui-input">
  38. </div>
  39. </div>
  40. <div class="layui-form-item layui-inline" style="width: 100%">
  41. <label class="layui-form-label required" style="width: 70px">起止时间</label>
  42. <div class="layui-input-inline" style="width: 122px">
  43. <input type="text" name="qsrq" id="qsrq" placeholder="起始日期" lay-verify="required" lay-reqtext="开始日期不能为空" autocomplete="off" class="layui-input" readonly>
  44. </div>
  45. <div class="layui-form-mid">-</div>
  46. <div class="layui-input-inline" style="width: 122px">
  47. <input type="text" name="jsrq" id="jsrq" placeholder="结束日期(含)" lay-verify="required" lay-reqtext="结束日期不能为空" autocomplete="off" class="layui-input" readonly>
  48. </div>
  49. <label class="layui-form-label" style="width: 70px">交通费(元)</label>
  50. <div class="layui-input-inline" style="width: 270px">
  51. <input type="number" id="jtf" name="jtf" lay-filter="jtf" min = "0" autocomplete="off" class="layui-input">
  52. </div>
  53. </div>
  54. <div class="layui-form-item layui-inline" style="width: 100%">
  55. <label class="layui-form-label" style="width: 70px">住宿费(元)</label>
  56. <div class="layui-input-inline" style="width: 270px">
  57. <input type="number" id="zsf" name="zsf" lay-filter="zsf" min = "0" autocomplete="off" class="layui-input">
  58. </div>
  59. <label class="layui-form-label" style="width: 70px">差补(元)</label>
  60. <div class="layui-input-inline" style="width: 270px">
  61. <input type="number" id="cb" name="cb" lay-filter="cb" min = "0" autocomplete="off" class="layui-input">
  62. </div>
  63. </div>
  64. <div class="layui-form-item layui-inline" style="width: 100%">
  65. <label class="layui-form-label" style="width: 70px">总计(元)</label>
  66. <div class="layui-input-inline" style="width: 270px">
  67. <input type="number" id="zj" name="zj" min = "0" autocomplete="off" class="layui-input" readonly>
  68. </div>
  69. <label class="layui-form-label" style="width: 70px">日平均(元)</label>
  70. <div class="layui-input-inline" style="width: 270px">
  71. <input type="number" id="rpj" name="rpj" min = "0" autocomplete="off" class="layui-input" readonly>
  72. </div>
  73. </div>
  74. <div class="layui-form-item layui-inline" style="width: 100%">
  75. <!-- <label class="layui-form-label" style="width: 70px">项目负责人</label>-->
  76. <!-- <div class="layui-input-inline" style="width: 270px">-->
  77. <!-- <input type="number" id="xmfzr" name="xmfzr" class="layui-input" autocomplete="off">-->
  78. <!-- </div>-->
  79. <label class="layui-form-label" style="width: 70px">出差事由</label>
  80. <div class="layui-input-inline" style="width: 270px">
  81. <input type="text" id="ccsy" name="ccsy" class="layui-input" autocomplete="off">
  82. </div>
  83. </div>
  84. <!-- <div class="layui-form-item layui-inline" style="width: 100%">-->
  85. <!-- <label class="layui-form-label" style="width: 70px">报账金额(含税)</label>-->
  86. <!-- <div class="layui-input-inline" style="width: 270px">-->
  87. <!-- <input type="number" id="bzfyhs" name="bzfyhs" class="layui-input" autocomplete="off">-->
  88. <!-- </div>-->
  89. <!-- <label class="layui-form-label" style="width: 70px">报账金额(不含税)</label>-->
  90. <!-- <div class="layui-input-inline" style="width: 270px">-->
  91. <!-- <input type="number" id="bzfybhs" name="bzfybhs" class="layui-input" autocomplete="off">-->
  92. <!-- </div>-->
  93. <!-- </div>-->
  94. <!-- 右侧悬浮按钮 -->
  95. <div class="right-bottom-btn">
  96. <button type="button" class="layui-btn" lay-submit lay-filter="saveBtn">
  97. <i class="layui-icon layui-icon-ok"></i>确定
  98. </button>
  99. <button class="layui-btn" lay-filter="cancleBtn">
  100. <i class="layui-icon layui-icon-close"></i>取消
  101. </button>
  102. </div>
  103. </div>
  104. </form>
  105. <script th:src="@{/lib/jquery-3.4.1/jquery-3.4.1.min.js}" charset="utf-8"></script>
  106. <script th:src="@{/lib/layui/layui.js}" charset="utf-8"></script>
  107. <script th:src="@{/lib/coco-message/coco-message.js}" charset="utf-8"></script>
  108. <script th:src="@{/lib/xm-select-v1.2.2/xm-select.js}" charset="utf-8"></script>
  109. <script th:src="@{/js/lay-config.js}" charset="utf-8"></script>
  110. <script type="text/javascript" th:inline="javascript">
  111. AjaxUtil.ctx = /*[[@{/}]]*/'';
  112. layui.use(['form', 'tableSelect', 'laydate'], function () {
  113. var form = layui.form,
  114. laydate = layui.laydate;
  115. var expense = parent.getTravelExpense();
  116. $("#xh").val(expense.xh);
  117. $("#ccr").val(expense.ccr);
  118. $("#ccrxm").val(expense.ccrxm);
  119. $("#qsrq").val(expense.qsrq);
  120. $("#jsrq").val(expense.jsrq);
  121. $("#ccts").val(expense.ccts);
  122. $("#ccdd").val(expense.ccdd);
  123. $("#jtf").val(expense.jtf);
  124. $("#zsf").val(expense.zsf);
  125. $("#cb").val(expense.cb);
  126. $("#zj").val(expense.zj);
  127. $("#rpj").val(expense.rpj);
  128. $("#xmfzr").val(expense.xmfzr);
  129. $("#ccsy").val(expense.ccsy);
  130. $("#bzfyhs").val(expense.bzfyhs);
  131. $("#bzfybhs").val(expense.bzfybhs);
  132. form.render();
  133. var qsrq = $("#qsrq").val(),
  134. jsrq = $("#jsrq").val();
  135. var ccts = $("#ccts").val;
  136. var jtf = parseFloat($("#jtf").val()),
  137. zsf = parseFloat($("#zsf").val()),
  138. cb = parseFloat($("#cb").val()),
  139. zj = parseFloat($("#zj").val()),
  140. rpj = parseFloat($("#rpj").val());
  141. if(isNaN(jtf))
  142. jtf = 0;
  143. if(isNaN(zsf))
  144. zsf = 0;
  145. if(isNaN(cb))
  146. cb = 0;
  147. function setCtrlValue() {
  148. //总计
  149. zj = jtf + zsf + cb;
  150. if(zj == 0) {
  151. $("#zj").val("");
  152. $("#rpj").val("");
  153. }
  154. else {
  155. $("#zj").val(zj.toFixed(2));
  156. //出差天数
  157. ccts = parseFloat($("#ccts").val());
  158. if (isNaN(ccts)) {
  159. ccts = 0;
  160. $("#rpj").val("");
  161. }
  162. else {//日平均
  163. rpj = zj / parseFloat(ccts);
  164. $("#rpj").val(rpj.toFixed(2));
  165. }
  166. }
  167. }
  168. //日期
  169. laydate.render({
  170. elem: '#qsrq',
  171. done: function(value, date, endDate){
  172. qsrq = $("#qsrq").val();
  173. jsrq = $("#jsrq").val();
  174. if(qsrq != "" && jsrq != "") {
  175. if(qsrq > jsrq) {
  176. Message.warning("起始日期不能晚于结束日期!", 1500);
  177. $("#qsrq").val("");
  178. }
  179. else {
  180. var qsDate = new Date(qsrq);
  181. var jsDate = new Date(jsrq);
  182. var day = jsDate.getTime() - qsDate.getTime();
  183. var time = parseInt(day / (1000 * 60 * 60 * 24)) + 1;
  184. if (time < 1) {
  185. $("#ccts").val("");
  186. $("#rpj").val("");
  187. } else {
  188. $("#ccts").val(time);
  189. setCtrlValue();
  190. }
  191. }
  192. }
  193. }
  194. });
  195. laydate.render({
  196. elem: '#jsrq',
  197. done: function(value, date, endDate){
  198. qsrq = $("#qsrq").val();
  199. jsrq = $("#jsrq").val();
  200. if(qsrq != "" && jsrq != "") {
  201. if(qsrq > jsrq) {
  202. Message.warning("结束日期不能早于起始日期!", 1500);
  203. $("#jsrq").val("");
  204. }
  205. else {
  206. var qsDate = new Date(qsrq);
  207. var jsDate = new Date(jsrq);
  208. var day = jsDate.getTime() - qsDate.getTime();
  209. var time = parseInt(day / (1000 * 60 * 60 * 24)) + 1;
  210. if (time < 1) {
  211. $("#ccts").val("");
  212. $("#rpj").val("");
  213. } else {
  214. $("#ccts").val(time);
  215. setCtrlValue();
  216. }
  217. }
  218. }
  219. }
  220. });
  221. //出差天数
  222. $("#ccts").on("input",function(e) {
  223. setCtrlValue();
  224. });
  225. //交通费
  226. $("#jtf").on("input",function(e){
  227. //获取input输入的值
  228. jtf = parseFloat(e.delegateTarget.value);
  229. if(isNaN(jtf))
  230. jtf = 0;
  231. setCtrlValue();
  232. });
  233. //住宿费
  234. $("#zsf").on("input",function(e){
  235. //获取input输入的值
  236. zsf = parseFloat(e.delegateTarget.value);
  237. if(isNaN(zsf))
  238. zsf = 0;
  239. setCtrlValue();
  240. });
  241. //差补
  242. $("#cb").on("input",function(e){
  243. //获取input输入的值
  244. cb = parseFloat(e.delegateTarget.value);
  245. if(isNaN(cb))
  246. cb = 0;
  247. setCtrlValue();
  248. });
  249. //监听提交
  250. form.on('submit(saveBtn)', function (data) {
  251. qsrq = $("#qsrq").val();
  252. jsrq = $("#jsrq").val();
  253. if(qsrq > jsrq)
  254. Message.error("结束日期不能早于起始日期!", 1500);
  255. else {
  256. zj = parseFloat($("#zj").val());
  257. if (isNaN(zj))
  258. Message.error("差旅费不能为空!", 1500);
  259. else {
  260. parent.setTravelExpense(data.field);
  261. parent.setUpdateFlag();
  262. parent.layer.close(parent.layer.getFrameIndex(window.name));// 关闭子窗口
  263. }
  264. }
  265. });
  266. // 监听取消按钮
  267. $("button[lay-filter='cancleBtn']").click(function () {
  268. var iframeIndex = parent.layer.getFrameIndex(window.name);
  269. parent.layer.close(iframeIndex);
  270. });
  271. });
  272. </script>
  273. </body>
  274. </html>