!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:
pushuo 2023-05-15 10:15:27 +00:00 committed by Edward Yang
parent b88d889861
commit 812b7655af
14 changed files with 38 additions and 43 deletions

View File

@ -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'),

View File

@ -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;
} }

View File

@ -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;
}
} }
} }
} }

View File

@ -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 {

View File

@ -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',

View File

@ -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' => [

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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'])

View File

@ -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>

View File

@ -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') }}',