change pack to label

This commit is contained in:
Fayyazi
2019-10-28 14:16:18 +03:30
parent 7c94a30254
commit dbd0ddc1d4
16 changed files with 254 additions and 112 deletions
@@ -3,14 +3,15 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Http\Requests\StorePackRequest; use App\Http\Requests\StoreLabelRequest;
use App\Pack; use App\Label;
use App\Package;
class PackController extends Controller class LabelController extends Controller
{ {
public function index(Request $request) public function index(Request $request)
{ {
$Packs = Pack::when($request->has('name') && $request->name != '', function($query) use($request){ $Labels = Label::when($request->has('name') && $request->name != '', function($query) use($request){
$query->where('name', 'LIKE', '%'.$request->name.'%'); $query->where('name', 'LIKE', '%'.$request->name.'%');
}) })
->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){ ->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){
@@ -31,20 +32,20 @@ class PackController extends Controller
}); });
}) })
->with('user', 'user.medical_center')->paginate(10); ->with('user', 'user.medical_center')->paginate(10);
return \MessageResponse::data($Packs); return \MessageResponse::data($Labels);
} }
public function create() public function create()
{ {
} }
public function show(Pack $Pack) public function show(Label $Label)
{ {
$Pack->load('user', 'packages', 'user.medical_center'); $Label->load('user', 'packages', 'user.medical_center');
return \MessageResponse::data($Pack); return \MessageResponse::data($Label);
} }
public function store(StorePackRequest $request) public function store(StoreLabelRequest $request)
{ {
$PackData = [ $LabelData = [
'name' => $request->name, 'name' => $request->name,
'sterile_date' => $request->sterile_date, 'sterile_date' => $request->sterile_date,
'expire_date' => $request->expire_date, 'expire_date' => $request->expire_date,
@@ -55,44 +56,48 @@ class PackController extends Controller
'note' => $request->note, 'note' => $request->note,
'user_id' => auth('api')->user()->id, 'user_id' => auth('api')->user()->id,
]; ];
$PackObj = Pack::create($PackData); $LabelObj = Label::create($LabelData);
$PackObj->packages()->attach($request->packages); Package::find($request->package_id)->update(['label_id' => $Label->id]);
return \MessageResponse::success(trans('messages.success')); return \MessageResponse::success(trans('messages.success'));
} }
public function edit(Pack $Pack) public function edit(Label $Label)
{ {
$Packages = $Pack->packages->pluck('id')->toArray(); $Label->load('package');
unset($Pack->packages); dd($Label);
$Pack->packages = $Packages; // $Packages = $Label->packages->pluck('id')->toArray();
return \MessageResponse::data($Pack); // unset($Label->packages);
// $Label->package_id = $Label->package->id;
return \MessageResponse::data($Label);
} }
public function update(StorePackRequest $request, Pack $Pack) public function update(Request $request, Label $Label)
{ {
$Pack->update($request->except(['packages'])); $Label->update($request->except(['package_id']));
$Pack->packages()->sync($request->packages); Package::find($request->package_id)->update(['label_id' => $Label->id]);
// $Label->package()->save($request->package_id);
// $Label->packages()->sync($request->packages);
return \MessageResponse::success(trans('messages.success')); return \MessageResponse::success(trans('messages.success'));
} }
public function destroy(Pack $Pack) public function destroy(Label $Label)
{ {
if (auth('api')->user()->cant('delete', $Pack)) { if (auth('api')->user()->cant('delete', $Label)) {
return \MessageResponse::error(trans('messages.access_denied')); return \MessageResponse::error(trans('messages.access_denied'));
} }
if(count($Pack->packages)) if(count($Label->packages))
{ {
$Pack->packages()->detach(); $Label->packages()->detach();
} }
if(count($Pack->cycles)) if(count($Label->cycles))
{ {
$Pack->cycles()->detach(); $Label->cycles()->detach();
} }
$Pack->delete(); $Label->delete();
return \MessageResponse::success(trans('messages.success')); return \MessageResponse::success(trans('messages.success'));
} }
public function getPacks() public function getLabels()
{ {
$Packs = Pack::with('user')->get(); $Labels = Label::with('user')->get();
return \MessageResponse::data($Packs); return \MessageResponse::data($Labels);
} }
} }
+55 -2
View File
@@ -39,20 +39,73 @@ class PackageController extends Controller
'verified' => 'NotVerified', 'verified' => 'NotVerified',
]; ];
$PackageObj = Package::create($PackageData); $PackageObj = Package::create($PackageData);
$Items = [];
$count = 1;
foreach ($request->items as $key => $item) {
if (array_key_exists($item['id'], $Items)) {
$preCount = $Items[$item['id']];
$Items[$item['id']] = $preCount + 1;
}
else {
$Items[$item['id']] = $count;
}
}
foreach ($Items as $Item => $Count) {
$Package->items()->attach(array($Item), ['count' => $Count]);
}
$PackageObj->items()->attach($request->items); $PackageObj->items()->attach($request->items);
return \MessageResponse::success(trans('messages.success')); return \MessageResponse::success(trans('messages.success'));
} }
public function edit(Package $Package) public function edit(Package $Package)
{ {
$Items = $Package->items->pluck('id')->toArray(); $Items = [];
$Package->load('items');
// dd($Package);
foreach ($Package->items as $item) {
for ($i=0; $i < $item->pivot->count ; $i++) {
$Items[] = (object) array('id' => $item->id, 'name' => $item->name);
}
}
unset($Package->items); unset($Package->items);
$Package->items = $Items; $Package->items = $Items;
return \MessageResponse::data($Package); return \MessageResponse::data($Package);
} }
public function update(StorePackageRequest $request, Package $Package) public function update(StorePackageRequest $request, Package $Package)
{ {
// dd($request->items);
$Package->update($request->except(['items'])); $Package->update($request->except(['items']));
$Package->items()->sync($request->items); $Items = [];
$count = 1;
foreach ($request->items as $key => $item) {
// dump(in_array($item['id'], array_column($Items, 'id')));
// if (in_array($item['id'], array_column($Items, 'id'))) {
// $index = array_search($item['id'], array_column($Items));
// dump(array_search($item['id'], $Items));
// $Items[$index]['count'] += 1;
// // dump($Items);
// }
// else {
// $Item1 = ['id' => $item['id'], 'count' => $count];
// $Items[] = $Item1;
// }
if (array_key_exists($item['id'], $Items)) {
$preCount = $Items[$item['id']];
$Items[$item['id']] = $preCount + 1;
}
else {
$Items[$item['id']] = $count;
}
}
// dd($Items);
$Package->items()->detach();
// foreach ($Items as $Item) {
// $Package->items()->attach(array($Item['id']), ['count' => $Item['count']]);
// }
foreach ($Items as $Item => $Count) {
$Package->items()->attach(array($Item), ['count' => $Count]);
}
// $Package->items()->sync($request->items);
return \MessageResponse::success(trans('messages.success')); return \MessageResponse::success(trans('messages.success'));
} }
public function destroy(Package $Package) public function destroy(Package $Package)
@@ -41,12 +41,10 @@ class TestResultController extends Controller
} }
$TestResult = TestResult::with('test_type', 'user', 'user.medical_center') $TestResult = TestResult::with('test_type', 'user', 'user.medical_center')
->when($request->has('verified'), function ($query) use ($request) ->when($request->has('verified'), function ($query) use ($request){
{
return $query->where('verified', $request->verified); return $query->where('verified', $request->verified);
}) })
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request) ->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request){
{
$from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00'); $from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00');
$upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59'); $upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
return $query->whereBetween('created_at', [$from, $upTo]); return $query->whereBetween('created_at', [$from, $upTo]);
@@ -2,21 +2,21 @@
namespace App\Http\Requests; namespace App\Http\Requests;
use App\Pack; use App\Label;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator; use Illuminate\Contracts\Validation\Validator;
class StorePackRequest extends FormRequest class StoreLabelRequest extends FormRequest
{ {
public function authorize() public function authorize()
{ {
if ($this->method() == 'POST') { if ($this->method() == 'POST') {
return auth('api')->check() && auth('api')->user()->can('store', Pack::class); return auth('api')->check() && auth('api')->user()->can('store', Label::class);
} else { } else {
$Pack = $this->route('Pack'); $Label = $this->route('Label');
return auth('api')->check() && $Pack && auth('api')->user()->can('update', $Pack); return auth('api')->check() && $Label && auth('api')->user()->can('update', $Label);
} }
} }
@@ -25,7 +25,7 @@ class StorePackRequest extends FormRequest
switch ($this->method()) { switch ($this->method()) {
case 'POST': { case 'POST': {
return [ return [
'name' => 'required|max:100|unique:packs', 'name' => 'required|max:100|unique:labels',
'sterile_date' => 'required', 'sterile_date' => 'required',
'expire_date' => 'required', 'expire_date' => 'required',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
@@ -33,15 +33,15 @@ class StorePackRequest extends FormRequest
'lot_number' => 'required', 'lot_number' => 'required',
'department' => 'required', 'department' => 'required',
'note' => 'nullable', 'note' => 'nullable',
'packages' => 'required', 'package_id' => 'required',
]; ];
break; break;
} }
case 'PUT': case 'PUT':
case 'PATCH': { case 'PATCH': {
$Pack = $this->route('Pack'); $Label = $this->route('Label');
return [ return [
'name' => 'required|max:100|unique:packs,id,'.$Pack->id, 'name' => 'required|max:100|unique:labels,id,'.$Label->id,
'sterile_date' => 'required', 'sterile_date' => 'required',
'expire_date' => 'required', 'expire_date' => 'required',
'sterilizer_id' => 'required', 'sterilizer_id' => 'required',
@@ -49,7 +49,7 @@ class StorePackRequest extends FormRequest
'lot_number' => 'required', 'lot_number' => 'required',
'department' => 'required', 'department' => 'required',
'note' => 'nullable', 'note' => 'nullable',
'packages' => 'required', 'package_id' => 'required',
]; ];
break; break;
+7 -3
View File
@@ -4,17 +4,21 @@ namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Pack extends Model class Label extends Model
{ {
public $fillable = ['name', 'sterile_date', 'expire_date', 'sterilizer_id', 'cycle_number', 'lot_number', 'department', 'user_id', 'note']; public $fillable = ['name', 'sterile_date', 'expire_date', 'sterilizer_id', 'cycle_number', 'lot_number', 'department', 'user_id', 'note'];
public function user() public function user()
{ {
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
} }
public function packages() public function package()
{ {
return $this->belongsToMany('App\Package', 'pack_package'); return $this->belongsTo('App\Package');
} }
// public function packages()
// {
// return $this->belongsToMany('App\Package', 'pack_package');
// }
public function cycles() public function cycles()
{ {
return $this->belongsToMany('App\Cycle', 'cycle_pack'); return $this->belongsToMany('App\Cycle', 'cycle_pack');
+8 -4
View File
@@ -6,18 +6,22 @@ use Illuminate\Database\Eloquent\Model;
class Package extends Model class Package extends Model
{ {
public $fillable = ['name', 'unique_id', 'user_id', 'note', 'verified']; public $fillable = ['name', 'unique_id', 'user_id', 'note', 'verified', 'label_id'];
public function user() public function user()
{ {
return $this->belongsTo('App\User'); return $this->belongsTo('App\User');
} }
public function items() public function items()
{ {
return $this->belongsToMany('App\Item', 'item_package'); return $this->belongsToMany('App\Item', 'item_package')->withPivot('count');
} }
public function packs() // public function packs()
// {
// return $this->belongsToMany('App\Pack', 'pack_package');
// }
public function labels()
{ {
return $this->belongsToMany('App\Pack', 'pack_package'); return $this->hasMany('App\Label');
} }
} }
@@ -3,18 +3,18 @@
namespace App\Policies; namespace App\Policies;
use App\User; use App\User;
use App\Pack; use App\Label;
use Doctrine\Tests\Common\Inflector\InflectorTest; use Doctrine\Tests\Common\Inflector\InflectorTest;
class PackPolicy class LabelPolicy
{ {
public function delete(User $User, Pack $Pack) public function delete(User $User, Label $Label)
{ {
// if($User->hasRole('Admin') && $Pack->users->count() == 0) // if($User->hasRole('Admin') && $Label->users->count() == 0)
return true; return true;
} }
public function update(User $User, Pack $Pack) public function update(User $User, Label $Label)
{ {
// if($User->hasRole('Admin')) // if($User->hasRole('Admin'))
return true; return true;
@@ -56,6 +56,34 @@
<div class v-for="(pack, key) in data.packs" :key="key"> <div class v-for="(pack, key) in data.packs" :key="key">
<span class="headline ml-2" style="letter-spacing:0 !important">{{ key+1 + ": " + pack.name }}</span> <span class="headline ml-2" style="letter-spacing:0 !important">{{ key+1 + ": " + pack.name }}</span>
</div> </div>
<!-- <v-row justify="center mt-5">
<v-expansion-panels accordion class="WM-Relative WM-Panel">
<v-expansion-panel class="WM-PanelCategories"
v-for="(pack, key) in data.packs"
:key="key"
>
<v-expansion-panel-header>
<span class="headline ml-2">{{key+1}}</span>
<h2 style="margin-right:20px">{{ pack.name }}</h2>
<div class="ml-3" align="left">
</div>
</v-expansion-panel-header>
<v-expansion-panel-content>
<v-card-text style="padding:5px 30px">
<producer-category-item v-if="pack.children" :items="pack.children" @clicked="onClickChild"/>
</v-card-text>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
</v-row> -->
</v-flex> </v-flex>
</v-layout> </v-layout>
</v-layout> </v-layout>
@@ -1,7 +1,7 @@
<template> <template>
<v-container grid-list-xs> <v-container grid-list-xs>
<material-card color="black" title="Show Package"> <material-card color="black" title="Show Label">
<v-layout align-left justify-left wrap class="px-5 my-3"> <v-layout align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Info</h3> <h3 class="ml-3">Info</h3>
<v-flex xs12> <v-flex xs12>
@@ -1,7 +1,7 @@
<template> <template>
<v-container grid-list-xs> <v-container grid-list-xs>
<material-card color="black" id="printMe" title="Show Label"> <material-card color="black" id="printMe" title="Show Package">
<v-layout align-left justify-left wrap class="px-5 my-3"> <v-layout align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Info</h3> <h3 class="ml-3">Info</h3>
<v-flex xs12> <v-flex xs12>
@@ -46,13 +46,25 @@
<hr class="v-divider theme--light"> <hr class="v-divider theme--light">
</v-flex> </v-flex>
<v-layout row wrap class="ml-4"> <v-layout row wrap class="ml-4">
<v-flex xs12 md6 sm6> <template>
<div class v-for="(item, key) in data.items" :key="key"> <v-expansion-panel>
<span class="headline ml-2" style="letter-spacing:0 !important">{{ key+1 + ": " + item.name }}</span> <v-expansion-panel-content
</div> v-for="(item, key) in data.items" :key="key"
</v-flex> >
<template v-slot:header>
<div>{{ key+1 + ": " + item.name }}</div>
</template>
<v-card>
<v-card-text>count : {{ item.pivot.count }}</v-card-text>
<v-card-text>note : {{ item.note }}</v-card-text>
</v-card>
</v-expansion-panel-content>
</v-expansion-panel>
</template>
</v-layout> </v-layout>
</v-layout> </v-layout>
<v-layout id="printMe" align-left justify-left wrap class="px-5 my-3"> <v-layout id="printMe" align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Barcode And QRCode Image</h3> <h3 class="ml-3">Barcode And QRCode Image</h3>
<v-flex xs12> <v-flex xs12>
+13 -13
View File
@@ -9,7 +9,7 @@ const urls = {
statistics: `/TestResults/chart`, statistics: `/TestResults/chart`,
storeTestType: "/TestTypes", storeTestType: "/TestTypes",
storePackage: "/Packages", storePackage: "/Packages",
storePack: "/Packs", storeLabel: "/Labels",
storeCycle: "/Cycles", storeCycle: "/Cycles",
storeItem: "/Items", storeItem: "/Items",
listTestTypeName: "/TestTypes/ListNames", listTestTypeName: "/TestTypes/ListNames",
@@ -111,20 +111,20 @@ const urls = {
verifyPackage: function(id) { verifyPackage: function(id) {
return `/Package/Verify/${id}`; return `/Package/Verify/${id}`;
}, },
listPack: function(filter) { listLabel: function(filter) {
return "/Packs" + filter; return "/Labels" + filter;
}, },
showPack: function(id) { showLabel: function(id) {
return `/Packs/${id}`; return `/Labels/${id}`;
}, },
editPack: function(id) { editLabel: function(id) {
return `/Packs/${id}/edit`; return `/Labels/${id}/edit`;
}, },
updatePack: function(id) { updateLabel: function(id) {
return `/Packs/${id}`; return `/Labels/${id}`;
}, },
removePack: function(id) { removeLabel: function(id) {
return `Packs/${id}`; return `Labels/${id}`;
}, },
listCycle: function(filter) { listCycle: function(filter) {
return "/Cycles" + filter; return "/Cycles" + filter;
@@ -153,8 +153,8 @@ const urls = {
listAllPackage: function() { listAllPackage: function() {
return "/GetPackages"; return "/GetPackages";
}, },
listAllPack: function() { listAllLabel: function() {
return "/GetPacks"; return "/GetLabels";
}, },
showItem: function(id) { showItem: function(id) {
return `/Items/${id}`; return `/Items/${id}`;
+7 -7
View File
@@ -160,19 +160,19 @@ export default [
view: 'Package/AddEdit' view: 'Package/AddEdit'
}, },
{ {
path: '/add-pack', path: '/add-label',
name: 'AddPack', name: 'AddLabel',
view: 'Pack/AddEdit' view: 'Label/AddEdit'
}, },
{ {
path: '/labels', path: '/labels',
name: 'AllLabels', name: 'AllLabels',
view: 'Pack/List' view: 'Label/List'
}, },
{ {
path: '/pack/:pack/edit', path: '/label/:label/edit',
name: 'EditPack', name: 'EditLabel',
view: 'Pack/AddEdit' view: 'Label/AddEdit'
}, },
{ {
path: '/add-cycle', path: '/add-cycle',
@@ -48,13 +48,12 @@
<v-flex xs12 sm6 md3 class="WM-FlexCenter"> <v-flex xs12 sm6 md3 class="WM-FlexCenter">
<v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon> <v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete <v-autocomplete
multiple
color="black" color="black"
:items="items" :items="items"
item-text="name" item-text="name"
v-model="formData.packages" v-model="formData.package_id"
item-value="id" item-value="id"
label="Select Package For Pack" label="Select Package For Label"
class="py-3 pr-3" class="py-3 pr-3"
></v-autocomplete> ></v-autocomplete>
</v-flex> </v-flex>
@@ -162,7 +161,7 @@ export default {
name: "", name: "",
result: "", result: "",
note: "", note: "",
packages: [] package_id: ""
}, },
items: [], items: [],
rules: { rules: {
@@ -176,14 +175,14 @@ export default {
}; };
}, },
created() { created() {
if (this.$route.params.pack) { if (this.$route.params.label) {
this.load(this.$route.params.pack); this.load(this.$route.params.label);
} }
this.loadItems(); this.loadItems();
}, },
methods: { methods: {
async load(id) { async load(id) {
const result = await ApiService.get(urls.editPack(id)); const result = await ApiService.get(urls.editLabel(id));
if (result.status == 200) { if (result.status == 200) {
this.formData = result.data.data; this.formData = result.data.data;
} }
@@ -196,14 +195,14 @@ export default {
}, },
async submitForm() { async submitForm() {
let result; let result;
if (this.$route.params.pack) { if (this.$route.params.label) {
result = await ApiService.put( result = await ApiService.put(
urls.updatePack(this.$route.params.pack), urls.updateLabel(this.$route.params.label),
this.formData this.formData
); );
} else { } else {
result = await ApiService.post( result = await ApiService.post(
urls.storePack, urls.storeLabel,
this.formData this.formData
); );
} }
@@ -48,7 +48,7 @@
</v-flex> </v-flex>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-flex xs12 md2 sm2 class="text-xs-right"> <v-flex xs12 md2 sm2 class="text-xs-right">
<router-link :to="{name: 'AddPack'}"> <router-link :to="{name: 'AddLabel'}">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black"> <v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-plus</v-icon> <v-icon class="black--text mr-2 caption">fas fa-plus</v-icon>
<span class="black--text">Add</span> <span class="black--text">Add</span>
@@ -78,7 +78,7 @@
</v-btn> </v-btn>
<router-link <router-link
v-if="$hasRole('Admin') || item.user_id == $store.state.user.id" v-if="$hasRole('Admin') || item.user_id == $store.state.user.id"
:to="{name: 'EditPack', params: {pack: item.id}}" :to="{name: 'EditLabel', params: {label: item.id}}"
> >
<v-btn color="orange" class="mr-2"> <v-btn color="orange" class="mr-2">
<v-icon class="white--text mr-1 caption">fas fa-pen</v-icon> <v-icon class="white--text mr-1 caption">fas fa-pen</v-icon>
@@ -175,7 +175,7 @@ export default {
} }
} }
filter += page ? `page=${page}` : `page=1`; filter += page ? `page=${page}` : `page=1`;
const result = await ApiService.get(urls.listPack(filter)); const result = await ApiService.get(urls.listLabel(filter));
if (result && result.status == 200) { if (result && result.status == 200) {
this.items = result.data.data.data; this.items = result.data.data.data;
this.currentPage = result.data.data.current_page; this.currentPage = result.data.data.current_page;
@@ -198,17 +198,17 @@ export default {
} }
}, },
async show(testResultId) { async show(testResultId) {
const result = await ApiService.get(urls.showPack(testResultId)); const result = await ApiService.get(urls.showLabel(testResultId));
if (result && result.status == 200) { if (result && result.status == 200) {
this.changeCurrentModal({ this.changeCurrentModal({
modal: "modal-pack-show", modal: "modal-label-show",
properties: { result } properties: { result }
}); });
} }
}, },
async remove(testResultId) { async remove(testResultId) {
const result = await ApiService.delete( const result = await ApiService.delete(
urls.removePack(testResultId) urls.removeLabel(testResultId)
); );
if (result && result.status == 200) { if (result && result.status == 200) {
for (const key in this.items) { for (const key in this.items) {
+48 -9
View File
@@ -14,19 +14,44 @@
class="py-3 pr-3" class="py-3 pr-3"
></v-text-field> ></v-text-field>
</v-flex> </v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3"> <!-- <v-row style="position: relative" v-for="(item, key) in formData.items" :key="key"> -->
<v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon> <v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3" style="position: relative" v-for="(item, key) in formData.items" :key="key">
<v-autocomplete <v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon>
multiple <v-autocomplete
class="py-3 pr-3" class="py-3 pr-3"
:items="items" :items="items"
item-text="name" item-text="name"
v-model="formData.items" v-model="item.id"
item-value="id" item-value="id"
label="Select Items For Package" label="Select Items For Package"
color="black" color="black"
></v-autocomplete> ></v-autocomplete>
</v-flex>
<v-btn
absolute
small
right
bottom
color="cyan"
@click="duplicateForm(key)"
>
<v-icon class="white--text mr-2 caption">fas fa-plus</v-icon>ADD
</v-btn>
<v-btn
absolute
small
left
bottom
color="red"
@click="removeForm(key)"
>
<v-icon class="white--text mr-2 caption">fas fa-remove</v-icon>REMOVE
</v-btn>
</v-flex>
<!-- </v-row> -->
</v-layout> </v-layout>
<v-layout align-center justify-center wrap class="px-5 mb-3"> <v-layout align-center justify-center wrap class="px-5 mb-3">
<v-flex xs12 sm12 md12> <v-flex xs12 sm12 md12>
@@ -69,7 +94,11 @@ export default {
name: "", name: "",
result: "", result: "",
note: "", note: "",
items: [] items: [
{
name:''
}
]
}, },
items: [], items: [],
result: ["Pass", "Fail"], result: ["Pass", "Fail"],
@@ -119,7 +148,17 @@ export default {
if (result && result.status == 200) { if (result && result.status == 200) {
this.$router.push({ name: "AllPackage" }); this.$router.push({ name: "AllPackage" });
} }
} },
duplicateForm(infoIndex) {
this.formData.items.push({
name: "",
});
},
removeForm(infoIndex) {
this.formData.items.splice(infoIndex, 1);
},
} }
}; };
</script> </script>
+2 -2
View File
@@ -51,14 +51,14 @@ Route::middleware('auth:api')->group(function () {
Route::resource('Items', 'ItemController'); Route::resource('Items', 'ItemController');
Route::resource('Packages', 'PackageController'); Route::resource('Packages', 'PackageController');
Route::resource('Packs', 'PackController'); Route::resource('Labels', 'LabelController');
Route::resource('Messages', 'MessageController'); Route::resource('Messages', 'MessageController');
Route::delete('Messages/User/{User}', 'MessageController@destroyUserMessages'); Route::delete('Messages/User/{User}', 'MessageController@destroyUserMessages');
Route::post('/Package/Verify/{Package}', 'PackageController@verifyPackage'); Route::post('/Package/Verify/{Package}', 'PackageController@verifyPackage');
Route::get('/GetItems', 'ItemController@getItems'); Route::get('/GetItems', 'ItemController@getItems');
Route::get('/GetPackages', 'PackageController@getPackages'); Route::get('/GetPackages', 'PackageController@getPackages');
Route::get('/GetPacks', 'PackController@getPacks'); Route::get('/GetLabels', 'LabelController@getLabels');
Route::resource('Cycles', 'CycleController'); Route::resource('Cycles', 'CycleController');