datalist.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. {extend name="../../base/view/common/base" /}
  2. {block name="style"}
  3. <style>
  4. .tree-left{width:220px; float:left; height:100%; overflow: scroll; border:1px solid #eeeeee; background-color:#fff; padding:12px 12px 12px 5px;}
  5. .tree-left h3{font-size:16px; height:30px; padding-left:10px; font-weight:800}
  6. </style>
  7. {/block}
  8. <!-- 主体 -->
  9. {block name="body"}
  10. <div class="p-page" style="height:calc(100% - 40px); box-sizing: border-box;">
  11. <div class="tree-left">
  12. <h3>产品分类</h3>
  13. <div id="cate"></div>
  14. </div>
  15. <div class="body-table" style="margin-left:248px; overflow:hidden;">
  16. <form class="layui-form gg-form-bar border-x border-t">
  17. <div class="layui-input-inline" style="width:100px;">
  18. <select name="status">
  19. <option value="">选择状态</option>
  20. <option value="1">正常</option>
  21. <option value="0">禁用</option>
  22. </select>
  23. </div>
  24. <div class="layui-input-inline" style="width:300px;">
  25. <input type="text" name="keywords" placeholder="关键字,产品名称/产品编码" class="layui-input" />
  26. </div>
  27. <div class="layui-input-inline" style="width:150px;">
  28. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  29. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">重置</button>
  30. </div>
  31. </form>
  32. <table class="layui-hide" id="test" lay-filter="test"></table>
  33. </div>
  34. </div>
  35. <script type="text/html" id="toolbarDemo">
  36. <div class="layui-btn-container">
  37. <button class="layui-btn layui-btn-sm addNew" type="button">+ 添加产品</button>
  38. </div>
  39. </script>
  40. {/block}
  41. <!-- /主体 -->
  42. <!-- 脚本 -->
  43. {block name="script"}
  44. <script>
  45. const moduleInit = ['tool','tablePlus'];
  46. function gouguInit() {
  47. var table = layui.tablePlus, tool = layui.tool,tree = layui.tree,form = layui.form;
  48. $.ajax({
  49. url: "/contract/api/get_productcate_tree",
  50. type:'get',
  51. success:function(res){
  52. //仅节点左侧图标控制收缩
  53. tree.render({
  54. elem: '#cate',
  55. data: res.trees,
  56. onlyIconControl: true, //是否仅允许节点左侧图标控制展开收缩
  57. click: function(obj){
  58. //layer.msg(JSON.stringify(obj.data));
  59. $('#cate').find('.layui-tree-main').removeClass('on');
  60. $(obj.elem).find('.layui-tree-main').eq(0).addClass('on');
  61. layui.pageTable.reload({
  62. where: {cate_id: obj.data.id},
  63. page:{curr:1}
  64. });
  65. $('[name="keywords"]').val('');
  66. $('[name="status"]').val('');
  67. form.render();
  68. }
  69. });
  70. }
  71. })
  72. $('[lay-filter="reset"]').click(function(){
  73. $('#cate').find('.layui-tree-main').removeClass('on');
  74. });
  75. layui.pageTable = table.render({
  76. elem: '#test'
  77. ,toolbar: '#toolbarDemo'
  78. ,title:'产品列表'
  79. ,url: "/contract/product/datalist"
  80. ,is_excel: true
  81. ,cellMinWidth: 60
  82. ,height: 'full-114'
  83. ,cols: [[
  84. {field:'id',width:80, title: 'ID号', align:'center'}
  85. ,{field:'code',width:150, title: '产品编码', align:'center'}
  86. ,{field:'cate',width:150, title: '产品分类', align:'center'}
  87. ,{field:'title',title: '产品名称',minWidth:240}
  88. ,{field:'sale_price',width:100, title: '销售价(元)', align:'center','style':'color:#16b777'}
  89. ,{field:'purchase_price',width:100, title: '采购价(元)', align:'center','style':'color:#1e9fff'}
  90. ,{field:'base_price',width:100, title: '成本价(元)', align:'center','style':'color:#a233c6'}
  91. ,{field:'unit',width:60, title: '单位', align:'center'}
  92. ,{field:'specs',width:60, title: '规格', align:'center'}
  93. ,{field:'status', title: '状态',width:60,align:'center',templet: function(d){
  94. var html1='<span class="green">正常</span>';
  95. var html2='<span class="yellow">禁用</span>';
  96. if(d.status==1){
  97. return html1;
  98. }
  99. else{
  100. return html2;
  101. }
  102. }}
  103. ,{width:150,fixed:'right', title: '操作', align:'center',templet: function(d){
  104. var html='';
  105. var btn='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a>';
  106. var btn1='<a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="disable">禁用</a>';
  107. var btn2='<a class="layui-btn layui-btn-xs" lay-event="open">启用</a>';
  108. var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
  109. if(d.status==1){
  110. html = '<div class="layui-btn-group">'+btn+btn1+btn3+'</div>';
  111. }
  112. else{
  113. html = '<div class="layui-btn-group">'+btn+btn2+btn3+'</div>';
  114. }
  115. return html;
  116. }}
  117. ]]
  118. });
  119. table.on('tool(test)',function (obj) {
  120. if(obj.event === 'edit'){
  121. tool.side("/contract/product/add?id="+obj.data.id);
  122. }
  123. if(obj.event === 'view'){
  124. tool.side("/contract/product/view?id="+obj.data.id);
  125. }
  126. if(obj.event === 'disable'){
  127. layer.confirm('确定要禁用该产品吗?', {icon: 3, title:'提示'}, function(index){
  128. let callback = function (e) {
  129. layer.msg(e.msg);
  130. if (e.code == 0) {
  131. layui.pageTable.reload();
  132. }
  133. }
  134. tool.post("/contract/product/set", { id: obj.data.id,status: 0,title: obj.data.title}, callback);
  135. layer.close(index);
  136. });
  137. }
  138. if(obj.event === 'open'){
  139. layer.confirm('确定要启用该产品吗?', {icon: 3, title:'提示'}, function(index){
  140. let callback = function (e) {
  141. layer.msg(e.msg);
  142. if (e.code == 0) {
  143. layui.pageTable.reload();
  144. }
  145. }
  146. tool.post("/contract/product/set", { id: obj.data.id,status: 1,title: obj.data.title}, callback);
  147. layer.close(index);
  148. });
  149. }
  150. if(obj.event === 'del'){
  151. layer.confirm('确定要删除该产品吗?', {icon: 3, title:'提示'}, function(index){
  152. let callback = function (e) {
  153. layer.msg(e.msg);
  154. if (e.code == 0) {
  155. layui.pageTable.reload();
  156. }
  157. }
  158. tool.delete("/contract/product/del", { id: obj.data.id,status: 1,title: obj.data.title}, callback);
  159. layer.close(index);
  160. });
  161. }
  162. });
  163. $('body').on('click','.addNew',function(){
  164. tool.side("/contract/product/add");
  165. });
  166. //监听搜索提交
  167. form.on('submit(webform)', function(data){
  168. layui.pageTable.reload({where:data.field,page:{curr:1}});
  169. return false;
  170. });
  171. }
  172. </script>
  173. {/block}
  174. <!-- /脚本 -->