edit_purchased.html 7.2 KB

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