add_product.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. {include file='common/_js_css'}
  2. <div class="lyear-layout-web">
  3. <div class="lyear-layout-container">
  4. <!--页面主要内容-->
  5. <main>
  6. <div class="container-fluid">
  7. <div class="row">
  8. <div class="col-lg-12">
  9. <div class="card">
  10. <div class="card-body">
  11. <form class="layui-form">
  12. <div class="layui-form-item">
  13. <label class="layui-form-label">{:lang('Product')}</label>
  14. <div class="layui-input-block unfold_product">
  15. <input type="text" id="product_id" class="layui-input"
  16. placeholder="{:lang('Enter the product name or number and press Enter to select the product')}" style="position:absolute;z-index:2;width:88%;" value="" autocomplete="off">
  17. <select id="product_select" placeholder="1" name="product_id" lay-verify="required" lay-filter="product_select" >
  18. <option value="">{:lang('Enter the product name or number and press Enter to select the product')}</option>
  19. </select>
  20. </div>
  21. </div>
  22. <input type="text" id="product_name" name="product_name" hidden>
  23. <div class="layui-form-item">
  24. <label class="layui-form-label">{:lang("Type")}</label>
  25. <div class="layui-input-block">
  26. <input type="radio" name="type" value="1" title="{:lang('Reduced price')}" >
  27. <input type="radio" name="type" value="2" title="{:lang('Discount')}" checked>
  28. </div>
  29. </div>
  30. <div class="layui-form-item">
  31. <label class="layui-form-label">{:lang("Discount")}</label>
  32. <div class="layui-input-block">
  33. <input type="number" name="discount" value="0" lay-verify="required" lay-reqtext="{:lang('Please fill in')}" autocomplete="off" class="layui-input">
  34. </div>
  35. </div>
  36. <div class="layui-form-item">
  37. <label class="layui-form-label">{:lang("Reduced price")}</label>
  38. <div class="layui-input-block">
  39. <input type="number" value="0" name="reduced_price" lay-verify="required" lay-reqtext="{:lang('Please fill in')}" autocomplete="off" class="layui-input">
  40. </div>
  41. </div>
  42. <div class="layui-form-item">
  43. <div class="layui-input-block">
  44. <button type="button" class="layui-btn" lay-submit="" lay-filter="caviar_submit_btn">{:lang('Submit')}</button>
  45. <button type="reset" class="layui-btn layui-btn-primary">{:lang("Reset")}</button>
  46. </div>
  47. </div>
  48. </form>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </main>
  55. </div>
  56. </div>
  57. <script>
  58. // 用于缓存下拉获取的数据
  59. let dropData
  60. // 请求返回数据
  61. function getData(str){
  62. return new Promise(resolve=>{
  63. request("{:url('admin/product/findProducts')}", {"text": str}).then((data) => {
  64. if (data.code === 200) {
  65. resolve(data.data.map(v => {
  66. return {
  67. value: v.id,
  68. text: `【${v.bar_code}】 ${v.name}`
  69. }
  70. }))
  71. }
  72. })
  73. })
  74. }
  75. $("#product_id").on("keyup", async function(e){
  76. if(e.which=='13'){
  77. dropData=await getData($(this).val())
  78. innitSelect("#product_select", dropData)
  79. let form = layui.form;
  80. form.render()
  81. $(".layui-form-select").addClass("layui-form-selected")
  82. }
  83. })
  84. // 渲染下拉框的数据
  85. function innitSelect(name,data){
  86. let html=''
  87. if(data && data instanceof Array){
  88. data.forEach(item=>{
  89. html+="<option value="+item.value+">"+item.text+"</option>"
  90. })
  91. }
  92. $(name).html(html)
  93. }
  94. var index = parent.layer.getFrameIndex(window.name);
  95. layui.use(['form'], () => {
  96. const form = layui.form;
  97. // 监听下拉框改变事件,修改输入框中的内容
  98. form.on("select(product_select)",function(data){
  99. let value = data.value
  100. let selectObj=dropData.filter(item=> {
  101. return item.value == value
  102. })
  103. $("#product_id").val(selectObj[0].text);
  104. $("#product_name").val(selectObj[0].text);
  105. })
  106. form.on('submit(caviar_submit_btn)', (data) =>{
  107. //获取父类函数
  108. parent.advanced(data.field);
  109. parent.layer.close(index);//关闭当前页
  110. return false;
  111. });
  112. });
  113. </script>