Zhouzhendong 5 лет назад
Родитель
Сommit
a6c6ce13a8

+ 59 - 32
resources/views/customer/project/part/_operation.blade.php

@@ -59,18 +59,19 @@
     <div class="col-2">
         <input type="checkbox" id="isSingle" class="pull-left rounded mt-1" v-model="model.operation.isSingle">
     </div>
-    <div class="col-8 row" v-if="model.operation.isSingle">
-        <label class="col-3" for="total_price">普通价</label>
+    <div class="col-6 row" v-if="model.operation.isSingle">
+        <label class="col-3" for="total_price">普通价</label>
         <input id="total_price" v-model="model.operation.total_price"
-               class="form-control form-control-sm col-6" :class="errors.total_price ? 'is-invalid' : ''" step="0.001" type="number" min="0">
+               class="form-control form-control-sm col-6" :class="errors.total_price ? 'is-invalid' : ''" step="0.01" type="number" min="0">
     </div>
 </div>
 <div class="row mt-1" v-if="model.operation.isSingle && model.operation.isDiscount" v-for="(value,i) in model.operation.discount_count">
     <label class="col-2"></label><div class="col-2"></div>
-    <div class="col-8 row">
-        <label class="col-3" for="total_discount_price">满减价(@{{ value }}单)</label>
+    <div class="col-6 row">
+        <label class="col-3" for="total_discount_price">满减价</label>
         <input id="total_discount_price" v-model="model.operation.total_discount_price[i]"
-               class="form-control form-control-sm col-6" :class="errors.total_discount_price ? 'is-invalid' : ''" step="0.001" type="number" min="0">
+               class="form-control form-control-sm col-5" :class="errors.total_discount_price ? 'is-invalid' : ''" step="0.01" type="number" min="0">
+        <label class="col-4 text-secondary">@{{ value ? (model.operation.discount_count[i+1] ? value+'-'+(model.operation.discount_count[i+1]-1)+' 单' : value+'+ 单') : '' }}</label>
     </div>
 </div>
 <div class="row mt-3" v-if="!model.operation.isSingle">
@@ -83,7 +84,7 @@
         </div>
         <div class="card-body">
             <div class="row mt-2">
-                <div class="col-2">
+                <div class="col-3">
                     <label>
                         <select class="form-control mt-1" v-model="model.operation.items[0].type">
                             <option value="0">起步数</option>
@@ -91,10 +92,9 @@
                         </select>
                     </label>
                 </div>
-                <div class="col-10">
+                <div class="col-9">
                     <div class="row" v-if="model.operation.items[0].type == 0">
-                        <label class="col-2">起步数</label>
-                        <label class="col-8 mb-0"><input id="amount" type="number" :class="errors['items.0.amount'] ? 'is-invalid' : ''"
+                        <label class="col-6 mb-0"><input id="amount" type="number" :class="errors['items.0.amount'] ? 'is-invalid' : ''"
                                                          v-model="model.operation.items[0].amount" class="form-control" step="1"></label>
                     </div>
                     <div class="row mt-0" v-if="errors['items.0.amount']">
@@ -110,19 +110,28 @@
                         <div class="offset-3"><small class="text-danger font-weight-bold ml-3">单位为必选项</small></div>
                     </div>
                     <div class="row mt-2">
-                        <label class="col-2">起步费</label>
-                        <label class="col-8 mb-0"><input type="number" min="0" step="0.001" class="form-control" v-model="model.operation.items[0].unit_price"
-                                                         :class="errors['items.0.unit_price'] ? 'is-invalid' : ''"></label>
+                        <label class="col-2" v-if="model.operation.items[0].type == 0">起步费</label>
+                        <label class="col-6 mb-0 input-group">
+                            <input type="number" min="0" step="0.01" class="form-control" v-model="model.operation.items[0].unit_price"
+                                                         :class="errors['items.0.unit_price'] ? 'is-invalid' : ''">
+                            <span class="d-block input-group-append">
+                                  <span class="input-group-text">元</span>
+                            </span>
+                        </label>
                     </div>
                     <div class="row mt-0" v-if="errors['items.0.unit_price']">
                         <div class="offset-3"><small class="text-danger font-weight-bold ml-3">起步费为必填项</small></div>
                     </div>
                     <div class="row mt-2" v-if="model.operation.isDiscount" v-for="(value,i) in model.operation.discount_count">
-                        <label class="col-2">满减起步费</label>
-                        <label class="col-8 mb-0"><input type="number" min="0" step="0.001"
-                             :placeholder="value ? (model.operation.discount_count[i+1] ? value+'-'+model.operation.discount_count[i+1]+' 单' : value+'+ 单') : ''"
-                             class="form-control" v-model="model.operation.items[0].discount_price[i]"
-                             :class="errors['items.0.discount_price'] ? 'is-invalid' : ''"></label>
+                        <label class="col-2">满减起步费@{{ i>0 ? i : '' }}</label>
+                        <label class="col-6 mb-0 input-group">
+                            <input type="number" min="0" step="0.01"  class="form-control"
+                             v-model="model.operation.items[0].discount_price[i]" :class="errors['items.0.discount_price'] ? 'is-invalid' : ''">
+                            <span class="d-block input-group-append">
+                                <span class="input-group-text">元</span>
+                            </span>
+                        </label>
+                        <label class="col-4">@{{ value ? (model.operation.discount_count[i+1] ? value+'-'+(model.operation.discount_count[i+1]-1)+' 单' : value+'+ 单') : '' }}</label>
                     </div>
                 </div>
             </div>
@@ -144,7 +153,7 @@
         <div class="card-body">
             <div class="row mt-2">
                 <label class="col-2">数量</label>
-                <label class="col-8 mb-0"><input id="amount" type="number" :class="errors['items.1.amount'] ? 'is-invalid' : ''"
+                <label class="col-6 mb-0"><input id="amount" type="number" :class="errors['items.1.amount'] ? 'is-invalid' : ''"
                        v-model="model.operation.items[1].amount" class="form-control" step="1">
                 </label>
                 <div class="col-4"></div>
@@ -163,19 +172,27 @@
             </div>
             <div class="row mt-2">
                 <label class="col-2">单价</label>
-                <label class="col-8 mb-0"><input type="number" min="0" step="0.001" class="form-control" v-model="model.operation.items[1].unit_price"
-                           :class="errors['items.1.unit_price'] ? 'is-invalid' : ''"></label>
+                <label class="col-6 mb-0 input-group">
+                    <input type="number" min="0" step="0.01" class="form-control" v-model="model.operation.items[1].unit_price"
+                           :class="errors['items.1.unit_price'] ? 'is-invalid' : ''">
+                    <span class="d-block input-group-append">
+                          <span class="input-group-text">元</span>
+                    </span>
+                </label>
             </div>
             <div class="row mt-0" v-if="errors['items.1.unit_price']">
                 <div class="offset-3"><small class="text-danger font-weight-bold ml-3">单价为必填项</small></div>
             </div>
             <div class="row mt-2" v-if="model.operation.isDiscount" v-for="(value,i) in model.operation.discount_count">
-                <label class="col-2">满减价</label>
-                <label class="col-8 mb-0">
-                    <input type="number" min="0" step="0.001" class="form-control" v-model="model.operation.items[1].discount_price[i]"
-                           :placeholder="value ? (model.operation.discount_count[i+1] ? value+'-'+model.operation.discount_count[i+1]+' 单' : value+'+ 单') : ''"
+                <label class="col-2">满减价@{{ i>0 ? i : '' }}</label>
+                <label class="col-6 mb-0 input-group">
+                    <input type="number" min="0" step="0.01" class="form-control" v-model="model.operation.items[1].discount_price[i]"
                            :class="errors['items.1.discount_price'] ? 'is-invalid' : ''">
+                    <span class="d-block input-group-append">
+                          <span class="input-group-text">元</span>
+                    </span>
                 </label>
+                <label class="col-4">@{{ value ? (model.operation.discount_count[i+1] ? value+'-'+(model.operation.discount_count[i+1]-1)+' 单' : value+'+ 单') : '' }}</label>
             </div>
         </div>
     </div>
@@ -198,7 +215,7 @@
         <div class="card-body">
             <div class="row mt-2">
                 <label class="col-2">数量</label>
-                <label class="col-8 mb-0"><input type="number" step="1" min="0" :class="errors['items.'+i+'.amount'] ? 'is-invalid' : ''" v-model="item.amount" class="form-control"></label>
+                <label class="col-6 mb-0"><input type="number" step="1" min="0" :class="errors['items.'+i+'.amount'] ? 'is-invalid' : ''" v-model="item.amount" class="form-control"></label>
             </div>
             <div class="row mt-0" v-if="errors['items.'+i+'.amount']">
                 <div class="offset-3"><small class="text-danger font-weight-bold ml-3">数量为必填项</small></div>
@@ -214,17 +231,27 @@
             </div>
             <div class="row mt-2">
                 <label class="col-2">单价</label>
-                <label class="col-8 mb-0"><input type="number" min="0" step="0.001" class="form-control" v-model="item.unit_price"
-                       :class="errors['items.'+i+'.unit_price'] ? 'is-invalid' : ''"></label>
+                <label class="col-6 mb-0 input-group">
+                    <input type="number" min="0" step="0.01" class="form-control" v-model="item.unit_price"
+                       :class="errors['items.'+i+'.unit_price'] ? 'is-invalid' : ''">
+                    <span class="d-block input-group-append">
+                          <span class="input-group-text">元</span>
+                    </span>
+                </label>
             </div>
             <div class="row mt-0" v-if="errors['items.'+i+'.unit_price']">
                 <div class="offset-3"><small class="text-danger font-weight-bold ml-3">单价为必填项</small></div>
             </div>
             <div class="row mt-2" v-if="model.operation.isDiscount" v-for="(value,i) in model.operation.discount_count">
-                <label class="col-2">满减价</label>
-                <label class="col-8 mb-0"><input type="number" min="0" step="0.001" class="form-control" v-model="item.discount_price[i]"
-                       :placeholder="value ? (model.operation.discount_count[i+1] ? value+'-'+model.operation.discount_count[i+1]+' 单' : value+'+ 单') : ''"
-                       :class="errors['items.'+i+'.discount_price'] ? 'is-invalid' : ''"></label>
+                <label class="col-2">满减价@{{ i>0 ? i : '' }}</label>
+                <label class="col-6 mb-0 input-group">
+                    <input type="number" min="0" step="0.01" class="form-control" v-model="item.discount_price[i]"
+                       :class="errors['items.'+i+'.discount_price'] ? 'is-invalid' : ''">
+                    <span class="d-block input-group-append">
+                          <span class="input-group-text">元</span>
+                    </span>
+                </label>
+                <label class="col-4">@{{ value ? (model.operation.discount_count[i+1] ? value+'-'+(model.operation.discount_count[i+1]-1)+' 单' : value+'+ 单') : '' }}</label>
             </div>
             <div class="row mt-2">
                 <label class="col-2">特征:</label>

+ 6 - 6
resources/views/customer/project/part/_three.blade.php

@@ -112,9 +112,9 @@
                             </div>
                             <div class="container-fluid offset-2" v-if="operation.isSingle">
                                 按单计费:<b>@{{ operation.total_price }}</b>&nbsp;元/单<span v-if="operation.isDiscount">&nbsp;(满减价:
-                                    <span v-for="(value,i) in operation.total_discount_price">
-                                        <span v-if="i!=0">,</span>
-                                        <b>@{{ operation.discount_count[i] }}</b>&nbsp;单(<b>@{{ value }}</b>元)
+                                    <span v-for="(value,k) in operation.total_discount_price">
+                                        <span v-if="k!=0">,</span>
+                                        @{{ operation.discount_count[k] ? (operation.discount_count[k+1] ? operation.discount_count[k]+'-'+(operation.discount_count[k+1]-1)+' 单' : operation.discount_count[k]+'+ 单') : '' }}(<b>@{{ value }}</b>元)
                                     </span>)</span>
                             </div>
                             <div class="container-fluid offset-2" :id="'operation-item-'+i">
@@ -124,9 +124,9 @@
                                             <label>@{{ item.strategy }}</label>:
                                             <span v-if="item.amount > 0"><b>@{{ item.amount }}</b>&nbsp;@{{ poolMapping.units ? poolMapping.units[item.unit_id] : '' }} /</span><b>&nbsp;@{{ item.unit_price }}</b>元
                                             <span v-if="operation.isDiscount">&nbsp;(满减单价:
-                                                <span v-for="(value,i) in item.discount_price">
-                                                    <span v-if="i!=0">,</span>
-                                                    <b>@{{ operation.discount_count[i] }}</b>&nbsp;单(<b>@{{ value }}</b>元)
+                                                <span v-for="(value,k) in item.discount_price">
+                                                    <span v-if="k!=0">,</span>
+                                                    @{{ operation.discount_count[k] ? (operation.discount_count[k+1] ? operation.discount_count[k]+'-'+(operation.discount_count[k+1]-1)+' 单' : operation.discount_count[k]+'+ 单') : '' }}(<b>@{{ value }}</b>元)
                                                 </span>
                                                 )</span>
                                         </div>

+ 17 - 12
resources/views/maintenance/unit/index.blade.php

@@ -6,7 +6,7 @@
         @component('maintenance.menu')@endcomponent
         @component('maintenance.unit.menu')@endcomponent
     </span>
-    <div class="container-fluid" id="list">
+    <div class="container-fluid" id="list" @drop="drop($event)" @dragover="dragover($event, false)">
 
         <div class="modal fade" tabindex="-1" role="dialog" id="modal">
             <div class="modal-dialog modal-lg modal-dialog-centered">
@@ -40,8 +40,8 @@
                         <th>录入时间</th>
                         <th>操作</th>
                     </tr>
-                    <tr v-for="u in units" draggable="true" :id="'unit-'+u.id"
-                        @drop="drop($event)" @dragover="dragover($event)" @dragstart="dragstart($event)">
+                    <tr v-for="(u,i) in units" draggable="true" :id="'unit-'+u.id" :data-index="i"
+                        @drop="drop($event)" @dragover="dragover($event)" @dragstart="dragstart(u.id)">
                         <td class="text-muted">@{{u.id}}</td>
                         <td>@{{u.name}}</td>
                         <td class="text-muted">@{{u.created_at}}</td>
@@ -52,6 +52,9 @@
                                 <button class="btn btn-sm btn-outline-dark" @click="destroy(u)">删</button> @endcan
                         </td>
                     </tr>
+                    <tr id="dragover-container" class="border-dashed-red" v-if="isDragover" @drop="drop($event)" @dragover="dragover($event,false)">
+                        <td colspan='4' class='text-secondary'><div class='w-100 text-center'>拖拽至此</div></td>
+                    </tr>
                 </table>
                 {{$units->links()}}
             </div>
@@ -71,7 +74,8 @@
                 ],
                 unit:{},
                 errors:{},
-                dom:"",
+                dragoverId:"",
+                isDragover : false,
             },
             methods:{
                 edit:function(id){
@@ -132,19 +136,20 @@
                         return msg;
                     },true);
                 },
-                dragover(e){
+                dragover(e, isAllow = true){
                     e.preventDefault();
-                    e.currentTarget.after(document.getElementById("dragover-container"))
+                    if (isAllow) e.currentTarget.after(document.getElementById("dragover-container"))
                 },
-                dragstart(e){
-                    this.dom = e.currentTarget.outerHTML;
-                    e.target.innerHTML = "<tr draggable='true'><td colspan='4' class='text-secondary'><div class='w-100 text-center'>拖拽至此</div></td></tr>";
-                    e.target.className = "border-dashed-red";
-                    e.target.id = "dragover-container";
+                dragstart(id){
+                    $("#unit-"+id).after($("#dragover-container"));
+                    this.dragoverId = id;
+                    this.isDragover = true;
                 },
                 drop(e){
                     e.preventDefault();
-                    $("#dragover-container").replaceWith(this.dom);
+                    $("#dragover-container").after($("#unit-"+this.dragoverId));
+                    this.dragoverId = "";
+                    this.isDragover = false;
                 },
             }
         });