add_purchased.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <tr>
  2. <td colspan="6"><strong>物品信息</strong> <span class="layui-btn layui-btn-sm" type="button" id="purchasedAdd">+ 添加物品</span></td>
  3. </tr>
  4. <tr>
  5. <td colspan="6">
  6. <table id="purchasedTable" class="layui-table layui-table-min" style="margin:0">
  7. <tr>
  8. <th width="200">物品名称</th>
  9. <th width="100">单位</th>
  10. <th width="100">规格</th>
  11. <th width="100">采购单价</th>
  12. <th width="100">数量</th>
  13. <th width="100">小计</th>
  14. <th>备注信息</th>
  15. <th width="60">操作</th>
  16. </tr>
  17. <tr class="purchased-tr">
  18. {eq name="is_purchased" value="1"}
  19. <td><input type="text" name="purchased_title[]" value="" class="layui-input purchased-picker" readonly lay-verify="required" lay-reqText="请输入物品名称"><input type="hidden" name="purchased_id[]" value="0"></td>
  20. {else/}
  21. <td><input type="text" name="purchased_title[]" value="" class="layui-input" lay-verify="required" lay-reqText="请输入物品名称"><input type="hidden" name="purchased_id[]" value="0"></td>
  22. {/eq}
  23. <td><input type="text" name="purchased_unit[]" value="" class="layui-input" lay-verify="required" lay-reqText="请输入单位"></td>
  24. <td><input type="text" name="purchased_specs[]" value="" class="layui-input" lay-verify="required" lay-reqText="请输入物品规格"></td>
  25. <td><input type="text" name="purchased_price[]" value="0.00" class="layui-input input-num" lay-verify="required|number" lay-reqText="请输入采购单价"></td>
  26. <td><input type="text" name="purchased_num[]" value="1" class="layui-input input-num" lay-verify="required|number" lay-reqText="请输入物品数量"></td>
  27. <td><input type="text" name="purchased_subtotal[]" value="0.00" class="layui-input layui-input-readonly" readonly></td>
  28. <td><input type="text" name="purchased_remark[]" value="" class="layui-input"></td>
  29. <td><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></td>
  30. </tr>
  31. </table>
  32. </td>
  33. </tr>
  34. <script>
  35. const is_purchased={$is_purchased};
  36. function purchased_fun(layui){
  37. let form = layui.form,oaPicker = layui.oaPicker;
  38. //选择物品弹窗
  39. $('body').on('click','.purchased-picker',function () {
  40. let that = $(this),ids = [],titles=[],purchase_price=[],unit=[],specs=[],map = {},types = 'purchased',type = 1;
  41. let callback = function(data){
  42. for ( var i = 0; i <data.length; i++){
  43. ids.push(data[i].id);
  44. titles.push(data[i].title);
  45. unit.push(data[i].unit);
  46. specs.push(data[i].specs);
  47. purchase_price.push(data[i].purchase_price);
  48. }
  49. that.val(titles.join(','));
  50. that.next().val(ids.join(','));
  51. that.parents('.purchased-tr').find('input').eq(2).val(unit.join(','));
  52. that.parents('.purchased-tr').find('input').eq(3).val(specs.join(','));
  53. that.parents('.purchased-tr').find('input').eq(4).val(purchase_price.join(','));
  54. that.parents('.purchased-tr').find('input').eq(6).val(purchase_price.join(','));
  55. count_cost();
  56. }
  57. oaPicker.picker(types,type,callback,map);
  58. });
  59. //添加物品信息表格
  60. $('#purchasedAdd').on('click',function(){
  61. var html = '',purchased_title=' class="layui-input"';
  62. if(is_purchased==1){
  63. purchased_title=' class="layui-input purchased-picker" readonly';
  64. }
  65. html += '<tr class="purchased-tr">\
  66. <td><input type="text" name="purchased_title[]" value="" '+purchased_title+' lay-verify="required" lay-reqText="请输入物品名称"><input type="hidden" name="purchased_id[]" value="0"></td>\
  67. <td><input type="text" name="purchased_unit[]" value="" class="layui-input" lay-verify="required" lay-reqText="请输入单位"></td>\
  68. <td><input type="text" name="purchased_specs[]" value="" class="layui-input" lay-verify="required" lay-reqText="请输入物品规格"></td>\
  69. <td><input type="text" name="purchased_price[]" value="0.00" class="layui-input input-num" lay-verify="required|number" lay-reqText="请输入采购单价"></td>\
  70. <td><input type="text" name="purchased_num[]" value="1" class="layui-input input-num" lay-verify="required|number" lay-reqText="请输入物品数量"></td>\
  71. <td><input type="text" name="purchased_subtotal[]" value="0.00" class="layui-input layui-input-readonly" readonly></td>\
  72. <td><input type="text" name="purchased_remark[]" value="" class="layui-input"></td>\
  73. <td><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></td>\
  74. </tr>';
  75. $('#purchasedTable').append(html).find('.tr-none').remove();
  76. form.render();
  77. });
  78. $('#purchasedTable').on('click', '[lay-event="del"]', function() {
  79. if($('.purchased-tr').length<2){
  80. layer.msg('至少保留一个物品选项');
  81. return false;
  82. }
  83. $(this).parents('.purchased-tr').remove();
  84. count_cost();
  85. });
  86. //计算价格
  87. $('#purchasedTable').on('input', '.input-num', function() {
  88. var inputs = $(this).parents('.purchased-tr').find("input");
  89. var purchased_price = inputs.eq(4).val();
  90. var purchased_num = inputs.eq(5).val();
  91. var purchased_amount = (purchased_price*purchased_num).toFixed(2);
  92. if(isNaN(purchased_amount)){
  93. purchased_amount = 0.00;
  94. }
  95. inputs.eq(6).val(purchased_amount);
  96. count_cost();
  97. });
  98. //计算总价
  99. function count_cost(){
  100. var purchased_subtotal = $('#purchasedTable').find('[name="purchased_subtotal[]"]');
  101. var total = 0;
  102. for (var m = 0; m < purchased_subtotal.length; m++) {
  103. total+=$(purchased_subtotal[m]).val()*1000;
  104. }
  105. if(isNaN(total)){
  106. total = 0;
  107. }
  108. $('[name="cost"]').val((total/1000).toFixed(2));
  109. }
  110. }
  111. </script>