!98 Optimize the personal center button, etc.
* wip * Optimize the personal center button, etc. * wip * wip * wip * Modify an entry, name -> full name
This commit is contained in:
parent
b88d889861
commit
812b7655af
|
|
@ -25,7 +25,6 @@ class AddressRequest extends FormRequest
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => 'required|min:2|max:16',
|
'name' => 'required|min:2|max:16',
|
||||||
'phone' => 'required|min:6|max:16',
|
|
||||||
'country_id' => 'required|exists:countries,id',
|
'country_id' => 'required|exists:countries,id',
|
||||||
'zone_id' => 'required|exists:zones,id',
|
'zone_id' => 'required|exists:zones,id',
|
||||||
'address_1' => 'required',
|
'address_1' => 'required',
|
||||||
|
|
@ -36,7 +35,6 @@ class AddressRequest extends FormRequest
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => trans('address.name'),
|
'name' => trans('address.name'),
|
||||||
'phone' => trans('address.phone'),
|
|
||||||
'country_id' => trans('address.country_id'),
|
'country_id' => trans('address.country_id'),
|
||||||
'zone_id' => trans('address.zone_id'),
|
'zone_id' => trans('address.zone_id'),
|
||||||
'address_1' => trans('address.address_1'),
|
'address_1' => trans('address.address_1'),
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ h1,h2,h3, h4, h5, h6, b, strong {
|
||||||
|
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,15 @@ body.page-account-address, body.page-checkout {
|
||||||
.addresses-wrap {
|
.addresses-wrap {
|
||||||
.item {
|
.item {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 14px 14px 14px 18px;
|
padding: 14px;
|
||||||
margin-bottom: 1.3rem;
|
margin-bottom: 1.3rem;
|
||||||
border: 1px solid #e8e8e8;
|
border: 1px solid #e5e5e5;
|
||||||
height: 130px;
|
height: 140px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
padding: 10px 10px 10px 14px;
|
padding: 10px;
|
||||||
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -58,6 +59,7 @@ body.page-account-address, body.page-checkout {
|
||||||
|
|
||||||
.zipcode {
|
.zipcode {
|
||||||
margin-bottom: .3rem;
|
margin-bottom: .3rem;
|
||||||
|
min-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.address-info {
|
.address-info {
|
||||||
|
|
@ -67,13 +69,11 @@ body.page-account-address, body.page-checkout {
|
||||||
}
|
}
|
||||||
|
|
||||||
.address-bottom {
|
.address-bottom {
|
||||||
|
min-height: 28px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center; // flex-start | center
|
align-items: center; // flex-start | center
|
||||||
justify-content: space-between; // flex-end | center | space-between
|
justify-content: space-between; // flex-end | center | space-between
|
||||||
// flex-wrap: wrap;
|
// flex-wrap: wrap;
|
||||||
a {
|
|
||||||
color: #2d68a8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -170,9 +170,8 @@ body.page-checkout, body.page-bk-stripe {
|
||||||
align-items: center; // flex-start | center
|
align-items: center; // flex-start | center
|
||||||
padding-right: 4px;
|
padding-right: 4px;
|
||||||
|
|
||||||
img {
|
.img {
|
||||||
width: 40px;
|
flex: 0 0 40px;
|
||||||
margin-right: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.quantity {
|
.quantity {
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ return [
|
||||||
'addresses' => [
|
'addresses' => [
|
||||||
'index' => 'Addresses',
|
'index' => 'Addresses',
|
||||||
'add_address' => 'Add New Address',
|
'add_address' => 'Add New Address',
|
||||||
'default_address' => 'Default Address',
|
'default_address' => 'Default',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
'edit' => 'Edit',
|
'edit' => 'Edit',
|
||||||
'enter_name' => 'Please type in your name',
|
'enter_name' => 'Please type in your name',
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ return [
|
||||||
'index' => '修改个人信息',
|
'index' => '修改个人信息',
|
||||||
'modify_avatar' => '修改头像',
|
'modify_avatar' => '修改头像',
|
||||||
'suggest' => '上传JPG或PNG图片。建议300 x 300。',
|
'suggest' => '上传JPG或PNG图片。建议300 x 300。',
|
||||||
'name' => '名称',
|
'name' => '昵称',
|
||||||
'email' => '邮箱',
|
'email' => '邮箱',
|
||||||
'crop' => '裁剪',
|
'crop' => '裁剪',
|
||||||
'password_edit_success' => '密码修改成功',
|
'password_edit_success' => '密码修改成功',
|
||||||
|
|
@ -48,7 +48,7 @@ return [
|
||||||
'index' => '我的收藏',
|
'index' => '我的收藏',
|
||||||
'product' => '商品',
|
'product' => '商品',
|
||||||
'price' => '价格',
|
'price' => '价格',
|
||||||
'check_details' => '查看详情',
|
'check_details' => '查看',
|
||||||
],
|
],
|
||||||
|
|
||||||
'order' => [
|
'order' => [
|
||||||
|
|
|
||||||
|
|
@ -19,27 +19,27 @@
|
||||||
<div class="card h-min-600">
|
<div class="card h-min-600">
|
||||||
<div class="card-header d-flex justify-content-between align-items-center">
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
<h5 class="card-title">{{ __('shop/account.addresses.index') }}</h5>
|
<h5 class="card-title">{{ __('shop/account.addresses.index') }}</h5>
|
||||||
</div>
|
<button v-if="addresses.length" class="btn btn-primary btn-sm mb-3" @click="editAddress"><i class="bi bi-plus-square-dotted me-1"></i>
|
||||||
<div class="card-body h-600">
|
|
||||||
<button v-if="addresses.length" class="btn btn-dark mb-3" @click="editAddress"><i class="bi bi-plus-square-dotted me-1"></i>
|
|
||||||
{{ __('shop/account.addresses.add_address') }}</button>
|
{{ __('shop/account.addresses.add_address') }}</button>
|
||||||
|
</div>
|
||||||
|
<div class="card-body h-600 pt-0">
|
||||||
<div class="addresses-wrap" v-cloak>
|
<div class="addresses-wrap" v-cloak>
|
||||||
<div class="row" v-if="addresses.length">
|
<div class="row" v-if="addresses.length">
|
||||||
<div class="col-6" v-for="address, index in addresses" :key="index">
|
<div class="col-md-6 col-12" v-for="address, index in addresses" :key="index">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="name-wrap">
|
<div class="name-wrap">
|
||||||
<span class="name">@{{ address.name }}</span>
|
<span class="name">@{{ address.name }}</span>
|
||||||
<span class="phone">@{{ address.phone }}</span>
|
<span class="phone">@{{ address.phone }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="zipcode" style="min-height: 20px">@{{ address.zipcode }}</div>
|
<div class="zipcode">@{{ address.zipcode }}</div>
|
||||||
<div class="address-info">@{{ address.country }} @{{ address.zone }} @{{ address.city }}
|
<div class="address-info">@{{ address.country }} @{{ address.zone }} @{{ address.city }}
|
||||||
@{{ address.address_1 }}</div>
|
@{{ address.address_1 }}</div>
|
||||||
<div class="address-bottom">
|
<div class="address-bottom">
|
||||||
<div><span class="badge bg-success"
|
<div><span class="badge bg-success"
|
||||||
v-if="address.default">{{ __('shop/account.addresses.default_address') }}</span></div>
|
v-if="address.default">{{ __('shop/account.addresses.default_address') }}</span></div>
|
||||||
<div>
|
<div>
|
||||||
<a class="me-2" @click.stop="deleteAddress(index)">{{ __('shop/account.addresses.delete') }}</a>
|
<button type="button" class="me-2 btn btn-outline-secondary btn-sm" @click.stop="deleteAddress(index)">{{ __('shop/account.addresses.delete') }}</button>
|
||||||
<a href="javascript:void(0)" @click.stop="editAddress(index)">{{ __('shop/account.addresses.edit') }}</a>
|
<button type="button" href="javascript:void(0)" class="btn btn-outline-secondary btn-sm" @click.stop="editAddress(index)">{{ __('shop/account.addresses.edit') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
<tr class="{{ $loop->first ? 'first-tr' : '' }}">
|
<tr class="{{ $loop->first ? 'first-tr' : '' }}">
|
||||||
<td>
|
<td>
|
||||||
<div class="product-info">
|
<div class="product-info">
|
||||||
<div class="img border d-flex justify-content-between align-items-center"><img src="{{ $product->image }}" class="img-fluid"></div>
|
<div class="img border d-flex justify-content-center align-items-center wh-60"><img src="{{ $product->image }}" class="img-fluid"></div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<a class="text-dark"
|
<a class="text-dark"
|
||||||
href="{{ shop_route('products.show', ['product' => $product->product_id]) }}">{{ $product->name }}</a>
|
href="{{ shop_route('products.show', ['product' => $product->product_id]) }}">{{ $product->name }}</a>
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@
|
||||||
@foreach ($order->orderProducts as $product)
|
@foreach ($order->orderProducts as $product)
|
||||||
<div class="product-list">
|
<div class="product-list">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="left border d-flex justify-content-between align-items-center"><img src="{{ $product->image }}" class="img-fluid"></div>
|
<div class="left border d-flex justify-content-center align-items-center wh-80"><img src="{{ $product->image }}" class="img-fluid"></div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<a class="text-dark" href="{{ shop_route('products.show', ['product' => $product->product_id]) }}">{{ $product->name }}</a>
|
<a class="text-dark" href="{{ shop_route('products.show', ['product' => $product->product_id]) }}">{{ $product->name }}</a>
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,9 @@
|
||||||
<td>{{ $item['price'] }}</td>
|
<td>{{ $item['price'] }}</td>
|
||||||
<td class="text-end">
|
<td class="text-end">
|
||||||
<div class="">
|
<div class="">
|
||||||
<a class="btn btn-dark btn-sm add-cart"
|
<a class="btn btn-outline-secondary btn-sm add-cart"
|
||||||
href="{{ shop_route('products.show', $item['product_id']) }}">{{ __('shop/account.wishlist.check_details') }}</a>
|
href="{{ shop_route('products.show', $item['product_id']) }}">{{ __('shop/account.wishlist.check_details') }}</a>
|
||||||
<button class="btn btn-danger btn-sm remove-wishlist"><i class="bi bi-x-lg"></i></button>
|
<button class="btn btn-outline-danger btn-sm remove-wishlist"><i class="bi bi-x-lg"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex align-items-center p-image">
|
<div class="d-flex align-items-center p-image">
|
||||||
<input class="form-check-input" type="checkbox" @change="checkedCartTr(index)" v-model="product.selected">
|
<input class="form-check-input" type="checkbox" @change="checkedCartTr(index)" v-model="product.selected">
|
||||||
<div class="border d-flex align-items-center justify-content-between wh-80 ms-3"><img :src="product.image_url" class="img-fluid"></div>
|
<div class="border d-flex align-items-center justify-content-center wh-80 ms-3"><img :src="product.image_url" class="img-fluid"></div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,9 @@
|
||||||
@foreach ($carts['carts'] as $cart)
|
@foreach ($carts['carts'] as $cart)
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="image">
|
<div class="image">
|
||||||
<img src="{{ $cart['image'] }}" class="img-fluid">
|
<div class="img border d-flex align-items-center justify-content-center wh-40 me-2">
|
||||||
|
<img src="{{ image_resize($cart['image'], 100, 100) }}" class="img-fluid">
|
||||||
|
</div>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div title="{{ $cart['name'] }}" class="text-truncate-2">{{ $cart['name'] }}</div>
|
<div title="{{ $cart['name'] }}" class="text-truncate-2">{{ $cart['name'] }}</div>
|
||||||
@if ($cart['variant_labels'])
|
@if ($cart['variant_labels'])
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
<span class="badge bg-success"
|
<span class="badge bg-success"
|
||||||
v-if="form.shipping_address_id == address.id">{{ __('shop/checkout.chosen') }}</span>
|
v-if="form.shipping_address_id == address.id">{{ __('shop/checkout.chosen') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a href="javascript:void(0)" class=""
|
<button type="button" class="btn btn-outline-secondary btn-sm"
|
||||||
@click.stop="editAddress(index, 'shipping_address_id')">{{ __('shop/checkout.edit') }}</a>
|
@click.stop="editAddress(index, 'shipping_address_id')">{{ __('shop/checkout.edit') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -59,8 +59,8 @@
|
||||||
<div>
|
<div>
|
||||||
<span class="badge bg-success">{{ __('shop/checkout.chosen') }}</span>
|
<span class="badge bg-success">{{ __('shop/checkout.chosen') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a class="javascript:void(0)"
|
<button type="button" class="btn btn-outline-secondary btn-sm"
|
||||||
@click.stop="editAddress(null, 'guest_shipping_address')">{{ __('shop/checkout.edit') }}</a>
|
@click.stop="editAddress(null, 'guest_shipping_address')">{{ __('shop/checkout.edit') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,6 @@
|
||||||
<el-input v-model="form.email"></el-input>
|
<el-input v-model="form.email"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@endif
|
@endif
|
||||||
<el-form-item label="{{ __('address.phone') }}" prop="phone">
|
|
||||||
<el-input maxlength="11" v-model="form.phone" type="number"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="{{ __('address.address') }}" required>
|
<el-form-item label="{{ __('address.address') }}" required>
|
||||||
<div class="row dialog-address">
|
<div class="row dialog-address">
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
|
|
@ -40,15 +37,18 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="{{ __('address.post_code') }}" prop="zipcode">
|
|
||||||
<el-input v-model="form.zipcode"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="{{ __('address.address_1') }}" prop="address_1">
|
<el-form-item label="{{ __('address.address_1') }}" prop="address_1">
|
||||||
<el-input v-model="form.address_1"></el-input>
|
<el-input v-model="form.address_1"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="{{ __('address.address_2') }}">
|
<el-form-item label="{{ __('address.address_2') }}">
|
||||||
<el-input v-model="form.address_2"></el-input>
|
<el-input v-model="form.address_2"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="{{ __('address.post_code') }}" prop="zipcode">
|
||||||
|
<el-input v-model="form.zipcode"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="{{ __('address.phone') }}">
|
||||||
|
<el-input maxlength="11" v-model="form.phone" type="number"></el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="{{ __('address.default') }}" v-if="source.isLogin">
|
<el-form-item label="{{ __('address.default') }}" v-if="source.isLogin">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.default"
|
v-model="form.default"
|
||||||
|
|
@ -102,11 +102,6 @@
|
||||||
message: '{{ __('shop/login.enter_email') }}',
|
message: '{{ __('shop/login.enter_email') }}',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}, ],
|
}, ],
|
||||||
phone: [{
|
|
||||||
required: true,
|
|
||||||
message: '{{ __('shop/account.addresses.enter_phone') }}',
|
|
||||||
trigger: 'blur'
|
|
||||||
}, ],
|
|
||||||
address_1: [{
|
address_1: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: ' {{ __('shop/account.addresses.enter_address') }}',
|
message: ' {{ __('shop/account.addresses.enter_address') }}',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue