xieruidong 2 年之前
父节点
当前提交
874ee0482d
共有 3 个文件被更改,包括 68 次插入3 次删除
  1. 0 1
      application/admin/controller/Goods.php
  2. 37 1
      application/admin/view/goods/add.html
  3. 31 1
      public/assets/js/backend/goods.js

+ 0 - 1
application/admin/controller/Goods.php

@@ -175,7 +175,6 @@ class Goods extends Backend
         foreach ($skuDel as $sku_del){
             $sku_del->delete();
         }
-        //$goods->sku()->whereNotIn('id',$ids)->update(['is_del'=>1]);
 
         $ids=[];
         foreach ($data['detail'] as $temp){

+ 37 - 1
application/admin/view/goods/add.html

@@ -5,6 +5,9 @@
     .skuName{
         width: 150px;
     }
+    .amountItem{
+        line-height: 30px;
+    }
 </style>
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     <input type="hidden" name="row[id]" value="{$row.id|default=''}"/>
@@ -86,7 +89,40 @@
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('售价')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-8 amountSet">
+            {foreach name="$row['sku']??[[]]" item="aa" key="aakey"}
+            <div class="amountItem">
+                <span class="itemName">{:$aa['name']??''}</span>
+                {foreach name="$row['amount_ladder']??[[]]" item="a"}
+                <div class="amountItemOne">
+                    <input class="form-control smInput" name="row[amount_ladder][__{$aakey}][_{$key}][min]" type="number" placeholder="数量" value="{$a.min|default=''}">-
+                    <input class="form-control smInput" name="row[amount_ladder][__{$aakey}][_{$key}][max]" type="number" placeholder="数量" value="{$a.max|default=''}">,
+                    售价<input class="form-control smInput" name="row[amount_ladder][__{$aakey}][_{$key}][amount]" type="number" placeholder="金额" value="{$a.amount|default=''}">
+                    <a class="btn btn-sm delAmountItem">删除</a>
+                </div>
+                {/foreach}
+                <a class="btn btn-info addAmountDetail">添加</a>
+            </div>
+            {/foreach}
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('秒杀价')}:</label>
+        <div class="col-xs-12 col-sm-8 amountSetKill">
+            {foreach name="$row['sku']??[[]]" item="aa" key="aakey"}
+            <div class="amountItem">
+                <span class="itemName">{:$aa['name']??''}</span>
+                {foreach name="$row['amount_ladder']??[[]]" item="a"}
+                <div class="amountItemOne">
+                    <input class="form-control smInput" name="row[amount_kill_ladder][__{$aakey}][_{$key}][min]" type="number" placeholder="数量" value="{$a.min|default=''}">-
+                    <input class="form-control smInput" name="row[amount_kill_ladder][__{$aakey}][_{$key}][max]" type="number" placeholder="数量" value="{$a.max|default=''}">,
+                    售价<input class="form-control smInput" name="row[amount_kill_ladder][__{$aakey}][_{$key}][amount]" type="number" placeholder="金额" value="{$a.amount|default=''}">
+                    <a class="btn btn-sm delAmountItem">删除</a>
+                </div>
+                {/foreach}
+                <a class="btn btn-info addAmountDetail">添加</a>
+            </div>
+            {/foreach}
         </div>
     </div>
     <div class="form-group">

+ 31 - 1
public/assets/js/backend/goods.js

@@ -222,14 +222,34 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         editor(){
             $('.btnAddSku').click(function (){
                 let key=Date.now()
-                let a=$($('.skuItem')[0].outerHTML.replace(/\[_\d+]/g,`_${key}`))
+                let a=$($('.skuItem')[0].outerHTML.replace(/\[_\d+]/g,`[_${key}]`))
                 $(this).parent().before(a[0].outerHTML.replace(/value="\S+"/ig,''))
+
+                //添加价格
+                let html=$('.amountItem')[0].outerHTML.replace(/\[__\d+]/g,`[__${key}]`)
+                let item=$(html)
+                item.find('.itemName').text('')
+                item.find('.amountItemOne').each(function (idx){
+                    if(idx>0){
+                        $(this).remove()
+                    }
+                })
+                $('.amountSet').append(item[0].outerHTML)
+                $('.amountSetKill').append(item[0].outerHTML.replace(/amount_ladder/g,'amount_kill_ladder'))
             })
             $(document).on('click','.delSku,.delDetail',function (){
                 let className=$(this).parent()[0].className
                 if($(this).parent().parent().find(`.${className}`).length===1){
                     return
                 }
+                $('.amountItem').eq($(this).parent().index()).remove()
+                $(this).parent().remove()
+            })
+            $(document).on('click','.delAmountItem',function (){
+                let className=$(this).parent()[0].className
+                if($(this).parent().parent().find(`.${className}`).length===1){
+                    return
+                }
                 $(this).parent().remove()
             })
             $('.btnAddDetail').click(function (){
@@ -239,6 +259,16 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 a.find('.value').attr('name',`row[${m}][${key}][value]`)
                 $(this).parent().before(a[0].outerHTML.replace(/value="\S+"/ig,''))
             })
+            $(document).on('input','.skuName',function (){
+                let val=this.value,idx=$(this).parent().index()
+                $('.amountSet .amountItem').eq(idx).find('.itemName').text(val)
+                $('.amountSetKill .amountItem').eq(idx).find('.itemName').text(val)
+            })
+            $(document).on('click','.addAmountDetail',function (){
+                let key=Date.now()
+                let a=$($(this).prev()[0].outerHTML.replace(/\[_\d+]/g,`[_${key}]`))
+                $(this).before(a[0].outerHTML.replace(/value="\S+"/ig,''))
+            })
         },
         api: {
             bindevent: function () {