fix dashboard and order ui & fix address select component and added reference to addresses

This commit is contained in:
omair saleh
2021-08-12 15:01:16 +08:00
parent f876cc5822
commit fc0786264a
56 changed files with 1423 additions and 946 deletions
@@ -0,0 +1,13 @@
<?php
namespace App\Classes\General\Interfaces;
use Illuminate\Database\Eloquent\Relations\MorphMany;
interface Addressable
{
public function addresses(): morphMany;
}
@@ -66,13 +66,13 @@ class CreateAddressLogic extends AbstractControllerLogic
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'));
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'), $request->input('reference'));
$this->canCreateAddress->passes($object);
$query = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
$address = $this->createsAddress->execute($this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]), $object);
return $this->resourceResponse(new AddressResource($query));
return $this->resourceResponse(new AddressResource($address));
}
@@ -50,23 +50,20 @@ class DeleteAddressLogic extends AbstractControllerLogic
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request) : JsonResponse
{
try {
$this->canDeleteAddress->passes();
$this->canDeleteAddress->passes();
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$this->deletesAddress->execute($query);
$this->deletesAddress->execute($query);
return $this->response([]);
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
return $this->response([]);
}
@@ -45,21 +45,16 @@ class FetchAddressLogic extends AbstractControllerLogic
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request) : JsonResponse
{
try {
$this->canFetchAddress->passes();
$this->canFetchAddress->passes();
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
return $this->resourceResponse(new AddressResource($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
return $this->resourceResponse(new AddressResource($query));
}
@@ -45,21 +45,18 @@ class ListAddressesLogic extends AbstractControllerLogic
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request) : JsonResponse
{
try {
$this->canListAddresses->passes();
$this->canListAddresses->passes();
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
$query = $this->listsAddresses->execute($this->listsAddresses->deserializeFilters($request->input('filters')));
return $this->collectionResponse(AddressResource::collection($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
return $this->collectionResponse(AddressResource::collection($query));
}
@@ -2,17 +2,13 @@
namespace App\Classes\Modules\Addresses\ControllersLogic;
use App\Classes\General\Interfaces\Addressable;
use App\Http\Resources\AddressResource;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Addresses\Services\FetchesAddress;
use App\Classes\Modules\Addresses\Standards\Rules\CanUpdateAddress;
use App\Classes\Modules\Addresses\Services\ResetsAddressesDefault;
use App\Classes\Modules\Addresses\Services\SetsAddressToDefault;
use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
use App\Models\Address;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -31,30 +27,27 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
];
}
/** @var ResetsAddressesDefault */
private $resetsAddressesDefault;
/** @var FetchesAddress */
private $fetchesAddress;
/** @var ResetsAddressesDefault */
private $resetsAddressesDefault;
/** @var SetsAddressToDefault*/
private $setsAddressToDefault;
/** @var FetchesCompanyModule*/
private $fetchesCompanyModule;
/**
* SetAddressToDefaultLogic constructor.
* @param ResetsAddressesDefault $resetsAddressesDefault
* @param FetchesAddress $fetchesAddress
* @param ResetsAddressesDefault $resetsAddressesDefault
* @param SetsAddressToDefault $setsAddressToDefault
*/
public function __construct(ResetsAddressesDefault $resetsAddressesDefault, FetchesAddress $fetchesAddress, SetsAddressToDefault $setsAddressToDefault , FetchesCompanyModule $fetchesCompanyModule)
public function __construct(FetchesAddress $fetchesAddress, ResetsAddressesDefault $resetsAddressesDefault, SetsAddressToDefault $setsAddressToDefault)
{
$this->resetsAddressesDefault = $resetsAddressesDefault;
$this->fetchesAddress = $fetchesAddress;
$this->resetsAddressesDefault = $resetsAddressesDefault;
$this->setsAddressToDefault = $setsAddressToDefault;
$this->fetchesCompanyModule = $fetchesCompanyModule;
}
/**
@@ -69,10 +62,9 @@ class SetAddressToDefaultLogic extends AbstractControllerLogic
$address = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
$this->resetsAddressesDefault->execute($companyModule);
$this->resetsAddressesDefault->execute($address->owner, $address->type);
return $this->resourceResponse(new AddressResource($this->setsAddressToDefault->execute($address)));
}
}
@@ -10,7 +10,6 @@ use App\Classes\Modules\Addresses\Services\FetchesDistrict;
use App\Classes\Modules\Addresses\Standards\Rules\CanUpdateAddress;
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
use App\Http\Resources\AddressResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -58,28 +57,23 @@ class UpdateAddressLogic extends AbstractControllerLogic
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function logic(Request $request) : JsonResponse
{
try {
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
$district = $this->fetchesDistrict->execute(['id' => $request->input('district_id')]);
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'));
//$object = new AddressObject($request->input('company_id'), $request->input('street_one'), $request->input('street_two'), $request->input('city'), $request->input('state'), $request->input('post_code'), $request->input('country'), $request->input('default'), $request->input('billing'));
$object = new AddressObject($request->input('street_one'), $request->input('street_two'), $district->country_id, $district->state_id, $district->id, $request->input('post_code'), $request->input('reference'));
$this->canUpdateAddress->passes($object);
$this->canUpdateAddress->passes($object);
$query = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$address = $this->fetchesAddress->execute(['id' => $request->route('id')]);
$query = $this->updatesAddress->execute($query, $object);
$address = $this->updatesAddress->execute($address, $object);
return $this->resourceResponse(new AddressResource($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
return $this->resourceResponse(new AddressResource($address));
}
@@ -25,6 +25,9 @@ class AddressObject implements DataTransferObject
/** @var int */
private $postCode;
/** @var string|null */
private $reference;
/**
* AddressObject constructor.
* @param string $streetOne
@@ -33,8 +36,9 @@ class AddressObject implements DataTransferObject
* @param int $stateId
* @param int $districtId
* @param int $postCode
* @param null|string $reference
*/
public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode)
public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode, ?string $reference = null)
{
$this->streetOne = $streetOne;
$this->streetTwo = $streetTwo;
@@ -42,6 +46,7 @@ class AddressObject implements DataTransferObject
$this->stateId = $stateId;
$this->districtId = $districtId;
$this->postCode = $postCode;
$this->reference = $reference;
}
/**
@@ -92,5 +97,13 @@ class AddressObject implements DataTransferObject
return $this->postCode;
}
/**
* @return null|string
*/
public function getReference(): ?string
{
return $this->reference;
}
}
@@ -22,7 +22,8 @@ class CreateOrderAddressProcessor
/**
* CreateAddressProcessor constructor.
* @param CanCreateAddress $canCreateAddress
* @param CreatesAddress $CreatesAddress
* @param CreatesOrderAddress $createsOrderAddress
* @param FetchesAddress $fetchesAddress
*/
public function __construct(CanCreateAddress $canCreateAddress, CreatesOrderAddress $createsOrderAddress, FetchesAddress $fetchesAddress)
{
@@ -38,9 +39,9 @@ class CreateOrderAddressProcessor
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
public function execute(int $address_id, Order $order): Model {
public function execute(int $address, Order $order): Model {
$address = $this->fetchesAddress->getRepository()->whereIn('id',[$address_id])->first();
$address = $this->fetchesAddress->execute(['id' => $address_id]);
// $this->canCreateAddress->passes($object);
@@ -2,8 +2,8 @@
namespace App\Classes\Modules\Addresses\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\General\Interfaces\Addressable;
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
use App\Models\Address;
use App\Models\CompanyModule;
@@ -12,13 +12,16 @@ class CreatesAddress extends AbstractUpdateRelationshipRecord
{
/**
* @param Company $company
* @param Addressable $addressable
* @param AddressObject $object
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(CompanyModule $companyModule, AddressObject $object) {
public function execute(Addressable $addressable, AddressObject $object) {
$model = new Address();
$model->reference = $object->getReference();
$model->street_one = $object->getStreetOne();
$model->street_two = $object->getStreetTwo();
$model->country_id = $object->getCountryId();
@@ -26,7 +29,7 @@ class CreatesAddress extends AbstractUpdateRelationshipRecord
$model->district_id = $object->getDistrictId();
$model->postcode = $object->getPostCode();
return $this->handler($companyModule->addresses(), $model);
return $this->handler($addressable->addresses(), $model);
}
}
@@ -3,6 +3,7 @@
namespace App\Classes\Modules\Addresses\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Interfaces\Addressable;
use App\Models\Address;
use App\Models\CompanyModule;
@@ -10,11 +11,12 @@ class ResetsAddressesDefault extends AbstractUpdateRecord
{
/**
* @param Address $address
* @param Addressable $addressable
* @param int $type
* @return void
*/
public function execute(CompanyModule $companyModule)
public function execute(Addressable $addressable, int $type)
{
$companyModule->addresses()->update(['default' => false]);
$addressable->addresses()->where('type', $type)->update(['default' => false]);
}
}
@@ -17,15 +17,13 @@ class UpdatesAddress extends AbstractUpdateRecord
*/
public function execute(Address $model, AddressObject $object) {
//$model->company_id = $object->getCompanyId();
$model->reference = $object->getReference();
$model->street_one = $object->getStreetOne();
$model->street_two = $object->getStreetTwo();
$model->district_id = $object->getDistrictId();
$model->state_id = $object->getStateId();
$model->postcode = $object->getPostCode();
$model->country_id = $object->getCountryId();
//$model->default = $object->getDefault();
//$model->billing = $object->getBilling();
return $this->handler($model);
@@ -2,11 +2,15 @@
namespace App\Classes\Modules\Orders\Processors;
use App\Classes\Modules\Addresses\DataTransferObjects\AddressObject;
use App\Classes\Modules\Addresses\Services\CreatesAddress;
use App\Classes\Modules\Addresses\Services\FetchesAddress;
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
use App\Classes\Modules\Orders\Services\CreatesOrder;
use App\Classes\Modules\Orders\Standards\Rules\CanCreateOrder;
use App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor;
use App\Classes\Modules\OrderSteps\Processors\CreateOrderStepsProcessor;
use App\Classes\Modules\Unity\Services\CreatesContract;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\OrderSteps;
use App\Classes\ValueObjects\Constants\OrderType;
@@ -20,42 +24,69 @@ use Illuminate\Http\Request;
class CreateOrderProcessor
{
/** @var CanCreateOrder */
private $canCreateOrder;
/** @var CreatesOrder */
private $createsOrder;
/** @var ConfirmOrderProcessor */
private $confirmOrderProcessor;
/** @var CreateOrderStepsProcessor */
private $createOrderStepsProcessor;
/** @var CreatesContract */
private $unityCreateContract;
/** @var AssignContractEntityProcessor */
private $unityAssignContractEntity;
/** @var CreateContractEntityProcessor */
private $unityCreateContractEntity;
/** @var ActivateContractProcessor */
private $unityActivateContract;
/** @var CreateOrderRoleProcessor */
private $createOrderRoleProcessor;
private $createOrderAddressProcessor;
/** @var CreatesAddress */
private $createAddress;
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor, CreateOrderRoleProcessor $createOrderRoleProcessor, CreateOrderAddressProcessor $createOrderAddressProcessor, CreateContractProcessor $unityCreateContract, CreateContractEntityProcessor $unityCreateContractEntity, AssignContractEntityProcessor $unityAssignContractEntity, ActivateContractProcessor $unityActivateContract)
/** @var FetchesAddress */
private $fetchesAddress;
/**
* CreateOrderProcessor constructor.
* @param CanCreateOrder $canCreateOrder
* @param CreatesOrder $createsOrder
* @param \App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor $confirmOrderProcessor
* @param CreateOrderStepsProcessor $createOrderStepsProcessor
* @param CreatesContract $unityCreateContract
* @param AssignContractEntityProcessor $unityAssignContractEntity
* @param CreateContractEntityProcessor $unityCreateContractEntity
* @param ActivateContractProcessor $unityActivateContract
* @param \App\Classes\Modules\Orders\Processors\CreateOrderRoleProcessor $createOrderRoleProcessor
* @param CreatesAddress $createAddress
* @param FetchesAddress $fetchesAddress
*/
public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, \App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor $confirmOrderProcessor, CreateOrderStepsProcessor $createOrderStepsProcessor, CreatesContract $unityCreateContract, AssignContractEntityProcessor $unityAssignContractEntity, CreateContractEntityProcessor $unityCreateContractEntity, ActivateContractProcessor $unityActivateContract, \App\Classes\Modules\Orders\Processors\CreateOrderRoleProcessor $createOrderRoleProcessor, CreatesAddress $createAddress, FetchesAddress $fetchesAddress)
{
$this->canCreateOrder = $canCreateOrder;
$this->createsOrder = $createsOrder;
$this->createOrderRoleProcessor = $createOrderRoleProcessor;
$this->confirmOrderProcessor = $confirmOrderProcessor;
$this->createOrderStepsProcessor = $createOrderStepsProcessor;
$this->createOrderAddressProcessor = $createOrderAddressProcessor;
$this->unityCreateContract = $unityCreateContract;
$this->unityActivateContract = $unityActivateContract;
$this->unityAssignContractEntity = $unityAssignContractEntity;
$this->unityCreateContractEntity = $unityCreateContractEntity;
$this->unityActivateContract = $unityActivateContract;
$this->createOrderRoleProcessor = $createOrderRoleProcessor;
$this->createAddress = $createAddress;
$this->fetchesAddress = $fetchesAddress;
}
public function execute(Request $request){
$reference_no = rand(1000000, 9999999);
@@ -69,12 +100,16 @@ class CreateOrderProcessor
$activated = $this->unityActivateContract->execute($contract_reference_no);
//Create Order on Shipping Platform
$order_object = new OrderObject($request->get('company_module_id'), $contract_reference_no, '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING, 0, $request->get('address_id'), $request->get('warehouse_id'));
$order_object = new OrderObject($request->get('company_module_id'), $reference_no, $contract_reference_no, OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING, 0, $request->get('address_id'), $request->get('warehouse_id'));
$this->canCreateOrder->passes($order_object);
$order = $this->createsOrder->execute($order_object);
$address = $this->fetchesAddress->execute(['id' => $order_object->getAddressId()]);
$addressObject = new AddressObject($address->street_one, $address->street_two, $address->country_id, $address->state_id, $address->district_id, $address->postcode,$address->reference);
//Add address (polymorphic)
$this->createOrderAddressProcessor->execute($request->get('address_id'), $order);
$this->createAddress->execute($order, $addressObject);
//Add order roles - Allow entity to process this order
//This processor calls Unity to create Contract Entity ID
@@ -0,0 +1,11 @@
<?php
namespace App\Classes\ValueObjects\Constants;
final class AddressType {
public const BILLING = 1;
public const DELIVERY = 2;
}
@@ -1,19 +0,0 @@
<?php
namespace App\Classes\ValueObjects\Constants;
final class TransactionStatus {
public const PENDING_PAYMENT = 0;
public const PENDING_APPROVAL = 1;
public const APPROVED = 2;
public const COMPLETED = 3;
public const REJECTED = 4;
public const EXPIRED = 5;
}
@@ -1,15 +0,0 @@
<?php
namespace App\Classes\ValueObjects\Constants;
use Config;
final class UnityConfig {
public const AUTH_METHOD = Config::get('unity.default_auth');
public const API_BASE_URL = Config::get('unity.url');
public const CREATE_ENTITY_ENDPOINT = Config::get('unity.create_entity_endpoint');
}
+1
View File
@@ -16,6 +16,7 @@ class AddressResource extends JsonResource
{
return [
'id' => $this->id,
'reference' => $this->reference,
'street_one' => $this->street_one,
'street_two' => $this->street_two,
'district' => $this->district,
+24 -60
View File
@@ -2,6 +2,8 @@
namespace App\Models;
use App\Classes\General\Interfaces\Addressable;
use App\Classes\General\Interfaces\Documentable;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -18,7 +20,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @property integer type
* @property integer status
*/
class CompanyModule extends AbstractModel
class CompanyModule extends AbstractModel implements Addressable, Documentable
{
use SoftDeletes;
@@ -66,66 +68,28 @@ class CompanyModule extends AbstractModel
return $this->HasMany(Order::class, 'company_module_id');
}
/**
* @return belongsToMany
*/
public function segments(): belongsToMany
{
return $this->belongsToMany(Segment::class, (new SegmentCompany())->getTable(), 'company_id', 'segment_id');
}
// /**
// * @return HasMany
// */
// public function addresses(): HasMany
// {
// return $this->HasMany(Address::class, 'company_id');
// }
/**
* @return MorphMany
*/
public function documents(): morphMany
{
return $this->morphMany(Document::class, 'owner');
}
// /**
// * @return belongsToMany
// */
// public function segments(): belongsToMany
// {
// return $this->belongsToMany(Segment::class, (new SegmentCompany())->getTable(), 'company_id', 'segment_id');
// }
// /**
// * @return MorphMany
// */
// public function documents(): morphMany
// {
// return $this->morphMany(Document::class, 'owner');
// }
// /**
// * @return HasMany
// */
// public function banks(): HasMany
// {
// return $this->HasMany(Bank::class, 'company_id');
// }
// /**
// * @return HasMany
// */
// public function bookings(): HasMany
// {
// return $this->HasMany(Booking::class, 'company_id');
// }
// /**
// * @return Builder
// */
// public function services(): Builder {
// return ServiceType::where('status', ApprovalStatus::APPROVED)->whereHas('constants', function($query) {
// $query->Where(function($query){
// $query->where('reference', SegmentConstants::SERVICE_TYPE)->where('detail->is_active', true);
// })->orWhere(function($query) {
// $query->where('reference', SegmentConstants::CUSTOM_SERVICE_TYPE)->where('detail->is_active', true)->whereIn('segment_id', $this->segments->pluck('id'));
// });
// });
// }
// public function servicesConfigurations(): Collection {
// return $this->services()->get()->map(function($service) {
// return new ServiceConfigurationsObject($service,
// $service->constants->where('reference', SegmentConstants::SERVICE_TYPE)->first(),
// $service->constants->where('reference', SegmentConstants::CUSTOM_SERVICE_TYPE)->whereIn('segment_id', $this->segments->pluck('id')));
// });
// }
/**
* @return HasMany
*/
public function banks(): HasMany
{
return $this->HasMany(Bank::class, 'company_id');
}
}
+2 -1
View File
@@ -2,13 +2,14 @@
namespace App\Models;
use App\Classes\General\Interfaces\Addressable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
class Order extends AbstractModel
class Order extends AbstractModel implements Addressable
{
use SoftDeletes;
@@ -1,5 +1,6 @@
<?php
use App\Classes\ValueObjects\Constants\AddressType;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
@@ -16,12 +17,14 @@ class CreateAddressesTable extends Migration
Schema::create('addresses', function (Blueprint $table) {
$table->id();
$table->morphs('owner');
$table->string('street_one', '45');
$table->string('street_two', '45')->nullable();
$table->string('reference')->nullable();
$table->string('street_one');
$table->string('street_two')->nullable();
$table->foreignId('district_id')->constrained();
$table->foreignId('state_id')->constrained();
$table->foreignId('country_id')->constrained();
$table->string('postcode', '45');
$table->integer('type')->default(AddressType::DELIVERY);
$table->integer('default')->default(false);
$table->softDeletes();
$table->timestamps();
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128.534" height="102" viewBox="0 0 128.534 102"><defs><style>.a{fill:#d3b875;}.b{fill:#b78c58;}.c{fill:#f2d08b;}.d,.e{fill:#846b3d;}.d{opacity:0.6;}.f{fill:#fff;}.g{fill:#4c402c;}</style></defs><g transform="translate(-889.514 -181.288)"><path class="a" d="M969.68,350.98l-80.167-25.186v-59.74l80.167,17.067Z" transform="translate(0 -67.692)"/><path class="b" d="M1335.882,298.869l-48.367,27.5V258.505l48.367-23.276Z" transform="translate(-317.834 -43.077)"/><path class="c" d="M889.514,198.362l48.93-17.074,79.6,10.865L969.68,215.429Z" transform="translate(0 0)"/><path class="d" d="M1005.032,216.528l75.553,16.545,1.552,27.052,2.661,3.88,1.316-4.989,1.788,1.552,1.774-3.548,1.33,2-1.712-30.471-77.6-14.343Z" transform="translate(-92.25 -26.286)"/><path class="d" d="M1053.026,222.277l47.231-19.822,8.036,1.1L1062.978,224.4Z" transform="translate(-130.577 -16.903)"/><path class="e" d="M1053.026,300.865V363.94l9.952,3.127V302.983Z" transform="translate(-130.577 -95.491)"/><path class="f" d="M1332.646,546.092c0,.735-.548.986-1.33,1.33l-8.2,4.142c-1.109.551-1.331-.6-1.331-1.331V537.595c0-.735.48-.909,1.331-1.33l8.2-4.142c1.737-.887,1.216.916,1.33,4.324Z" transform="translate(-345.199 -279.989)"/><path class="g" d="M1325.959,550.674l8.142-3.957v.455l-8.142,4.094Z" transform="translate(-348.535 -291.823)"/><path class="g" d="M1325.959,558.408l8.142-3.957v.455L1325.959,559Z" transform="translate(-348.535 -298)"/><path class="g" d="M1325.959,567.091l8.142-3.957v.455l-8.142,4.094Z" transform="translate(-348.535 -304.933)"/><path class="g" d="M1326.912,596.677l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -329.722)"/><path class="g" d="M1326.912,602.548l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -334.411)"/><path class="g" d="M1326.912,608.536l5.147-2.5.064.473-5.211,2.62Z" transform="translate(-349.296 -339.193)"/></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.2 KiB

+378
View File
@@ -0,0 +1,378 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 500 380" style="enable-background:new 0 0 500 380;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D3B975;}
.st1{fill:#B78C58;}
.st2{fill:#F2D08B;}
.st3{fill:#4D412D;}
.st4{fill:#FFFFFF;}
.st5{fill:#010101;}
.st6{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
.st7{fill:none;stroke:#000000;stroke-width:10;stroke-miterlimit:10;}
.st8{fill:none;stroke:#000000;stroke-width:8;stroke-miterlimit:10;}
</style>
<g id="XMLID_348_">
<g id="XMLID_2_">
<rect id="XMLID_15_" x="46.8" y="56.5" class="st0" width="290" height="323.5"/>
<rect id="XMLID_14_" x="336.8" y="56.5" class="st1" width="113.1" height="323.5"/>
<polygon id="XMLID_13_" class="st0" points="496.8,113.5 453.2,57 336.8,56.5 383.7,113.5 "/>
<polygon id="XMLID_12_" class="st2" points="162,57 214.1,0 500,0 453.2,57 "/>
<g id="XMLID_4_">
<path id="XMLID_11_" class="st3" d="M207.6,320.2v-19.3h-25.2v19.3c0,6.3,4.7,11.6,10.8,12.5V350c-3.3,0.4-6.3,2-8.4,4.4h20.6
c-2.2-2.3-5.1-3.9-8.4-4.4v-17.4C202.9,331.7,207.6,326.5,207.6,320.2z"/>
<path id="XMLID_10_" class="st3" d="M243.4,304.6v-4.7h-1.2v4.7c-10.7,0.3-19.8,7.8-23.2,18.1h0.1c0.6-1.4,2-2.3,3.6-2.3
c1.6,0,3,0.9,3.6,2.3h0.8c0.6-1.4,2-2.3,3.6-2.3s3,0.9,3.6,2.3h0.8c0.6-1.4,2-2.3,3.6-2.3c1.5,0,2.8,0.8,3.5,2v21.8l-0.6,0
c0,0-0.7,7.6,2,9.5c1.8,1.3,5.1,0.8,6.2-1.1c1.2-2.1,1.3-4.1,0.2-3.8c-1.1,0.2-0.5,2.8-2,3.5c-1.9,0.9-3.6,0.2-3.8-2.1
c-0.2-2.3-0.1-6-0.1-6l-0.7,0v-22c0.7-1.1,1.9-1.8,3.3-1.8c1.6,0,3,0.9,3.6,2.3h0.6c0.6-1.4,2-2.3,3.6-2.3c1.6,0,3,0.9,3.6,2.3
h0.8c0.6-1.4,2-2.3,3.6-2.3c1.6,0,3,0.9,3.6,2.3h0.4C263.1,312.3,254.1,304.9,243.4,304.6z"/>
<g id="XMLID_5_">
<g id="XMLID_7_">
<polygon id="XMLID_9_" class="st3" points="294.3,312.2 284.2,300 274.1,312.2 280.4,312.2 280.4,347.7 287.9,347.7
287.9,312.2 "/>
<polygon id="XMLID_8_" class="st3" points="316.6,312.2 306.4,300 296.3,312.2 302.7,312.2 302.7,347.7 310.2,347.7
310.2,312.2 "/>
</g>
<rect id="XMLID_6_" x="275.2" y="351.2" class="st3" width="40.2" height="3"/>
</g>
</g>
<polygon id="XMLID_3_" class="st1" points="46.8,56.5 0,113.5 46.8,113.5 "/>
</g>
<g id="XMLID_16_" transform="translate(-36.425 -36.309)">
<rect id="XMLID_342_" x="98.9" y="158.9" class="st4" width="87.3" height="88.2"/>
<g id="XMLID_17_" transform="translate(42.691 42.637)">
<rect id="XMLID_341_" x="61.7" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_340_" x="64.7" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_339_" x="67.8" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_338_" x="70.8" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_337_" x="73.9" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_336_" x="76.9" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_335_" x="80" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_334_" x="86.1" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_333_" x="89.2" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_332_" x="92.2" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_331_" x="95.3" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_330_" x="116.7" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_329_" x="119.7" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_328_" x="122.8" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_327_" x="125.8" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_326_" x="128.9" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_325_" x="132" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_324_" x="135" y="121.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_323_" x="61.7" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_322_" x="80" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_321_" x="95.3" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_320_" x="98.3" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_319_" x="101.4" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_318_" x="104.4" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_317_" x="110.6" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_316_" x="116.7" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_315_" x="135" y="124.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_314_" x="61.7" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_313_" x="67.8" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_312_" x="70.8" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_311_" x="73.9" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_310_" x="80" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_309_" x="89.2" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_308_" x="95.3" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_307_" x="101.4" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_306_" x="107.5" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_305_" x="110.6" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_304_" x="116.7" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_303_" x="122.8" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_302_" x="125.8" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_301_" x="128.9" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_300_" x="135" y="127.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_299_" x="61.7" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_298_" x="67.8" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_297_" x="70.8" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_296_" x="73.9" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_295_" x="80" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_294_" x="92.2" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_293_" x="95.3" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_292_" x="101.4" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_291_" x="107.5" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_290_" x="110.6" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_289_" x="116.7" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_288_" x="122.8" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_287_" x="125.8" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_286_" x="128.9" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_285_" x="135" y="131" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_284_" x="61.7" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_283_" x="67.8" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_282_" x="70.8" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_281_" x="73.9" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_280_" x="80" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_279_" x="92.2" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_278_" x="95.3" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_277_" x="98.3" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_276_" x="104.4" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_275_" x="110.6" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_274_" x="116.7" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_273_" x="122.8" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_272_" x="125.8" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_271_" x="128.9" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_270_" x="135" y="134.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_269_" x="61.7" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_268_" x="80" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_267_" x="89.2" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_266_" x="95.3" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_265_" x="104.4" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_264_" x="110.6" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_263_" x="116.7" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_262_" x="135" y="137.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_261_" x="61.7" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_260_" x="64.7" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_259_" x="67.8" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_258_" x="70.8" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_257_" x="73.9" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_256_" x="76.9" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_255_" x="80" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_254_" x="86.1" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_253_" x="92.2" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_252_" x="98.3" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_251_" x="104.4" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_250_" x="110.6" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_249_" x="116.7" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_248_" x="119.7" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_247_" x="122.8" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_246_" x="125.8" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_245_" x="128.9" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_244_" x="132" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_243_" x="135" y="140.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_242_" x="86.1" y="143.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_241_" x="89.2" y="143.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_240_" x="98.3" y="143.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_239_" x="101.4" y="143.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_238_" x="61.7" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_237_" x="64.7" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_236_" x="70.8" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_235_" x="73.9" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_234_" x="80" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_233_" x="89.2" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_232_" x="98.3" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_231_" x="104.4" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_230_" x="107.5" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_229_" x="116.7" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_228_" x="135" y="146.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_227_" x="61.7" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_226_" x="64.7" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_225_" x="67.8" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_224_" x="73.9" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_223_" x="76.9" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_222_" x="83.1" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_221_" x="92.2" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_220_" x="101.4" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_219_" x="104.4" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_218_" x="107.5" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_217_" x="113.6" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_216_" x="119.7" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_215_" x="122.8" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_214_" x="125.8" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_213_" x="128.9" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_212_" x="132" y="149.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_211_" x="61.7" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_210_" x="67.8" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_209_" x="73.9" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_208_" x="80" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_207_" x="83.1" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_206_" x="86.1" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_205_" x="89.2" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_204_" x="98.3" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_203_" x="107.5" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_202_" x="110.6" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_201_" x="116.7" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_200_" x="119.7" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_199_" x="125.8" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_198_" x="135" y="152.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_197_" x="61.7" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_196_" x="64.7" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_195_" x="83.1" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_194_" x="86.1" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_193_" x="107.5" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_192_" x="119.7" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_191_" x="125.8" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_190_" x="128.9" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_189_" x="132" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_188_" x="135" y="155.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_187_" x="67.8" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_186_" x="70.8" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_185_" x="80" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_184_" x="86.1" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_183_" x="89.2" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_182_" x="92.2" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_181_" x="104.4" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_180_" x="107.5" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_179_" x="116.7" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_178_" x="135" y="158.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_177_" x="61.7" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_176_" x="67.8" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_175_" x="70.8" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_174_" x="76.9" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_173_" x="83.1" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_172_" x="92.2" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_171_" x="98.3" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_170_" x="104.4" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_169_" x="107.5" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_168_" x="110.6" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_167_" x="113.6" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_166_" x="122.8" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_165_" x="132" y="161.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_164_" x="61.7" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_163_" x="64.7" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_162_" x="70.8" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_161_" x="73.9" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_160_" x="76.9" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_159_" x="80" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_158_" x="83.1" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_157_" x="89.2" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_156_" x="104.4" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_155_" x="107.5" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_154_" x="113.6" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_153_" x="116.7" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_152_" x="122.8" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_151_" x="125.8" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_150_" x="128.9" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_149_" x="132" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_148_" x="135" y="164.9" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_147_" x="61.7" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_146_" x="76.9" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_145_" x="83.1" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_144_" x="89.2" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_143_" x="98.3" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_142_" x="104.4" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_141_" x="110.6" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_140_" x="113.6" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_139_" x="119.7" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_138_" x="125.8" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_137_" x="128.9" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_136_" x="135" y="168" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_135_" x="61.7" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_134_" x="67.8" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_133_" x="70.8" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_132_" x="73.9" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_131_" x="80" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_130_" x="83.1" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_129_" x="92.2" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_128_" x="95.3" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_127_" x="98.3" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_126_" x="101.4" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_125_" x="107.5" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_124_" x="110.6" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_123_" x="113.6" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_122_" x="116.7" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_121_" x="119.7" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_120_" x="122.8" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_119_" x="128.9" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_118_" x="132" y="171.1" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_117_" x="86.1" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_116_" x="89.2" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_115_" x="95.3" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_114_" x="110.6" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_113_" x="122.8" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_112_" x="128.9" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_111_" x="132" y="174.2" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_110_" x="61.7" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_109_" x="64.7" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_108_" x="67.8" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_107_" x="70.8" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_106_" x="73.9" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_105_" x="76.9" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_104_" x="80" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_103_" x="92.2" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_102_" x="98.3" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_101_" x="104.4" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_100_" x="110.6" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_99_" x="116.7" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_98_" x="122.8" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_97_" x="135" y="177.3" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_96_" x="61.7" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_95_" x="80" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_94_" x="95.3" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_93_" x="101.4" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_92_" x="107.5" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_91_" x="110.6" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_90_" x="122.8" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_89_" x="135" y="180.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_88_" x="61.7" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_87_" x="67.8" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_86_" x="70.8" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_85_" x="73.9" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_84_" x="80" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_83_" x="86.1" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_82_" x="92.2" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_81_" x="95.3" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_80_" x="98.3" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_79_" x="104.4" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_78_" x="107.5" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_77_" x="110.6" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_76_" x="113.6" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_75_" x="116.7" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_74_" x="119.7" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_73_" x="122.8" y="183.4" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_72_" x="61.7" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_71_" x="67.8" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_70_" x="70.8" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_69_" x="73.9" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_68_" x="80" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_67_" x="86.1" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_66_" x="89.2" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_65_" x="98.3" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_64_" x="101.4" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_63_" x="104.4" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_62_" x="116.7" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_61_" x="132" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_60_" x="135" y="186.5" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_59_" x="61.7" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_58_" x="67.8" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_57_" x="70.8" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_56_" x="73.9" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_55_" x="80" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_54_" x="89.2" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_53_" x="95.3" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_52_" x="101.4" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_51_" x="107.5" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_50_" x="113.6" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_49_" x="122.8" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_48_" x="125.8" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_47_" x="128.9" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_46_" x="132" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_45_" x="135" y="189.6" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_44_" x="61.7" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_43_" x="80" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_42_" x="86.1" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_41_" x="92.2" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_40_" x="95.3" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_39_" x="104.4" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_38_" x="107.5" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_37_" x="119.7" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_36_" x="122.8" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_35_" x="128.9" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_34_" x="132" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_33_" x="135" y="192.7" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_32_" x="61.7" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_31_" x="64.7" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_30_" x="67.8" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_29_" x="70.8" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_28_" x="73.9" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_27_" x="76.9" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_26_" x="80" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_25_" x="86.1" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_24_" x="89.2" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_23_" x="92.2" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_22_" x="98.3" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_21_" x="110.6" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_20_" x="113.6" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_19_" x="125.8" y="195.8" class="st5" width="3.1" height="3.1"/>
<rect id="XMLID_18_" x="135" y="195.8" class="st5" width="3.1" height="3.1"/>
</g>
</g>
<rect id="XMLID_1_" x="149.8" y="122.5" class="st4" width="171.7" height="88.2"/>
<line id="XMLID_344_" class="st6" x1="162" y1="155.4" x2="290.4" y2="155.4"/>
<line id="XMLID_343_" class="st7" x1="162" y1="141.2" x2="290.4" y2="141.2"/>
<line id="XMLID_345_" class="st8" x1="162" y1="166.6" x2="194.4" y2="166.6"/>
<line id="XMLID_347_" class="st8" x1="162" y1="193" x2="218.5" y2="193"/>
<line id="XMLID_346_" class="st8" x1="162" y1="178.8" x2="284.9" y2="178.8"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

+46
View File
@@ -2179,3 +2179,49 @@ select2-dropdown,
background : radial-gradient(#fff 1px, transparent 2px);
background-size : 12px 12px;
}
.peelable-corner {
cursor: pointer;
&::before {
content: '';
display: block;
width: 30px;
height: 30px;
position: absolute;
left: 0px;
top: 0px;
background: $color-white;
-webkit-transition: 0.5s;
transition: 0.5s;
box-shadow: 0 0.5rem 0.5rem rgba(0,0,0,.15)!important;
}
&::after {
content: '';
display: block;
width: 30px*1.4;
height: 30px*1.4;
position: absolute;
left: 30px*-0.7;
top: 30px*-0.7;
background: $color-master-lightest;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transition: 0.5s;
transition: 0.5s;
}
&:hover {
&::before {
width: 50px*1.3;
height: 50px*1.3;
}
&::after {
width: 50px*1.8;
height: 50px*1.8;
top: 50px*-0.9;
left: 50px*-0.9;
}
}
}
@@ -1,128 +0,0 @@
<template>
<div class="row p-t-25 text-left">
<div class="col">
<div class="shadow p-3 bg-white rounded">
<div class="d-flex flex-row align-items-center">
<input type="radio" name="answer" id="answer-2"
v-model="computeAddressId"
:value='-1'
:checked="new_address == true"
>
<label for="answer-2" data-question-number="2" class="mb-0 pl-2 pl-md-2 bold">Add New Address</label>
</div>
<div class="col-0" v-if="computeAddressId==-1">
<div class="d-flex flex-column flex-sm-row">
<div class="col px-0 pr-sm-2">
<validation-wrapper-component selecatable :validator="$v.parameters.district_id">
<label class="text-primary fs-12">District</label>
<div class="controls">
<selectable-component :endpoint="route('api.address.district.list')" section="districtListSection" valueColumn="id" :labelColumn="['city']" v-model="parameters.district_id"></selectable-component>
</div>
</validation-wrapper-component>
</div>
<div class="col px-0 pl-sm-2">
<validation-wrapper-component :validator="$v.parameters.post_code">
<label class="text-primary fs-12">Post Code</label>
<div class="controls">
<input type="text" class="form-control fs-12" v-model="parameters.post_code">
</div>
</validation-wrapper-component>
</div>
</div>
<div class="d-flex flex-column flex-sm-row">
<div class="col px-0 pr-sm-2">
<validation-wrapper-component :validator="$v.parameters.street_one">
<label class="text-primary fs-12">Street one</label>
<div class="controls">
<input type="text" class="form-control fs-12"
v-model="parameters.street_one"
>
</div>
</validation-wrapper-component>
</div>
<div class="col px-0 pl-sm-2">
<validation-wrapper-component :validator="$v.parameters.street_two">
<label class="text-primary fs-12">Street two</label>
<div class="controls">
<input type="text" class="form-control fs-12"
v-model="parameters.street_two"
>
</div>
</validation-wrapper-component>
</div>
</div>
<div class="row m-t-25">
<div class="col">
<div class="row">
<div class="col text-right">
<button type="button" class="btn btn-sm btn-primary b-rad-none" @click="submitForm()">New Address</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { required ,requiredIf } from "vuelidate/lib/validators";
export default {
props: {
address_id: null
},
watch: {
},
data() {
return {
parameters : {
company_module_id:this.$store.getters.getCompanyModuleId,
street_one: '',
street_two: '',
district_id: '',
post_code: '',
},
new_address:false
}
},
computed: {
computeAddressId:{
get() {
return this.address_id;
},
set(val) {
this.$emit('input', val);
}
},
},
validations: {
parameters: {
street_one: { required:requiredIf(function () { return this.computeAddressId === -1 }) },
street_two: {},
district_id: { required },
post_code: { required },
}
},
methods:{
submitForm(){
if(!this.validate()){
return;
}
this.isLoading = true;
this.submit((this.route('api.address.create')), 'post', 'addressList', true, true);
},
successHandler(response){
this.$emit('input', response.payload.data.id);
this.resetForm();
}
}
}
</script>
@@ -0,0 +1,78 @@
<template>
<div class="row m-b-10 parentContainer">
<div class="col b-a p-t-15 p-b-15 pointer" :class="{ 'b-primary': value === item.id, 'b-grey': value !== item.id}" @click="$emit('input', item.id)">
<div class="row align-items-center">
<div class="col-auto p-r-0">
<i class="fa fs-20 p-t-5" :class="{'fa-circle-o': value !== item.id, 'fa-check-circle': value === item.id, 'text-primary': value === item.id}"></i>
</div>
<div class="col-2">
<h6 class="no-margin bold fs-12">{{item.reference}}</h6>
</div>
<div class="col">
<h6 class="no-margin fs-12">{{item.street_one}} {{item.street_two}}, {{item.district.name}}, {{item.post_code}} {{item.state.name}}, {{item.country.name}}</h6>
</div>
<div class="col-auto">
<div class="row align-items-center">
<div class="col-auto p-r-5">
<i class="fa m-r-10" data-type="defaultAddress" :class="{'fa-star': item.default, 'requestModal': !item.default, 'fa-star-o': !item.default, 'pointer': !item.default, 'text-warning': item.default}" ></i>
</div>
<div class="col-auto no-padding p-r-5 p-l-5">
<i class="fa fa-pencil-square-o text-complete m-r-10" @click="expanded = !expanded"></i>
</div>
<div class="col-auto p-l-5">
<i class="fa fa-trash-o text-danger requestModal" data-type="deleteAddress"></i>
</div>
</div>
</div>
</div>
<div class="row" v-if="expanded">
<div class="col">
<address-form-component :id="$store.getters.getCompanyModuleId" :data="item" section="addressList" @input="updateAddress($event)"></address-form-component>
</div>
</div>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteAddress">
<delete-address-form-component :data="item" section="addressList" class="text-center"></delete-address-form-component>
</modal-component>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="defaultAddress">
<set-default-address-form-component :data="item" section="addressList" class="text-center"></set-default-address-form-component>
</modal-component>
</div>
</div>
</template>
<script>
import componentHandler from '../../../general/mixins/componentHandler';
export default {
props: {
value: {
required: false
}
},
data(){
return {
expanded: false
}
},
created(){
if(this.item.default){
this.$emit('input', this.item.id);
}
},
watch: {
value: function(value){
this.value = value;
if(value !== this.item.id){
this.expanded = false;
}
}
},
methods: {
updateAddress(id){
this.expanded = false;
this.$emit('input', id);
}
},
mixins: [componentHandler]
}
</script>
@@ -0,0 +1,101 @@
<template>
<div class="row p-t-25 text-left">
<div class="col">
<div class="row">
<div class="col">
<div class="row m-b-15">
<div class="col">
<validation-wrapper-component :validator="$v.parameters.reference">
<label>Label</label>
<input class="form-control" name="reference" v-model="parameters.reference">
</validation-wrapper-component>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<validation-wrapper-component :validator="$v.parameters.street_one">
<label>Address Line 1</label>
<input class="form-control" name="street_one" v-model="parameters.street_one">
</validation-wrapper-component>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<validation-wrapper-component :validator="$v.parameters.street_two">
<label>Address Line 2</label>
<input class="form-control" name="street_two" v-model="parameters.street_two">
</validation-wrapper-component>
</div>
</div>
<div class="row m-b-15">
<div class="col p-r-5">
<validation-wrapper-component selecatable :validator="$v.parameters.district_id">
<label>District</label>
<selectable-component :endpoint="route('api.address.district.list')" section="districtListSection" valueColumn="id" :labelColumn="['city']" v-model="parameters.district_id"></selectable-component>
</validation-wrapper-component>
</div>
<div class="col p-l-5">
<validation-wrapper-component :validator="$v.parameters.post_code">
<label>Post Code</label>
<input class="form-control" name="post_code" v-model="parameters.post_code">
</validation-wrapper-component>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="row">
<div class="col text-right">
<button type="button" class="btn btn-sm btn-complete b-rad-none" @click="submitForm()">{{ this.data ? "Update" : "Save" }} Address</button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import addressFormValidation from "../../../general/mixins/addresses/validation/addressFormValidation";
export default {
props: {
id: {
type: Number,
required: true
}
},
data() {
return {
parameters : {
company_module_id: this.id,
reference: '',
street_one: '',
street_two: '',
district_id: '',
post_code: '',
}
}
},
created(){
if(this.data){
this.parameters.reference = this.data.reference;
this.parameters.street_one = this.data.street_one;
this.parameters.street_two = this.data.street_two;
this.parameters.district_id = this.data.district.id;
this.parameters.post_code = this.data.post_code;
}
},
watch: {
'id': function () {
this.parameters.company_module_id = this.id;
}
},
methods:{
submitForm(){
this.submit(this.data ? (this.route('api.address.update', this.data.id)) : (this.route('api.address.create')), this.data ? 'put' : 'post', 'addressList', true, true);
},
},
mixins: [addressFormValidation]
}
</script>
@@ -0,0 +1,33 @@
<template>
<div class="row">
<div class="col">
<loading-component style="height: 300px; top: 0;" key="1" color="success" v-show="isLoading" ></loading-component>
<div class="row justify-content-center" v-show="!isLoading">
<div class="col">
<div class="row m-b-20">
<div class="col">
<h3 class="all-caps">Are you Sure?</h3>
<div class="fs-11">Are you sure you want to delete this address?</div>
</div>
</div>
<div class="row">
<div class="col p-r-5">
<div class="btn btn-sm btn-success btn-block b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-sm btn-danger btn-block b-rad-none" @click="submit(route('api.address.delete', item.id), 'delete', section, true, true)">Delete</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import componentHandler from '../../../general/mixins/componentHandler';
import ModalFormHandler from '../../../general/mixins/modalFormHandler';
export default {
mixins: [componentHandler, ModalFormHandler]
}
</script>
@@ -1,21 +0,0 @@
<template>
<div class="row">
<h1>Dashboard</h1>
</div>
</template>
<script>
export default {
data(){
return {
}
},
computed: {
},
watch: {
},
created(){
},
methods: {
}
}
</script>
@@ -1,5 +1,5 @@
<template>
<transition-component group enter-class="animate__animated animate__fadeInUp animate__delay-1 animate__faster p-r-30" leave-class="animate__animated animate__fadeOutDown animate__faster p-r-30" style="min-height: 300px;width:100%">
<transition-component group enter-class="animate__animated animate__fadeInRight animate__delay-1 animate__faster p-r-30" leave-class="animate__animated animate__fadeOutLeft animate__faster p-r-30" style="min-height: 300px;width:100%">
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="$store.getters.isLoading(section)"></loading-component>
<div class="row" key="2" v-show="!$store.getters.isLoading(section)">
<div class="col">
@@ -29,8 +29,8 @@
<div class="row">
<div class="col">
<div class="list disable-text-selection" data-check-all="checkAll">
<div class="row" ref="list" v-for="item in $store.getters.getListData(section)" v-bind:key="item.id" :data="item">
<div class="col">
<div class="row" v-for="group in Math.ceil($store.getters.getListData(section).length / columns)">
<div class="col-12" :class="'col-md-'+(12/columns)" v-for="item in $store.getters.getListData(section).slice((group - 1) * columns, group * columns)" v-bind:key="item.id" :data="item">
<slot name="list" :data="item"></slot>
</div>
</div>
@@ -68,6 +68,11 @@
emptyListSection: {
type: Boolean,
default: true
},
columns: {
type: Number,
validator: (prop) => [1, 2, 3, 4, 6, 12].includes(prop),
default: 1
}
},
data(){
@@ -25,6 +25,8 @@
return '#912873';
case 'success':
return '#912873';
case 'info':
return '#503C93';
case 'danger':
return '#F3201F';
case 'white':
@@ -2,7 +2,7 @@
<div class="animate__animated" :class="[{'animate__shake': validator.$error}]">
<div class="row">
<div class="col">
<div class="form-group no-margin" :class="[{' has-error': validator.$error}, {'form-group-default-select2': selecatable}, {'p-b-5': selecatable}]">
<div class="form-group no-margin form-group-default" :class="[{' has-error': validator.$error}, {'form-group-default-select2': selecatable}, {'p-b-5': selecatable}]">
<slot></slot>
</div>
</div>
@@ -1,63 +0,0 @@
<template>
<div>
<div class="row">
<div class="col">
<div class="row m-b-20">
<div class="col">
<div class="font-heading fs-18 text-primary all-caps m-b-50">
Order instruction
</div>
<div class="row align-items-center">
<div class="col">
<div class="card" style="width: 18rem">
<div class="card-body">
<h5 class="card-title">Step 1</h5>
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
<p class="card-text">
Some quick example text to build on the card title and
make up the bulk of the card's content.
</p>
</div>
</div>
</div>
<div class="col">
<div class="card" style="width: 18rem">
<div class="card-body">
<h5 class="card-title">Step 2</h5>
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
<p class="card-text">
Some quick example text to build on the card title and
make up the bulk of the card's content.
</p>
</div>
</div>
</div>
<div class="col">
<div class="card" style="width: 18rem">
<div class="card-body">
<h5 class="card-title">Step 3</h5>
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
<p class="card-text">
Some quick example text to build on the card title and
make up the bulk of the card's content.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
};
},
methods: {},
};
</script>
@@ -0,0 +1,169 @@
<template>
<div class="row">
<div class="col ">
<div class="row" v-if="step === 1">
<div class="col">
<div class="row m-b-20">
<div class="col">
<div class="row m-b-20 text-info">
<div class="col text-center">
<h5 class="m-b-0">We currently support two major cities in china.</h5>
<h3 class="m-t-0">Which warehouse is more suitable for you?</h3>
</div>
</div>
<div class="row text-center justify-content-center">
<div class="col-3 p-r-5">
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-primary': parameters.warehouse_id === 2, 'b-grey': parameters.warehouse_id !== 2 }" @click="parameters.warehouse_id = 2">
<div class="row m-b-15 justify-content-center">
<div class="col-8">
<img src="/images/guangzhou-map.png" class="w-100">
</div>
</div>
<div class="row">
<div class="col">
<h5 class="no-margin" :class="{ 'text-primary': parameters.warehouse_id === 2, 'semi-bold': parameters.warehouse_id === 2 }">Guangzhou</h5>
</div>
</div>
</div>
</div>
<div class="col-3 p-l-5">
<div class="b-a b-thick p-t-15 p-b-15 p-l-35 p-r-35 pointer" :class="{ 'b-primary': parameters.warehouse_id === 3, 'b-grey': parameters.warehouse_id !== 3 }" @click="parameters.warehouse_id = 3">
<div class="row m-b-15 justify-content-center">
<div class="col-8">
<img src="/images/yiwu-map.png" class="w-100">
</div>
</div>
<div class="row">
<div class="col">
<h5 class="no-margin" :class="{ 'text-primary': parameters.warehouse_id === 3, 'semi-bold': parameters.warehouse_id === 3}">Yiwu</h5>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-6">
<div class="row">
<div class="col-auto p-r-0">
<button type="button" class="btn btn-lg btn-default b-rad-none" @click="cancelOrder()">Cancel</button>
</div>
<div class="col">
<button type="button" class="btn btn-lg btn-block btn-primary b-rad-none" @click="step++" v-if="parameters.warehouse_id">Next</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center" v-if="step === 2">
<div class="col-10">
<div class="row m-b-20">
<div class="col">
<div class="row m-b-20 text-info">
<div class="col text-center">
<h3>Please select the address where you want to receive this order</h3>
</div>
</div>
<div class="row justify-content-center">
<div class="col-10">
<list-component style="min-height: 50px;" section="addressList" :emptyListSection=false :endpoint="route('api.address.list')" :options="{per_page: 10, HasMorphCompanyModule: $store.getters.getCompanyModuleId}">
<template slot="list" slot-scope="{data}">
<select-address-component :data="data" :value="parameters.address_id" v-model="parameters.address_id"></select-address-component>
</template>
</list-component>
<div class="row m-b-10">
<div class="col b-a p-t-15 p-b-15 pointer" :class="{ 'b-primary': !parameters.address_id, 'b-grey': parameters.address_id}" @click="parameters.address_id = null">
<div class="row align-items-center">
<div class="col-auto p-r-0">
<i class="fa fs-20 p-t-5" :class="{'fa-circle-o': parameters.address_id, 'fa-check-circle': !parameters.address_id, 'text-primary': !parameters.address_id}"></i>
</div>
<div class="col-auto semi-bold">New Address</div>
</div>
<div class="row" v-show="!parameters.address_id">
<div class="col">
<address-form-component :id="$store.getters.getCompanyModuleId" section="addressList" @input="parameters.address_id = $event"></address-form-component>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center">
<div class="col-8 no-padding">
<div class="row">
<div class="col-auto p-r-5">
<button type="button" class="btn btn-lg btn-default b-rad-none" @click="step--">back</button>
</div>
<div class="col p-l-5">
<button type="button" class="btn btn-lg btn-block btn-primary b-rad-none" @click="createOrder()" v-if="parameters.address_id">Create Order</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row justify-content-center" v-if="step === 3">
<div class="col-8 p-t-50 p-b-50 text-center">
<div class="row justify-content-center m-b-35">
<div class="col-6">
<img src="/images/qr.svg" class="w-25 animate__animated animate__flip animate__infinite animate__slower">
</div>
</div>
<loading-component class="m-l-0" style="height: 50px; top: 0;" color="info"></loading-component>
<div class="row">
<div class="col">
<h4 class="text-info">We are generating the <b>QR code</b> that you need to <b>send to your supplier</b> to print to <b>stick to your packages</b>, this QR code is required for us to identify your packages when they arrives at our warehouse!</h4>
<p>Please wait...</p>
</div>
</div>
</div>
</div>
<div class="row justify-content-center" v-if="step === 4">
<div class="col-8 p-t-50 p-b-50 text-center">
<div class="row justify-content-center">
<div class="col-6">
<img src="/images/qr.svg" class="w-50">
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
section: 'createOrderForm',
step: 1,
parameters : {
warehouse_id: '',
address_id: '',
company_module_id: this.$store.getters.getCompanyModuleId,
}
}
},
methods:{
createOrder(){
this.step++;
this.submit((this.route('api.order.create')), 'post', 'bookingDetailSection', true, true)
},
cancelOrder(){
this.parameters.warehouse_id = '';
this.parameters.address_id = '';
this.$store.dispatch('toggleSection', {name: this.section, status: false})
},
successHandler(){
let vm = this;
setTimeout(function(){
vm.step++;
}, 5000);
},
}
}
</script>
@@ -1,86 +0,0 @@
<template>
<div>
<div class="row">
<div class="col">
<div class="row m-b-20">
<div class="col">
<div class="font-heading fs-18 text-primary all-caps m-b-50">Select Address</div>
</div>
</div>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
<list-component v-show="!isLoading" key="2" section="addressList" :endpoint="route('api.address.list')" :options="{per_page: 10, HasMorphCompanyModule :company_module_id}">
<template slot="list" slot-scope="{data}">
<div class="shadow p-3 mb-3 bg-white rounded">
<div class="d-flex flex-column flex-md-row align-items-center">
<div class="flex-row align-self-start pb-2 pb-sm-0">
<input type="radio" name="answer" id="answer-1"
v-model="computeAddress"
:value="data.id"
>
<label for="answer-1" data-question-number="1" class="mb-0 pl-2 pl-md-2 bold">[name]</label>
</div>
<div>
<span class="fs-12 pl-sm-3 pl-lg-5" style="color: #a6a6a6;">{{data.country.name}} {{data.street_one}} {{data.street_two}} {{data.post_code}} {{data.district.name}} {{data.state.name}}</span>
</div>
</div>
</div>
</template>
</list-component>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<slot name="addressForm" :data="item"></slot>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
company_module_id: {
type: Number,
default: 1
},
address_id:null
},
data(){
return {
isLoading: false,
createAddress: false,
selectedAddress: null,
item:{
id:null
},
status:{
error:false,
message:null,
direction:null,
},
}
},
computed: {
computeAddress:{
get() {
return this.address_id;
},
set(val) {
this.$emit('input', val);
}
},
},
watch: {
},
created(){
},
methods: {
},
}
</script>
@@ -1,79 +0,0 @@
<template>
<div>
<div class="row">
<div class="col">
<div class="row m-b-20">
<div class="col">
<div class="font-heading fs-18 text-primary all-caps m-b-50">Select Warehouse</div>
</div>
</div>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<list-component key="2" section="purchaseOrderSection" :endpoint="route('api.company.list')" :options="{per_page: 10, status: 2 ,WithCompanyModuleType :4}">
<template slot="list" slot-scope="{data}">
<div class="shadow p-3 mb-3 bg-white rounded">
<div class="d-flex flex-column flex-md-row align-items-center">
<div class="flex-row align-self-start pb-2 pb-sm-0">
<input type="radio" name="warehouse"
v-model="computeWarehouse"
:value="data.id"
>
<label for="answer-1" data-question-number="1" class="mb-0 pl-2 pl-md-2 bold">{{data.name}}</label>
</div>
<div>
<span class="fs-12 pl-sm-3 pl-lg-5" style="color: #a6a6a6;">GuangZhou, China </span>
</div>
</div>
</div>
</template>
</list-component>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
warehouse: null,
},
data() {
return {
isLoading: true,
billingAddress: [],
createAddress: false,
addressDropdownLaunch: {
status: false,
},
selectedAddress: null,
item: {
id: null,
},
status: {
error: false,
message: null,
},
};
},
computed: {
computeWarehouse: {
get() {
return this.warehouse;
},
set(val) {
this.$emit("input", val);
},
},
},
watch: {
},
created() {
},
methods: {
},
};
</script>
@@ -1,151 +0,0 @@
<template>
<div class="row">
<div class="col ">
<div class="col">
<section v-if="step === 1" class="m-b-20">
<order-instruction-component v-if="step === 1" :section="section" v-show="$store.getters.getOrder == 0" v-on:updateStatus="updateStatus($event)"></order-instruction-component>
</section>
<section v-if="step === 2" class="m-b-20">
<validation-wrapper-component :validator="$v.parameters.warehouse_id" class="m-b-15">
<select-warehouse-component
:section="section"
:warehouse="parameters.warehouse_id"
@input="parameters.warehouse_id = $event"
>
</select-warehouse-component>
</validation-wrapper-component>
</section>
<section v-if="step === 3" class="m-b-20">
<validation-wrapper-component :validator="$v.parameters.address_id">
<select-address-component
:section="section"
:key="parameters.address_id"
:company_module_id="parameters.company_module_id"
:address_id="parameters.address_id"
@input="parameters.address_id = $event"
>
<template slot="addressForm">
<div class="row">
<div class="col">
<address-form-component
:address_id="parameters.address_id"
@input="parameters.address_id = $event"
></address-form-component>
</div>
</div>
</template>
</select-address-component>
</validation-wrapper-component>
</section>
<section v-if="step === 4" class="m-b-20">
<order-list-component :section="section"
:company_module_id="parameters.company_module_id"
:completedOrder="completedOrder"
></order-list-component>
</section>
<div class="row">
<div class="col">
<div class="row">
<div class="col text-center" v-if="step === 1">
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('next')">Next</button>
</div>
<div class="col text-center" v-if="step === 2">
<button v-show="!this.$store.getters.orderExist" type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('back')">Back</button>
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('next')">Next</button>
</div>
<div class="col text-center" v-if="step === 3">
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('back')">Back</button>
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="createOrder">Next(create order)</button>
</div>
<div class="col text-center" v-if="step === 4">
<button type="button" class="btn btn-sm p-t-10 p-b-10 p-r-35 p-l-35 btn-primary b-rad-none" @click="changeStep('reset')">Done</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import CreateOrderformValitaion from '../../../general/mixins/accounts/validation/createOrderFormValidation';
export default {
data() {
return {
section: 'createOrderSection',
error: '',
step: this.$store.getters.orderExist==0?1:2,
parameters : {
email: '',
warehouse_id:'',
address_id:'',
company_module_id:this.$store.getters.getCompanyModuleId,
street_one:'',
street_two:'',
district_id:'',
post_code:'',
},
completedOrder:null,
status:{
error:false,
message:null,
direction:null,
},
}
},
computed:{
},
methods:{
changeStep(direction){
if(direction === 'next'){
if(!this.validate()){
return;
}
this.step += 1;
this.status.direction = direction;
this.$emit('updateStatus',this.status);
this.$v.$reset();
return;
}else if(direction === 'reset'){
this.$store.dispatch('showOrderList');
this.step = this.$store.getters.orderExist==0?1:2;
this.resetForm();
return;
}
this.step -= 1;
return;
},
createOrder(){
if(!this.validate()){
return;
}
this.step += 1;
this.submit((this.route('api.order.create')), 'post', 'bookingDetailSection', true, true);
},
successHandler(response){
this.completedOrder = response.payload.data;
this.$store.dispatch('updateIfCreateNewOrder','1');
},
updateStatus(event){
console.log("receive event bus" ,event);
if(event.direction === 'next'){
this.step += 1;
}else if(event.direction === 'back'){
this.step -= 1;
}
},
},
mixins: [CreateOrderformValitaion]
}
</script>
@@ -1,14 +0,0 @@
import { required, email, numeric, sameAs, requiredUnless, requiredIf } from "vuelidate/lib/validators";
import authenticationHandler from '../authenticationHandler'
export default {
validations: {
parameters: {
warehouse_id: {
required: requiredIf(function () { return this.step === 2 })
},
address_id: {
required:requiredIf(function () { return this.step === 3})
},
}
},
}
@@ -0,0 +1,16 @@
import errorMessageHandler from "../errorMessageHandler";
import formHandler from "../formHandler";
export default {
methods: {
successHandler(response){
this.$emit('input', response.payload.data.id);
this.formHandler('');
},
errorHandler(error){
this.formHandler(error.message);
}
},
mixins: [errorMessageHandler, formHandler]
}
@@ -0,0 +1,14 @@
import { required } from "vuelidate/lib/validators";
import addressFormHandler from '../addressFormHandler'
export default {
validations: {
parameters: {
reference: { required },
street_one: { required },
street_two: {},
district_id: { required },
post_code: { required },
}
},
mixins: [addressFormHandler]
}
-11
View File
@@ -12,17 +12,6 @@ export default {
default: null
}
},
created() {
if(this.data){
this.parameters = this.data;
}
},
watch: {
'data': function() {
this.parameters = this.data;
}
},
data() {
return {
isLoading: false,
-1
View File
@@ -10,7 +10,6 @@ export default {
getters: {
isAuthenticated: state => !!state.authentication.access_token,
getAccessToken: state => state.authentication.access_token,
isSuperAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1,
isAdmin: (state, getters) => getters.getDecodedAccessToken.user.type === 0 || getters.getDecodedAccessToken.user.type === 1 || getters.getDecodedAccessToken.user.type === 2,
getUserName: (state, getters) => getters.getUpdatedFullname || getters.getDecodedAccessToken.user.name,
-26
View File
@@ -1,26 +0,0 @@
export default {
state: {
orderExist:localStorage.getItem('new-order') || 0,
},
getters: {
orderExist: (state, getters) => getters.getOrder > 0 || state.orderExist,
},
mutations: {
UPDATE_IF_NEW_ORDER(state){
state.orderExist = 0;
},
},
actions: {
updateIfCreateNewOrder(store ,order){
localStorage.setItem('new-order', order);
store.commit('UPDATE_IF_NEW_ORDER');
},
showCreateOrderForm(store){
store.dispatch('toggleSection', {name: 'createOrderForm', status: true})
},
showOrderList(store){
store.dispatch('toggleSection', {name: 'orderList', status: true})
store.dispatch('toggleSection', {name: 'createOrderForm', status: false})
},
}
}
+1 -3
View File
@@ -6,7 +6,6 @@ import createNotification from './modules/createNotification'
import crudRequest from './modules/crudRequest'
import authentication from './modules/authentication'
import loadRequestQueue from './modules/loadRequestQueue'
import order from './modules/order'
Vue.use(Vuex);
@@ -17,7 +16,6 @@ export default new Vuex.Store({
loadRequestQueue,
createNotification,
crudRequest,
authentication,
order
authentication
}
})
@@ -13,8 +13,8 @@
</div>
<div class="col">
@include('partials.header')
<div class="row no-margin">
<div class="col">
<div class="row no-margin p-b-50">
<div class="col p-t-15 p-b-25">
@yield('inner_content')
</div>
</div>
File diff suppressed because one or more lines are too long
@@ -1,94 +1,4 @@
@extends('layouts.base_portal')
@section('inner_content')
@include('pages.dashboards.customer')
<template v-if="$store.getters.orderExist">
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
<h1>TEWTASE</h1>
</template>
@endsection
+81 -78
View File
@@ -1,96 +1,99 @@
<div class="col-0">
<!-- QR Code Structure -->
<div class="row">
<div class="d-flex flex-row align-items-center">
<div class="col">
<img class="p-2 border" style="width: 100px; height: 100px;" src="http://eslkidsgames.com/Flash/QR%20Code%20Maker/eslkidsgames.com.png">
</div>
<div class="d-flex flex-column pl-3">
<span class="fs-16" style="color: #a6a6a6;">Order #00012558</span>
<span class="py-2 fs-20 bold">Your order(s) are ready for shipment</span>
<span class="fs-14" style="color: #a6a6a6;">Ordered at 1:54PM on 12 August, 2021</span>
@extends('layouts.base_portal')
@section('inner_content')
<div class="col-0">
<!-- QR Code Structure -->
<div class="row">
<div class="d-flex flex-row align-items-center">
<div class="col">
<img class="p-2 border" style="width: 100px; height: 100px;" src="http://eslkidsgames.com/Flash/QR%20Code%20Maker/eslkidsgames.com.png">
</div>
<div class="d-flex flex-column pl-3">
<span class="fs-16" style="color: #a6a6a6;">Order #00012558</span>
<span class="py-2 fs-20 bold">Your order(s) are ready for shipment</span>
<span class="fs-14" style="color: #a6a6a6;">Ordered at 1:54PM on 12 August, 2021</span>
</div>
</div>
</div>
</div>
<!-- Banner Component -->
<div class="py-3">
<div class="p-3 card b-rad-2 no-border" style="background-color: #f6f6f6;">
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
<div class="d-flex flex-column">
<span class="fs-14 bold" style="color: #5c5c5c;">Latest Update</span>
<span class="fs-12 bold" style="color: #5c5c5c;">Today <span class="fs-12" style="color: #a6a6a6;">at 3:04PM</span></span>
<div>
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
<!-- Banner Component -->
<div class="py-3">
<div class="p-3 card b-rad-2 no-border" style="background-color: #f6f6f6;">
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
<div class="d-flex flex-column">
<span class="fs-14 bold" style="color: #5c5c5c;">Latest Update</span>
<span class="fs-12 bold" style="color: #5c5c5c;">Today <span class="fs-12" style="color: #a6a6a6;">at 3:04PM</span></span>
<div>
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
</div>
</div>
</div>
<div class="d-flex flex-row">
<div class="d-none d-md-inline">
<div class="col-6 border-right" style="height: 50px;"></div>
</div>
<div class="pl-md-4 d-flex flex-column">
<span class="fs-14 text-right" style="color: #a6a6a6;">Carrier Tracking Number</span>
<span class="fs-14 bold text-right text-underline" style="color: #5c5c5c">#1ZYBR067TW403742920</span>
<div class="d-flex flex-row">
<div class="d-none d-md-inline">
<div class="col-6 border-right" style="height: 50px;"></div>
</div>
<div class="pl-md-4 d-flex flex-column">
<span class="fs-14 text-right" style="color: #a6a6a6;">Carrier Tracking Number</span>
<span class="fs-14 bold text-right text-underline" style="color: #5c5c5c">#1ZYBR067TW403742920</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Stepper Bar -->
<!-- Stepper Bar -->
@include('partials.tab')
<!-- Order List Item -->
<div class="w-100">
<div class="border-top border-bottom" style="border-color: #e6e6e6;">
<div class="py-3">
<div clas="row">
<div class="d-flex flex-column flex-sm-row">
<div class="col-0">
<!-- Placeholder, We Can Simply Remove It Once We Have Another Design -->
<svg xmlns="http://www.w3.org/2000/svg" width="100.181" height="79.5" viewBox="0 0 100.181 79.5">
<g id="Group_1383" data-name="Group 1383" transform="translate(-889.514 -181.288)">
<path id="Path_4020" data-name="Path 4020" d="M952,332.246l-62.483-19.631V266.054L952,279.356Z" transform="translate(0 -71.459)" fill="#d3b875"/>
<path id="Path_4021" data-name="Path 4021" d="M1325.213,284.831l-37.7,21.43v-52.89l37.7-18.141Z" transform="translate(-335.518 -45.473)" fill="#b78c58"/>
<path id="Path_4022" data-name="Path 4022" d="M889.514,194.6l38.136-13.308,62.045,8.468L952,207.9Z" transform="translate(0 0)" fill="#f2d08b"/>
<path id="Path_4023" data-name="Path 4023" d="M1005.032,216.015l58.887,12.9,1.21,21.085,2.074,3.024,1.026-3.889,1.394,1.21,1.383-2.765,1.037,1.555-1.334-23.749L1010.224,214.2Z" transform="translate(-97.383 -27.748)" fill="#846b3d" opacity="0.6"/>
<path id="Path_4024" data-name="Path 4024" d="M1053.026,217.9l36.813-15.45,6.263.855-35.319,16.246Z" transform="translate(-137.842 -17.844)" fill="#846b3d" opacity="0.6"/>
<path id="Path_4025" data-name="Path 4025" d="M1053.026,300.865v49.162l7.757,2.437V302.516Z" transform="translate(-137.842 -100.804)" fill="#846b3d"/>
<path id="Path_4026" data-name="Path 4026" d="M1330.25,542.961c0,.573-.427.769-1.037,1.037l-6.394,3.228c-.864.43-1.037-.464-1.037-1.037v-9.851c0-.573.374-.708,1.037-1.037l6.394-3.228c1.354-.691.948.714,1.037,3.37Z" transform="translate(-364.405 -295.567)" fill="#fff"/>
<path id="Path_4027" data-name="Path 4027" d="M1325.959,549.8l6.346-3.084v.354l-6.346,3.191Z" transform="translate(-367.927 -308.06)" fill="#4c402c"/>
<path id="Path_4028" data-name="Path 4028" d="M1325.959,557.536l6.346-3.084v.355L1325.959,558Z" transform="translate(-367.927 -314.58)" fill="#4c402c"/>
<path id="Path_4029" data-name="Path 4029" d="M1325.959,566.218l6.346-3.084v.355l-6.346,3.191Z" transform="translate(-367.927 -321.899)" fill="#4c402c"/>
<path id="Path_4030" data-name="Path 4030" d="M1326.912,596.125l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -348.067)" fill="#4c402c"/>
<path id="Path_4031" data-name="Path 4031" d="M1326.912,602l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -353.017)" fill="#4c402c"/>
<path id="Path_4032" data-name="Path 4032" d="M1326.912,607.985l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -358.065)" fill="#4c402c"/>
</g>
</svg>
</div>
<div class="w-100 d-flex flex-column">
<div class="d-flex">
<div class="col pl-4">
<div class="row">
<div class="d-flex flex-column pl-3">
<span class="fs-12 bold" style="color: #5c5c5c;">MY55899874</span>
<span class="py-2 fs-14 bold">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor</span>
<div class="w-100">
<div class="border-top border-bottom" style="border-color: #e6e6e6;">
<div class="py-3">
<div clas="row">
<div class="d-flex flex-column flex-sm-row">
<div class="col-0">
<!-- Placeholder, We Can Simply Remove It Once We Have Another Design -->
<svg xmlns="http://www.w3.org/2000/svg" width="100.181" height="79.5" viewBox="0 0 100.181 79.5">
<g id="Group_1383" data-name="Group 1383" transform="translate(-889.514 -181.288)">
<path id="Path_4020" data-name="Path 4020" d="M952,332.246l-62.483-19.631V266.054L952,279.356Z" transform="translate(0 -71.459)" fill="#d3b875"/>
<path id="Path_4021" data-name="Path 4021" d="M1325.213,284.831l-37.7,21.43v-52.89l37.7-18.141Z" transform="translate(-335.518 -45.473)" fill="#b78c58"/>
<path id="Path_4022" data-name="Path 4022" d="M889.514,194.6l38.136-13.308,62.045,8.468L952,207.9Z" transform="translate(0 0)" fill="#f2d08b"/>
<path id="Path_4023" data-name="Path 4023" d="M1005.032,216.015l58.887,12.9,1.21,21.085,2.074,3.024,1.026-3.889,1.394,1.21,1.383-2.765,1.037,1.555-1.334-23.749L1010.224,214.2Z" transform="translate(-97.383 -27.748)" fill="#846b3d" opacity="0.6"/>
<path id="Path_4024" data-name="Path 4024" d="M1053.026,217.9l36.813-15.45,6.263.855-35.319,16.246Z" transform="translate(-137.842 -17.844)" fill="#846b3d" opacity="0.6"/>
<path id="Path_4025" data-name="Path 4025" d="M1053.026,300.865v49.162l7.757,2.437V302.516Z" transform="translate(-137.842 -100.804)" fill="#846b3d"/>
<path id="Path_4026" data-name="Path 4026" d="M1330.25,542.961c0,.573-.427.769-1.037,1.037l-6.394,3.228c-.864.43-1.037-.464-1.037-1.037v-9.851c0-.573.374-.708,1.037-1.037l6.394-3.228c1.354-.691.948.714,1.037,3.37Z" transform="translate(-364.405 -295.567)" fill="#fff"/>
<path id="Path_4027" data-name="Path 4027" d="M1325.959,549.8l6.346-3.084v.354l-6.346,3.191Z" transform="translate(-367.927 -308.06)" fill="#4c402c"/>
<path id="Path_4028" data-name="Path 4028" d="M1325.959,557.536l6.346-3.084v.355L1325.959,558Z" transform="translate(-367.927 -314.58)" fill="#4c402c"/>
<path id="Path_4029" data-name="Path 4029" d="M1325.959,566.218l6.346-3.084v.355l-6.346,3.191Z" transform="translate(-367.927 -321.899)" fill="#4c402c"/>
<path id="Path_4030" data-name="Path 4030" d="M1326.912,596.125l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -348.067)" fill="#4c402c"/>
<path id="Path_4031" data-name="Path 4031" d="M1326.912,602l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -353.017)" fill="#4c402c"/>
<path id="Path_4032" data-name="Path 4032" d="M1326.912,607.985l4.012-1.95.05.369-4.061,2.042Z" transform="translate(-368.731 -358.065)" fill="#4c402c"/>
</g>
</svg>
</div>
<div class="w-100 d-flex flex-column">
<div class="d-flex">
<div class="col pl-4">
<div class="row">
<div class="d-flex flex-column pl-3">
<span class="fs-12 bold" style="color: #5c5c5c;">MY55899874</span>
<span class="py-2 fs-14 bold">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor</span>
</div>
</div>
<div class="d-flex flex-row">
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
</div>
</div>
<div class="d-flex flex-row">
<span class="fs-12" style="color: #a6a6a6;">From: Guangzhou, China</span>
<span class="fs-12 pl-3 pl-sm-5" style="color: #a6a6a6;">To: Kuala Lumpur, Malaysia</span>
<div class="d-flex flex-column">
<span class="fs-12 all-caps text-right" style="color: #912873;">To Be Shipped</span>
<span class="py-2 fs-12 text-right bold">52x65x35 CM / 10KG</span>
</div>
</div>
<div class="d-flex flex-column">
<span class="fs-12 all-caps text-right" style="color: #912873;">To Be Shipped</span>
<span class="py-2 fs-12 text-right bold">52x65x35 CM / 10KG</span>
</div>
</div>
<div class="pt-3 d-flex align-items-center">
<span class="col pl-4 fs-12" style="color: #a6a6a6;">Date: 12 August, 2021</span>
<div class="d-flex flex-row justify-content-between" style="width: 295px;">
<div class="btn btn-primary b-rad-2" style="width: 145px;">Ship Now</div>
<div class="btn btn-secondary b-rad-2" style="width: 145px;">Details</div>
<div class="pt-3 d-flex align-items-center">
<span class="col pl-4 fs-12" style="color: #a6a6a6;">Date: 12 August, 2021</span>
<div class="d-flex flex-row justify-content-between" style="width: 295px;">
<div class="btn btn-primary b-rad-2" style="width: 145px;">Ship Now</div>
<div class="btn btn-secondary b-rad-2" style="width: 145px;">Details</div>
</div>
</div>
</div>
</div>
@@ -99,4 +102,4 @@
</div>
</div>
</div>
</div>
@endsection
+5 -3
View File
@@ -2,7 +2,9 @@
<div class="col">
<div class="row">
<div class="col-10 p-t-15 p-b-15">
<img class="w-50" src="https://www.izyim.com/images/logo.png">
<a href="{{route('dashboard')}}">
<img class="w-50" src="https://www.izyim.com/images/logo.png">
</a>
</div>
</div>
<div class="row">
@@ -85,7 +87,7 @@
<div class="row no-margin">
<div class="absolute hint-text dotted-grid" style="width: 80px;height: 80px; right: 27px; bottom: 28px; z-index: 1; opacity: 0.3;"></div>
<div class="absolute hint-text dotted-grid" style="width: 80px;height: 80px; z-index: 1; opacity: 0.3;"></div>
<div class="col bg-info-primary-gradient text-white padding-25">
<div class="col bg-info text-white padding-25">
<div class="row">
<div class="col">
<h6 class="text-white m-t-0 semi-bold">Got Problems?</h6>
@@ -94,7 +96,7 @@
</div>
<div class="row">
<div class="col">
<div class="btn btn-sm btn-block bg-white text-primary b-rad-sm pointer">Contact Us</div>
<div class="btn btn-sm btn-block bg-white text-info b-rad-sm pointer">Contact Us</div>
</div>
</div>
</div>
+2 -1
View File
@@ -3,11 +3,12 @@
use Illuminate\Support\Facades\Route;
Route::group(['prefix' => 'address', 'as' => 'address.', 'namespace' => 'Addresses'], function () {
Route::group(['prefix' => 'address', 'as' => 'address.', 'namespace' => 'Addresses'], function () {
Route::get('/{id}/show', 'FetchAddressController@fetch')->name('show');
Route::get('/list', 'ListAddressesController@list')->name('list');
Route::get('district/list', 'ListDistrictsController@list')->name('district.list');
Route::post('/create', 'CreateAddressController@create')->name('create');
+4
View File
@@ -48,6 +48,10 @@ Route::get('/order', function () {
return view('pages.orders.index');
})->name('order');
Route::get('/order/show', function () {
return view('pages.order_details');
})->name('order.show');
Route::get('/address', function () {
return view('pages.addresses.index');
})->name('address');