material_godownentry_senior_edit.html 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  11. <link rel="stylesheet" href="../../jquery-easyui-1.5.2/themes/icon.css" type="text/css">
  12. <style type="text/css">
  13. .table-overlay .layui-table-view,
  14. .table-overlay .layui-table-header,
  15. .table-overlay .layui-table-box,
  16. .table-overlay .layui-table-body{overflow: visible;}
  17. .table-overlay .layui-table-cell{height: auto; overflow: visible;}
  18. </style>
  19. </head>
  20. <body>
  21. <div class="layui-fluid">
  22. <div class="layui-card">
  23. <div class="layui-card-body" pad15>
  24. <form class="layui-form" action="" lay-filter="component-form-element">
  25. <div class="layui-row layui-col-space10">
  26. <div class="layui-col-xs6 layui-col-sm4">
  27. <label class="layui-form-label"><font color='red' size="4">*</font>供应商:</label>
  28. <div class="layui-input-block">
  29. <select id="id_supplier" name="supplier" lay-verify="required" lay-search>
  30. <option value=""></option>
  31. </select>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="layui-row layui-col-space10">
  36. <div id="materialDataTable" style="width: 48%; display:inline-block;">
  37. <table id="material_layTable" lay-filter="material_layTable" class="layui-hide"></table>
  38. </div>
  39. <div id="new_materialDataTable" style="width: 48%; display:inline-block;">
  40. <table id="new_material_layTable" lay-filter="new_material_layTable" class="layui-hide"></table>
  41. </div>
  42. </div>
  43. <button class="layui-btn" id="material-godownentry-submit" lay-submit lay-filter="component-form-element" style="display: none">确定</button>
  44. </form>
  45. </div>
  46. </div>
  47. </div>
  48. <script src="../../jquery-easyui-1.5.2/jquery.min.js"></script>
  49. <script src="../../layuiadmin/layui/layui.js"></script>
  50. <script>
  51. layui.config({
  52. base: '../../../layuiadmin/' //静态资源所在路径
  53. }).extend({
  54. index: 'lib/index' //主入口模块
  55. }).use(['index', 'form', 'utils', 'table', 'laydate'], function() {
  56. var $ = layui.$;
  57. var utils = layui.utils;
  58. var admin = layui.admin;
  59. var form = layui.form;
  60. var table = layui.table;
  61. var id = layui.view.getParameterByName('id');
  62. var supplier_isload = false;
  63. var data_isload = false;
  64. admin.req({
  65. url: '/supplier/supplier/select/?type=0',
  66. done: function (res) {
  67. var data = res.data;
  68. var supplier_node = $('#id_supplier');
  69. for (var i in data) {
  70. var pid = data[i].id;
  71. var value = data[i].value;
  72. supplier_node.append("<option value='" + pid + "'>" + value + "</option>");
  73. }
  74. form.render();
  75. supplier_isload = true;
  76. loadData(); // 赋值完成后调用传值
  77. }
  78. });
  79. var loadData = function () {
  80. if (!supplier_isload) { // 要等下拉框渲染完成后才能赋值
  81. return;
  82. }
  83. if (data_isload) {
  84. return;
  85. }
  86. data_isload = true;
  87. if (id) {
  88. var data = JSON.parse(JSON.stringify(parent.layui.table.editdata));
  89. form.val("component-form-element", data);
  90. admin.req({
  91. url: '/purchase/godownentry/detail/?id=' + id,
  92. done: function (res) {
  93. var items_data = res.data.items_data;
  94. var roldData = table.cache[material_layTable];
  95. for (var i in items_data) {
  96. var newRow = {
  97. id: items_data[i].product_base_id,
  98. name: items_data[i].product_base_name,
  99. model: items_data[i].product_base_model,
  100. price: items_data[i].price,
  101. count: items_data[i].count,
  102. detail_id : items_data[i].id
  103. };
  104. roldData.push(newRow);
  105. }
  106. material_tableIns.reload({
  107. data: roldData
  108. })
  109. }
  110. })
  111. }
  112. };
  113. var material_tbWidth = $("#materialDataTable").width();
  114. var material_layTable = "material_layTable";
  115. var material_tableIns = table.render({
  116. elem: '#material_layTable',
  117. id: material_layTable,
  118. data: [],
  119. width: material_tbWidth,
  120. page: true,
  121. limit: 1000,
  122. loading: true,
  123. even: true, //不开启隔行背景
  124. cols: [[
  125. {field: 'name', title: '原料名称', width: 140},
  126. {field: 'model', title: '原料代码', width: 120},
  127. {field: 'count', title: '数量', width: 80},
  128. {field: 'price', title: '单价', width: 80},
  129. {
  130. field: 'id', title: '操作', minWidth: 70, templet: function (d) {
  131. return '<a class="layui-btn layui-btn-xs" lay-event="edit" lay-id="' + d.id + '"></i>修改</a>';
  132. }
  133. }
  134. ]],
  135. done: function (res, curr, count) {
  136. //viewObj.tbData = res.data;
  137. }
  138. });
  139. var new_material_tbWidth = $("#new_materialDataTable").width();
  140. var new_material_layTable = "new_material_layTable";
  141. var new_material_tableIns = table.render({
  142. elem: '#new_material_layTable',
  143. id: new_material_layTable,
  144. data: [],
  145. width: new_material_tbWidth,
  146. page: false,
  147. limit: 1000,
  148. loading: true,
  149. even: true, //不开启隔行背景
  150. cols: [[
  151. {field: 'new_name', title: '原料名称', width: 130},
  152. {field: 'new_model', title: '原料代码', width: 100},
  153. {field: 'new_count', title: '数量', width: 95, templet: function (d) {
  154. return '<input id="new_count' + d.new_id + '" value="' + d.new_count + '" type="text" lay-verify="required|numberGtZ" autocomplete="off" class="layui-input">';
  155. }},
  156. {field: 'new_price', title: '单价', width: 95, templet: function (d) {
  157. return '<input id="new_price' + d.new_id + '" value="' + d.new_price + '" type="text" lay-verify="required|numberGeZ" autocomplete="off" class="layui-input">';
  158. }},
  159. {
  160. field: 'new_id', title: '操作', minWidth: 70, templet: function (d) {
  161. return '<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del" lay-id="' + d.new_id + '">删除</a>';
  162. }
  163. }
  164. ]],
  165. done: function (res, curr, count) {
  166. //viewObj.tbData = res.data;
  167. }
  168. });
  169. table.on('tool(material_layTable)', function (obj) {
  170. var data = obj.data;
  171. var event = obj.event;
  172. switch (event) {
  173. case "edit":
  174. var oldData = getMaterialData();
  175. var is_exit = false;
  176. for (var m in oldData) {
  177. if (oldData[m].new_id == data.id) {
  178. is_exit = true;
  179. break;
  180. }
  181. }
  182. if (is_exit) {
  183. break;
  184. }
  185. var newRow = {
  186. new_id: data.id,
  187. new_name: data.name,
  188. new_model: data.model,
  189. new_price: data.price,
  190. new_count: data.count,
  191. new_detail_id: data.detail_id
  192. };
  193. oldData.push(newRow);
  194. new_material_tableIns.reload({
  195. data: oldData
  196. });
  197. }
  198. });
  199. table.on('tool(new_material_layTable)', function (obj) {
  200. var data = obj.data;
  201. var event = obj.event;
  202. switch (event) {
  203. case "del":
  204. obj.del();
  205. layer.msg('删除成功', {icon: 6});
  206. break;
  207. }
  208. });
  209. var getMaterialData = function () {
  210. var rows = table.cache[new_material_layTable];
  211. var data = [];
  212. for (var n in rows) {
  213. if (rows[n] == false) {
  214. continue;
  215. }
  216. var count = $('#new_count'+rows[n].new_id).val();
  217. var price = $('#new_price'+rows[n].new_id).val();
  218. var item = {
  219. new_id: rows[n].new_id,
  220. new_name: rows[n].new_name,
  221. new_model: rows[n].new_model,
  222. new_detail_id: rows[n].new_detail_id,
  223. new_count: count,
  224. new_price: price
  225. };
  226. data.push(item);
  227. }
  228. return data;
  229. };
  230. form.on('submit(component-form-element)', function (data) {
  231. var items = getMaterialData();
  232. if (items.length == 0) {
  233. layer.msg('未修改明细!', {icon: 5});
  234. return false;
  235. }
  236. admin.req({
  237. url: '/purchase/godownentry/senior_edit/?id=' + id
  238. , data: {main: JSON.stringify(data.field), item: JSON.stringify(items)}
  239. , type: 'post'
  240. , done: function (res) {
  241. parent.layui.onSubmitChild(res.data);
  242. }
  243. });
  244. return false;
  245. });
  246. parent.layui.submitChild = function () {
  247. $("#material-godownentry-submit").click();
  248. };
  249. })
  250. </script>
  251. </body>
  252. </html>