commodity_parameter_edit.html 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  11. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  12. <style type="text/css">
  13. /*您可以将下列样式写入自己的样式表中*/
  14. /*layui 元素样式改写*/
  15. .layui-btn-sm {
  16. line-height: normal;
  17. font-size: 12.5px;
  18. }
  19. .layui-table-view .layui-table-body {
  20. min-height: 256px;
  21. }
  22. .layui-table-cell .layui-input.layui-unselect {
  23. height: 30px;
  24. line-height: 30px;
  25. }
  26. /*设置 layui 表格中单元格内容溢出可见样式*/
  27. .table-overlay .layui-table-view,
  28. .table-overlay .layui-table-box,
  29. .table-overlay .layui-table-body {
  30. overflow: visible;
  31. }
  32. .table-overlay .layui-table-cell {
  33. height: auto;
  34. overflow: visible;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="layui-fluid">
  40. <div class="layui-row layui-col-space15">
  41. <div class="layui-col-md12">
  42. <div class="layui-card">
  43. <div class="layui-card-body">
  44. <form id='fm' class="layui-form" action="" lay-filter="component-form-element">
  45. <div class="layui-row layui-col-space10 layui-form-item">
  46. <div class="layui-form-item">
  47. <label class="layui-form-label">参数名称:</label>
  48. <div class="layui-input-block">
  49. <select id="id_option" name="option" lay-search="">
  50. <option value="">请选择参数名称</option>
  51. </select>
  52. </div>
  53. </div>
  54. </div>
  55. <button class="layui-btn" id="id_save" lay-submit lay-filter="component-form-element"
  56. style="display: none">保存
  57. </button>
  58. </form>
  59. </div>
  60. </div>
  61. <div class="layui-card">
  62. <div class="layui-card-body">
  63. <div class="layui-row layui-col-space10">
  64. <div class="layui-col-xs8" style="text-align: left">
  65. <button class="layui-btn layui-btn-sm layui-btn-normal" id="btn_add">
  66. <i class="layui-icon layui-icon-add "></i> 添加
  67. </button>
  68. </div>
  69. </div>
  70. <div style="height: 5px"></div>
  71. <div id="tableRes" class="table-overlay">
  72. <table id="dataTable" lay-filter="dataTable" class="layui-hide"></table>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <script src="../../layuiadmin/layui/layui.js"></script>
  80. <script>
  81. layui.config({
  82. base: '../../../layuiadmin/' //静态资源所在路径
  83. }).extend({
  84. index: 'lib/index' //主入口模块
  85. }).use(['index', 'table', 'layer', 'form',], function () {
  86. var $ = layui.$
  87. , admin = layui.admin
  88. , form = layui.form
  89. , table = layui.table
  90. , layer = layui.layer;
  91. var edit = layui.view.getParameterByName('edit') == 'true';
  92. var tbWidth = $("#tableRes").width();
  93. var layTableId = "layTable";
  94. var tableIns = table.render({
  95. elem: '#dataTable',
  96. id: layTableId,
  97. data: [],
  98. width: tbWidth,
  99. page: false,
  100. limit: 100,
  101. loading: true,
  102. even: true, //不开启隔行背景
  103. cols: [[
  104. {title: '序号', type: 'numbers'},
  105. {field: 'parameter_content', title: '参数内容', edit: 'text', width: '44%',},
  106. {
  107. field: 'id', title: '操作',hide:edit, templet: function (d) {
  108. return '<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del" lay-id="' + d.id + '"><i class="layui-icon layui-icon-delete"></i>删除</a>';
  109. }
  110. }
  111. ]],
  112. });
  113. admin.req({
  114. url: '/option/get_option/?types=2',
  115. done: function (res) {
  116. var data_user = res.data;
  117. var user_node = $('#id_option');
  118. for (var i in data_user) {
  119. var pid = data_user[i].value;
  120. var name = data_user[i].name;
  121. user_node.append("<option value='" + pid + "'>" + name + "</option>");
  122. }
  123. form.val("component-form-element", editdata);
  124. }
  125. });
  126. if (edit) {
  127. var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
  128. form.val("component-form-element", editdata);
  129. var oldData = table.cache[layTableId];
  130. for (var i in editdata.edit_content) {
  131. var newRow = {
  132. id: editdata.edit_content[i].id,
  133. parameter_content: editdata.edit_content[i].content,
  134. }
  135. oldData.push(newRow);
  136. }
  137. tableIns.reload({
  138. data: oldData
  139. });
  140. }
  141. var active = {
  142. removeItem: function (index) {
  143. var oldData = table.cache[layTableId];
  144. oldData.splice(index, 1); //删除一项
  145. tableIns.reload({
  146. data: oldData
  147. });
  148. },
  149. }
  150. //激活事件
  151. var activeByType = function (type, arg) {
  152. if (arguments.length === 2) {
  153. active[type] ? active[type].call(this, arg) : '';
  154. } else {
  155. active[type] ? active[type].call(this) : '';
  156. }
  157. }
  158. //注册按钮事件
  159. $('.layui-btn[data-type]').on('click', function () {
  160. var type = $(this).data('type');
  161. activeByType(type);
  162. });
  163. //监听工具条
  164. table.on('tool(dataTable)', function (obj) {
  165. var data = obj.data, event = obj.event, tr = obj.tr; //获得当前行 tr 的DOM对象;
  166. var data_index = tr.attr("data-index");
  167. switch (event) {
  168. case "del":
  169. obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
  170. activeByType('removeItem', data_index);
  171. layer.msg('删除成功', {icon: 6});
  172. break;
  173. }
  174. });
  175. $('#btn_add').on('click', function () {
  176. var oldData = table.cache[layTableId];
  177. var newRow = {
  178. id: '',
  179. parameter_content: '',
  180. }
  181. oldData.push(newRow);
  182. tableIns.reload({
  183. data: oldData
  184. });
  185. });
  186. //保存
  187. form.on('submit(component-form-element)', function (data) {
  188. var rows = table.cache[layTableId];
  189. var items = [];
  190. for (var k in rows) {
  191. var item = {
  192. id: rows[k].id,
  193. parameter_content: rows[k].parameter_content,
  194. };
  195. items.push(item);
  196. }
  197. if (items.length === 0) {
  198. layer.msg('请添加参数内容');
  199. return false;
  200. }
  201. data.field.contents = JSON.stringify(items)
  202. admin.req({
  203. url: '/commodity/commodity_parameter/'
  204. , data: data.field
  205. , type: 'post'
  206. , done: function (res) {
  207. parent.layui.onSubmitChild(res);
  208. }
  209. });
  210. return false;
  211. });
  212. parent.layui.submitChild = function () {
  213. $("#id_save").click();
  214. };
  215. });
  216. </script>
  217. </body>
  218. </html>