v1.2 修改完成
This commit is contained in:
parent
b57dcf54b0
commit
6395744c56
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 20 KiB |
|
|
@ -107,23 +107,85 @@
|
|||
<div>
|
||||
<h5 class="border-bottom pb-3 mb-4">{{ __('admin/product.stocks') }}</h5>
|
||||
|
||||
<x-admin::form.row title="{{ __('admin/product.price_setting') }}">
|
||||
<x-admin::form.row title="{{ __('admin/product.price_setting_by.num') }}">
|
||||
<div class="mb-1 mt-2">
|
||||
<div class="form-check form-check-inline">
|
||||
<input v-model="form.price_setting" class="form-check-input" id="price_setting-sku" type="radio" name="price_setting" id="price_setting-sku" value="sku" {{ $product->price_setting == 'sku' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="price_setting-sku">{{ __('admin/product.price_setting_by.sku') }}</label>
|
||||
<label class="form-check-label" for="price_setting-sku">{{ __('common.disable') }}</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input v-model="form.price_setting" class="form-check-input" id="price_setting-num" type="radio" name="price_setting" id="price_setting-num" value="num" {{ $product->price_setting == 'num' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="price_setting-num">{{ __('admin/product.price_setting_by.num') }}</label>
|
||||
<label class="form-check-label" for="price_setting-num">{{ __('common.enable') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</x-admin::form.row>
|
||||
|
||||
<span v-if="form.price_setting === 'num'">
|
||||
{{-- 阶梯价格设置表格 (最小起订量,产品价格),预览,可以增加删除价格区间--}}
|
||||
<div class="price_setting_by_num">
|
||||
<div class="left">
|
||||
<div class="head">
|
||||
<div class="num" >最小起订量</div>
|
||||
<div class="price">产品价格</div>
|
||||
<div class="delete">删除</div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="item" v-for="(item,index) in form.numPrices">
|
||||
<div class="num">
|
||||
<div class="top">
|
||||
<div class="title">≧</div>
|
||||
<input type="number" :name="'numPrices[' + index + '][num]'" v-model="item.num" value="" placeholder="数量" required="required" class="form-control wp-100">
|
||||
</div>
|
||||
<div class="tip" ><span style="visibility: hidden;">_</span><span v-if="item.num">@{{ item.num }}件</span></div>
|
||||
</div>
|
||||
<div class="price">
|
||||
<input type="number" :name="'numPrices[' + index + '][price]'" v-model="item.price" value="" placeholder="价格" required="required" step="any" class="form-control wp-100">
|
||||
<div class="tip" v-if="item.price">@{{ item.num }}件等于价格:@{{ item.num * item.price }}</div>
|
||||
</div>
|
||||
<div class="delete" @click="removeNumPrices(index)"><a style="cursor: pointer;color: #0072ff;">删除</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<a style="cursor: pointer;color: #0072ff;" @click="addNumPrices"> {{ __('admin/product.add_variable') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="head">
|
||||
预览
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="item" v-for="(item,index) in form.numPrices">
|
||||
<div class="num" v-if="index < form.numPrices.length - 1">@{{ item.num }} ~ @{{ form.numPrices[index + 1].num - 1 }}</div>
|
||||
<div class="num" v-else-if="item.num">≧@{{ item.num }}</div>
|
||||
<div class="price" v-if="item.price">价格@{{ item.price }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input class="form-control d-none" :value="numPricesIsEmpty" required>
|
||||
<div class="invalid-feedback" style="font-size: 16px;margin-left: 200px;"><i class="bi bi-exclamation-circle-fill"></i> 新增价格区间</div>
|
||||
<template>
|
||||
{{-- <input type="hidden" value="{{ old('skus.0.image', $product->skus[0]->image ?? '') }}" name="skus[0][image]">--}}
|
||||
{{-- <x-admin-form-input name="skus[0][model]" :title="__('admin/product.model')" :value="old('skus.0.model', $product->skus[0]->model ?? '')" />--}}
|
||||
{{-- <x-admin-form-input name="skus[0][sku]" title="sku" :value="old('skus.0.sku', $product->skus[0]->sku ?? '')" required />--}}
|
||||
{{-- <x-admin-form-input name="skus[0][price]" type="number" :title="__('admin/product.price')" :value="old('skus.0.price', $product->skus[0]->price ?? '')" step="any" required />--}}
|
||||
{{-- --}}{{-- <x-admin-form-input name="skus[0][origin_price]" type="number" :title="__('admin/product.origin_price')" :value="old('skus.0.origin_price', $product->skus[0]->origin_price ?? '')" step="any" required />--}}
|
||||
{{-- <x-admin-form-input name="skus[0][cost_price]" type="number" :title="__('admin/product.cost_price')" :value="old('skus.0.cost_price', $product->skus[0]->cost_price ?? '')" />--}}
|
||||
{{-- <x-admin-form-input name="skus[0][quantity]" type="number" :title="__('admin/product.quantity')" :value="old('skus.0.quantity', $product->skus[0]->quantity ?? '')" />--}}
|
||||
{{-- <input type="hidden" name="skus[0][price]" placeholder="variants" :value="form.numPrices.length !== 0 ? form.numPrices[0].price : ''">--}}
|
||||
{{-- <input type="hidden" name="skus[0][origin_price]" placeholder="position" :value="form.numPrices.length !== 0 ? form.numPrices[form.numPrices.length - 1].price : ''">--}}
|
||||
{{-- <input type="hidden" name="skus[0][variants]" placeholder="variants" value="">--}}
|
||||
{{-- <input type="hidden" name="skus[0][position]" placeholder="position" value="0">--}}
|
||||
{{-- <input type="hidden" name="skus[0][is_default]" placeholder="is_default" value="1">--}}
|
||||
</template>
|
||||
</span>
|
||||
|
||||
<input type="hidden" name="variables" :value="JSON.stringify(form.variables)">
|
||||
|
||||
<span v-if="form.price_setting === 'sku'">
|
||||
<input type="hidden" name="numPrices" value="">
|
||||
<input type="hidden" name="numPrices" value="" v-if="form.price_setting === 'sku'">
|
||||
|
||||
|
||||
<x-admin::form.row :title="__('admin/product.enable_multi_spec')">
|
||||
<el-switch v-model="editing.isVariable" @change="isVariableChange" class="mt-2"></el-switch>
|
||||
</x-admin::form.row>
|
||||
|
|
@ -205,8 +267,8 @@
|
|||
</div>
|
||||
<input type="text" class="form-control me-2 bg-white" v-model="variablesBatch.model" placeholder="{{ __('admin/product.model') }}">
|
||||
<input type="text" class="form-control me-2 bg-white" v-model="variablesBatch.sku" placeholder="sku">
|
||||
<input type="number" class="form-control me-2 bg-white" v-model="variablesBatch.price" placeholder="{{ __('admin/product.price') }}">
|
||||
<input type="number" class="form-control me-2 bg-white" v-model="variablesBatch.origin_price" placeholder="{{ __('admin/product.origin_price') }}">
|
||||
<input type="number" v-if="form.price_setting === 'sku'" class="form-control me-2 bg-white" v-model="variablesBatch.price" placeholder="{{ __('admin/product.price') }}">
|
||||
<input type="number" v-if="form.price_setting === 'sku'" class="form-control me-2 bg-white" v-model="variablesBatch.origin_price" placeholder="{{ __('admin/product.origin_price') }}">
|
||||
<input type="number" class="form-control me-2 bg-white" v-model="variablesBatch.cost_price" placeholder="{{ __('admin/product.cost_price') }}">
|
||||
<input type="number" class="form-control me-2 bg-white" v-model="variablesBatch.quantity" placeholder="{{ __('admin/product.quantity') }}">
|
||||
<button type="button" class="btn btn-primary text-nowrap" @click="batchSettingVariant">{{ __('common.batch_setting') }}</button>
|
||||
|
|
@ -220,8 +282,8 @@
|
|||
<th width="106px">{{ __('common.image') }}</th>
|
||||
<th class="w-min-100">{{ __('admin/product.model') }}</th>
|
||||
<th class="w-min-100">sku</th>
|
||||
<th class="w-min-100">{{ __('admin/product.price') }}</th>
|
||||
<th class="w-min-100">{{ __('admin/product.origin_price') }}</th>
|
||||
<th v-if="form.price_setting === 'sku'" class="w-min-100">{{ __('admin/product.price') }}</th>
|
||||
<th v-if="form.price_setting === 'sku'" class="w-min-100">{{ __('admin/product.origin_price') }}</th>
|
||||
<th class="w-min-100">{{ __('admin/product.cost_price') }}</th>
|
||||
<th class="w-min-100">{{ __('admin/product.quantity') }}</th>
|
||||
</thead>
|
||||
|
|
@ -256,15 +318,19 @@
|
|||
<span role="alert" class="invalid-feedback">{{ __('common.error_required', ['name' => 'sku']) }}</span>
|
||||
<span v-if="sku.is_default" class="text-success">{{ __('admin/product.default_main_product') }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" class="form-control" v-model="sku.price" :name="'skus[' + skuIndex + '][price]'" step="any"
|
||||
placeholder="{{ __('admin/product.price') }}" required>
|
||||
<span role="alert" class="invalid-feedback">{{ __('common.error_required', ['name' => __('admin/product.price')]) }}</span>
|
||||
</td>
|
||||
<td><input type="number" class="form-control" v-model="sku.origin_price" :name="'skus[' + skuIndex + '][origin_price]'" step="any"
|
||||
placeholder="{{ __('admin/product.origin_price') }}" required>
|
||||
<span role="alert" class="invalid-feedback">{{ __('common.error_required', ['name' => __('admin/product.origin_price')]) }}</span>
|
||||
</td>
|
||||
<td v-if="form.price_setting === 'sku'">
|
||||
<input type="number" class="form-control" v-model="sku.price" :name="'skus[' + skuIndex + '][price]'" step="any"
|
||||
placeholder="{{ __('admin/product.price') }}" required>
|
||||
<span role="alert" class="invalid-feedback">{{ __('common.error_required', ['name' => __('admin/product.price')]) }}</span>
|
||||
</td>
|
||||
<td v-if="form.price_setting === 'sku'">
|
||||
<input type="number" class="form-control" v-model="sku.origin_price" :name="'skus[' + skuIndex + '][origin_price]'" step="any"
|
||||
placeholder="{{ __('admin/product.origin_price') }}" required>
|
||||
<span role="alert" class="invalid-feedback">{{ __('common.error_required', ['name' => __('admin/product.origin_price')]) }}</span>
|
||||
</td>
|
||||
<input type="hidden" :name="'skus[' + skuIndex + '][price]'" v-if="form.price_setting === 'num'" placeholder="variants" :value="form.numPrices.length !== 0 ? form.numPrices[0].price : ''">
|
||||
<input type="hidden" :name="'skus[' + skuIndex + '][origin_price]'" v-if="form.price_setting === 'num'" placeholder="position" :value="form.numPrices.length !== 0 ? form.numPrices[form.numPrices.length - 1].price : ''">
|
||||
|
||||
<td><input type="number" class="form-control" v-model="sku.cost_price" :name="'skus[' + skuIndex + '][cost_price]'"
|
||||
placeholder="{{ __('admin/product.cost_price') }}">
|
||||
</td>
|
||||
|
|
@ -284,76 +350,18 @@
|
|||
<input type="hidden" value="{{ old('skus.0.image', $product->skus[0]->image ?? '') }}" name="skus[0][image]">
|
||||
<x-admin-form-input name="skus[0][model]" :title="__('admin/product.model')" :value="old('skus.0.model', $product->skus[0]->model ?? '')" />
|
||||
<x-admin-form-input name="skus[0][sku]" title="sku" :value="old('skus.0.sku', $product->skus[0]->sku ?? '')" required />
|
||||
<x-admin-form-input name="skus[0][price]" type="number" :title="__('admin/product.price')" :value="old('skus.0.price', $product->skus[0]->price ?? '')" step="any" required />
|
||||
<x-admin-form-input name="skus[0][origin_price]" type="number" :title="__('admin/product.origin_price')" :value="old('skus.0.origin_price', $product->skus[0]->origin_price ?? '')" step="any" required />
|
||||
<span v-if="form.price_setting === 'sku'">
|
||||
<x-admin-form-input name="skus[0][price]" type="number" :title="__('admin/product.price')" :value="old('skus.0.price', $product->skus[0]->price ?? '')" step="any" required />
|
||||
<x-admin-form-input name="skus[0][origin_price]" type="number" :title="__('admin/product.origin_price')" :value="old('skus.0.origin_price', $product->skus[0]->origin_price ?? '')" step="any" required />
|
||||
</span>
|
||||
<x-admin-form-input name="skus[0][cost_price]" type="number" :title="__('admin/product.cost_price')" :value="old('skus.0.cost_price', $product->skus[0]->cost_price ?? '')" />
|
||||
<x-admin-form-input name="skus[0][quantity]" type="number" :title="__('admin/product.quantity')" :value="old('skus.0.quantity', $product->skus[0]->quantity ?? '')" />
|
||||
<input type="hidden" name="skus[0][price]" v-if="form.price_setting === 'num'" placeholder="variants" :value="form.numPrices.length !== 0 ? form.numPrices[0].price : ''">
|
||||
<input type="hidden" name="skus[0][origin_price]" v-if="form.price_setting === 'num'" placeholder="position" :value="form.numPrices.length !== 0 ? form.numPrices[form.numPrices.length - 1].price : ''">
|
||||
<input type="hidden" name="skus[0][variants]" placeholder="variants" value="">
|
||||
<input type="hidden" name="skus[0][position]" placeholder="position" value="0">
|
||||
<input type="hidden" name="skus[0][is_default]" placeholder="is_default" value="1">
|
||||
</template>
|
||||
</span>
|
||||
|
||||
<span v-if="form.price_setting === 'num'">
|
||||
{{-- 阶梯价格设置表格 (最小起订量,产品价格),预览,可以增加删除价格区间--}}
|
||||
<div class="price_setting_by_num">
|
||||
<div class="left">
|
||||
<div class="head">
|
||||
<div class="num" >最小起订量</div>
|
||||
<div class="price">产品价格</div>
|
||||
<div class="delete">删除</div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="item" v-for="(item,index) in form.numPrices">
|
||||
<div class="num">
|
||||
<div class="top">
|
||||
<div class="title">≧</div>
|
||||
<input type="number" :name="'numPrices[' + index + '][num]'" v-model="item.num" value="" placeholder="数量" required="required" class="form-control wp-100">
|
||||
</div>
|
||||
<div class="tip" ><span style="visibility: hidden;">_</span><span v-if="item.num">@{{ item.num }}件</span></div>
|
||||
</div>
|
||||
<div class="price">
|
||||
<input type="number" :name="'numPrices[' + index + '][price]'" v-model="item.price" value="" placeholder="价格" required="required" step="any" class="form-control wp-100">
|
||||
<div class="tip" v-if="item.price">@{{ item.num }}件等于价格:@{{ item.num * item.price }}</div>
|
||||
</div>
|
||||
<div class="delete" @click="removeNumPrices(index)"><a style="cursor: pointer;color: #0072ff;">删除</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<a style="cursor: pointer;color: #0072ff;" @click="addNumPrices"> {{ __('admin/product.add_variable') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="head">
|
||||
预览
|
||||
</div>
|
||||
<div class="body">
|
||||
<div class="item" v-for="(item,index) in form.numPrices">
|
||||
<div class="num" v-if="index < form.numPrices.length - 1">@{{ item.num }} ~ @{{ form.numPrices[index + 1].num - 1 }}</div>
|
||||
<div class="num" v-else-if="item.num">≧@{{ item.num }}</div>
|
||||
<div class="price" v-if="item.price">价格@{{ item.price }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input class="form-control d-none" :value="numPricesIsEmpty" required>
|
||||
<div class="invalid-feedback" style="font-size: 16px;margin-left: 200px;"><i class="bi bi-exclamation-circle-fill"></i> 新增价格区间</div>
|
||||
<template>
|
||||
<input type="hidden" value="{{ old('skus.0.image', $product->skus[0]->image ?? '') }}" name="skus[0][image]">
|
||||
<x-admin-form-input name="skus[0][model]" :title="__('admin/product.model')" :value="old('skus.0.model', $product->skus[0]->model ?? '')" />
|
||||
<x-admin-form-input name="skus[0][sku]" title="sku" :value="old('skus.0.sku', $product->skus[0]->sku ?? '')" required />
|
||||
{{-- <x-admin-form-input name="skus[0][price]" type="number" :title="__('admin/product.price')" :value="old('skus.0.price', $product->skus[0]->price ?? '')" step="any" required />--}}
|
||||
{{-- <x-admin-form-input name="skus[0][origin_price]" type="number" :title="__('admin/product.origin_price')" :value="old('skus.0.origin_price', $product->skus[0]->origin_price ?? '')" step="any" required />--}}
|
||||
<x-admin-form-input name="skus[0][cost_price]" type="number" :title="__('admin/product.cost_price')" :value="old('skus.0.cost_price', $product->skus[0]->cost_price ?? '')" />
|
||||
<x-admin-form-input name="skus[0][quantity]" type="number" :title="__('admin/product.quantity')" :value="old('skus.0.quantity', $product->skus[0]->quantity ?? '')" />
|
||||
<input type="hidden" name="skus[0][price]" placeholder="variants" :value="form.numPrices.length !== 0 ? form.numPrices[0].price : ''">
|
||||
<input type="hidden" name="skus[0][origin_price]" placeholder="position" :value="form.numPrices.length !== 0 ? form.numPrices[form.numPrices.length - 1].price : ''">
|
||||
<input type="hidden" name="skus[0][variants]" placeholder="variants" value="">
|
||||
<input type="hidden" name="skus[0][position]" placeholder="position" value="0">
|
||||
<input type="hidden" name="skus[0][is_default]" placeholder="is_default" value="1">
|
||||
</template>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab-descriptions">
|
||||
|
|
@ -689,7 +697,7 @@
|
|||
|
||||
// 表单提交,检测是否开启多规格 做处理
|
||||
productsSubmit() {
|
||||
if (!this.editing.isVariable || this.form.price_setting === 'num') {
|
||||
if (!this.editing.isVariable) {
|
||||
this.source.variables = [];
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -10,6 +10,6 @@
|
|||
*/
|
||||
|
||||
return [
|
||||
'plugins_index' => '登录到 BeikeShop 后台',
|
||||
'plugins_index' => '登录到 万有引力 后台',
|
||||
'log_in' => '登录',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<title>@yield('title', system_setting('base.meta_title', 'BeikeShop开源好用的跨境电商系统 - BeikeShop官网') )</title><!-- . ' Powered By BeikeShop' -->
|
||||
<title>@yield('title', system_setting('base.meta_title', 'BeikeShop开源好用的跨境电商系统 - BeikeShop官网') . ' Powered By 万有引力')</title>
|
||||
<meta name="keywords" content="@yield('keywords', system_setting('base.meta_keywords'))">
|
||||
<meta name="description" content="@yield('description', system_setting('base.meta_description'))">
|
||||
<meta name="generator" content="BeikeShop v{{ config('beike.version') }}({{ config('beike.build') }})">
|
||||
|
|
|
|||
|
|
@ -163,12 +163,6 @@
|
|||
@click="addCart(true, this)"
|
||||
><i class="bi bi-bag-fill me-1"></i>{{ __('shop/products.buy_now') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-outline-dark ms-md-3 add-cart fw-bold"
|
||||
:disabled="!product.quantity"
|
||||
@click="centerDialogVisable = true"
|
||||
><i class="bi bi-globe me-1"></i>{{ __('shop/products.inquiry') }}
|
||||
</button>
|
||||
@hook('product.detail.buy.after')
|
||||
</div>
|
||||
<div class="add-wishlist">
|
||||
|
|
@ -179,6 +173,13 @@
|
|||
@else
|
||||
{{-- <div class="text-danger"><i class="bi bi-exclamation-circle-fill"></i> {{ __('product.has_been_inactive') }}</div>--}}
|
||||
@endif
|
||||
<button
|
||||
style="width: 16em;"
|
||||
class="btn btn-outline-dark my-lg-2 add-cart fw-bold"
|
||||
:disabled="!product.quantity"
|
||||
@click="centerDialogVisable = true"
|
||||
><i class="bi bi-globe me-1"></i>{{ __('shop/products.inquiry') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -34,10 +34,18 @@
|
|||
<div class="product-bottom-info">
|
||||
<div class="product-name">{{ $product['name_format'] }}</div>
|
||||
<div class="product-price">
|
||||
<span class="price-new">{{ $product['price_format'] }}</span>
|
||||
<span>-</span>
|
||||
@if ($product['price'] != $product['origin_price'] && $product['origin_price'] > 0)
|
||||
<span class="price-new">{{ $product['origin_price_format'] }}</span>
|
||||
@if ($product['price_setting'] === 'sku')
|
||||
<span class="price-new">{{ $product['price_format'] }}</span>
|
||||
<span>-</span>
|
||||
@if ($product['price'] != $product['origin_price'] && $product['origin_price'] > 0)
|
||||
<span class="price-new">{{ $product['origin_price_format'] }}</span>
|
||||
@endif
|
||||
@elseif($product['price_setting'] === 'num')
|
||||
@if ($product['price'] != $product['origin_price'] && $product['origin_price'] > 0)
|
||||
<span class="price-new">{{ $product['origin_price_format'] }}</span>
|
||||
@endif
|
||||
<span>-</span>
|
||||
<span class="price-new">{{ $product['price_format'] }}</span>
|
||||
@endif
|
||||
<span style="color:#aaa">/pieces</span>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue