mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/unity.git
synced 2026-08-19 04:13:58 +00:00
contract template obligation modal UI
This commit is contained in:
@@ -45,4 +45,11 @@ class EntityController extends BaseController
|
|||||||
$entity = EntityModule::delete($request, $hash_id);
|
$entity = EntityModule::delete($request, $hash_id);
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function validCheck(Request $request, $hash_id = '')
|
||||||
|
{
|
||||||
|
$method = empty($hash_id) ? 'POST' :'PUT';
|
||||||
|
$valid = EntityModule::validCheck($request, $hash_id, $method);
|
||||||
|
return $valid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Netscape HTTP Cookie File
|
||||||
|
# https://curl.haxx.se/docs/http-cookies.html
|
||||||
|
# This file was generated by libcurl! Edit at your own risk.
|
||||||
|
|
||||||
|
#HttpOnly_www.starbuyers-global-auction.com FALSE / TRUE 1625823333 star_buyers_auction_session PC7Uf6I2TFtUqH2kIPkLFJnpJxvyfRuEmmbit4Wv
|
||||||
|
www.starbuyers-global-auction.com FALSE / TRUE 1625823333 XSRF-TOKEN eyJpdiI6Ik00SnJCTEJxTVZ5U2ExVUFzNGhIb2c9PSIsInZhbHVlIjoiY2JHVjEwYno1ZjI4TTFDcnIzZ1BaOERGWnQybDFPcm10eGtkalZVbU9hVUwzb1Nkd09LbHFHS3hSYkhZXC9GTFkiLCJtYWMiOiJiNzAzM2ZhMTE4NDFjMmZiZmJkMjQ2MzNkMGIyMjkzOGUzYmYxYjM1NWQwMTQyNDk5NmY4NTE1ODI1MzFlMmRmIn0%3D
|
||||||
@@ -100,7 +100,7 @@ class ContractTemplateModule extends BaseController
|
|||||||
$contract_template->user_id = Auth::guard('user-api')->user()->id;
|
$contract_template->user_id = Auth::guard('user-api')->user()->id;
|
||||||
$contract_template->name = $name;
|
$contract_template->name = $name;
|
||||||
$contract_template->complete_day_range = $complete_day_range;
|
$contract_template->complete_day_range = $complete_day_range;
|
||||||
$contract_template->status = config('constants.contact_template.status.pending');
|
$contract_template->status = config('constants.contact_template.status.active');
|
||||||
$contract_template->save();
|
$contract_template->save();
|
||||||
|
|
||||||
// log
|
// log
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
public static function list(Request $request)
|
public static function list(Request $request)
|
||||||
{
|
{
|
||||||
General::storeCachePerviousQuery($request->query(), 'contract_template_obligation_query');
|
General::storeCachePerviousQuery($request->query(), 'contract_template_obligation_query');
|
||||||
|
|
||||||
|
$contract_template_hash_id = $contract_template_id = $request->get('contract_template_id', []);
|
||||||
|
|
||||||
$name = $request->get('name', null);
|
$name = $request->get('name', null);
|
||||||
$status = $request->get('status', []);
|
$status = $request->get('status', []);
|
||||||
$page = $request->get('page', null);
|
$page = $request->get('page', null);
|
||||||
@@ -38,7 +40,12 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
|
|
||||||
$query = ContractTemplateObligation::query();
|
$query = ContractTemplateObligation::query();
|
||||||
|
|
||||||
if (strlen($name) > 0) {
|
if (!empty($contract_template_id)) {
|
||||||
|
$contract_template_id = Hasher::decodeArray('contract_templates', $contract_template_id);
|
||||||
|
$query->whereIn('contract_template_id', $contract_template_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strlen($name) > 0) {
|
||||||
$query->where('name', 'like', '%' . $name . '%');
|
$query->where('name', 'like', '%' . $name . '%');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,9 +55,10 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
|
|
||||||
$query->where('user_id', Auth::guard('user-api')->user()->id);
|
$query->where('user_id', Auth::guard('user-api')->user()->id);
|
||||||
|
|
||||||
$query->orderBy('id', 'desc');
|
$query->orderBy('sequence', 'desc');
|
||||||
|
|
||||||
$params = [
|
$params = [
|
||||||
|
'contract_template_id' => $contract_template_hash_id,
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'status' => $status,
|
'status' => $status,
|
||||||
'page' => $page
|
'page' => $page
|
||||||
@@ -105,6 +113,7 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
$contract_template_obligation = new ContractTemplateObligation();
|
$contract_template_obligation = new ContractTemplateObligation();
|
||||||
$contract_template_obligation->contract_template_id = $contarct_template->id;
|
$contract_template_obligation->contract_template_id = $contarct_template->id;
|
||||||
$contract_template_obligation->user_id = Auth::guard('user-api')->user()->id;
|
$contract_template_obligation->user_id = Auth::guard('user-api')->user()->id;
|
||||||
|
$contract_template_obligation->name = $name;
|
||||||
$contract_template_obligation->sequence = $sequence;
|
$contract_template_obligation->sequence = $sequence;
|
||||||
$contract_template_obligation->reference = $reference;
|
$contract_template_obligation->reference = $reference;
|
||||||
$contract_template_obligation->content = json_encode($content);
|
$contract_template_obligation->content = json_encode($content);
|
||||||
@@ -112,7 +121,7 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
$contract_template_obligation->must_accept = $must_accept;
|
$contract_template_obligation->must_accept = $must_accept;
|
||||||
$contract_template_obligation->complete_day_range = $complete_day_range;
|
$contract_template_obligation->complete_day_range = $complete_day_range;
|
||||||
$contract_template_obligation->type = $type;
|
$contract_template_obligation->type = $type;
|
||||||
$contract_template_obligation->status = config('constants.contract_template_obligation.status.pending');
|
$contract_template_obligation->status = config('constants.contract_template_obligation.status.active');
|
||||||
$contract_template_obligation->save();
|
$contract_template_obligation->save();
|
||||||
|
|
||||||
// log
|
// log
|
||||||
@@ -208,7 +217,7 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
'must_complete' => '',
|
'must_complete' => '',
|
||||||
'must_accept' => '',
|
'must_accept' => '',
|
||||||
'complete_day_range' => 'required|numeric|gt:-1',
|
'complete_day_range' => 'required|numeric|gt:-1',
|
||||||
'type' => 'required',
|
// 'type' => 'required',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,13 +225,13 @@ class ContractTemplateObligationModule extends BaseController
|
|||||||
$data['id'] = $id;
|
$data['id'] = $id;
|
||||||
$rule = [
|
$rule = [
|
||||||
'id' => [new UnderCheck('contract_template_obligation'), new ExistCheck('contract_template_obligation')],
|
'id' => [new UnderCheck('contract_template_obligation'), new ExistCheck('contract_template_obligation')],
|
||||||
'name' => '',
|
'name' => 'required',
|
||||||
'sequence' => 'nullable|numeric|gt:-1',
|
'sequence' => 'required|numeric|gt:-1',
|
||||||
'reference' => '',
|
'reference' => '',
|
||||||
'content' => '',
|
'content' => '',
|
||||||
'must_complete' => '',
|
'must_complete' => '',
|
||||||
'must_accept' => '',
|
'must_accept' => '',
|
||||||
'complete_day_range' => 'nullable|numeric|gt:-1',
|
'complete_day_range' => 'required|numeric|gt:-1',
|
||||||
'type' => '',
|
'type' => '',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,6 +159,14 @@ class EntityModule extends BaseController
|
|||||||
return response()->json($data);
|
return response()->json($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function validCheck(Request $request, $hash_id = '', $method = 'POST')
|
||||||
|
{
|
||||||
|
$id = $hash_id ? Hasher::decode('entities', $hash_id) : '';
|
||||||
|
$validation = EntityModule::validation($request, $id, $method);
|
||||||
|
if (!$validation->status) {
|
||||||
|
return response()->json($validation, 422);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static function validation(Request $request, $id = '', $method = 'POST')
|
private static function validation(Request $request, $id = '', $method = 'POST')
|
||||||
{
|
{
|
||||||
|
|||||||
Vendored
+1
@@ -5,6 +5,7 @@ const En = {
|
|||||||
'email': 'email',
|
'email': 'email',
|
||||||
'password': 'password',
|
'password': 'password',
|
||||||
'complete_day_range': 'complete day range',
|
'complete_day_range': 'complete day range',
|
||||||
|
'sequence': 'sequence',
|
||||||
|
|
||||||
|
|
||||||
// Error
|
// Error
|
||||||
|
|||||||
@@ -0,0 +1,149 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<b-modal :id="'contract-template-obligation-create-modal'" size="lg" scrollable @shown="getExistDataList" @hidden="resetData">
|
||||||
|
<template v-slot:modal-title>
|
||||||
|
<h4 class="modal-title">Contract Template Obligation Create</h4>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<contract-template-form-table
|
||||||
|
:selected_contract_template="[this_contract_template]"
|
||||||
|
:no_convert="true"
|
||||||
|
>
|
||||||
|
</contract-template-form-table>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-input
|
||||||
|
:input_name="'name'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Name*'"
|
||||||
|
></text-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<number-input
|
||||||
|
:input_name="'sequence'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Sequence*'"
|
||||||
|
></number-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-input
|
||||||
|
:input_name="'reference'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Reference*'"
|
||||||
|
></text-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-area-input
|
||||||
|
:input_name="'content'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Content*'"
|
||||||
|
></text-area-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<number-input
|
||||||
|
:input_name="'complete_day_range'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Complete Day Range*'"
|
||||||
|
></number-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<switch-input
|
||||||
|
:input_name="'must_complete'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Must Complete'"
|
||||||
|
></switch-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<switch-input
|
||||||
|
:input_name="'must_accept'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Must Accept'"
|
||||||
|
></switch-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<template v-slot:modal-footer>
|
||||||
|
<form @submit.prevent="onSubmit">
|
||||||
|
<v-btn
|
||||||
|
:loading="loading"
|
||||||
|
:disabled="loading"
|
||||||
|
type="submit"
|
||||||
|
color="primary"
|
||||||
|
class="white--text"
|
||||||
|
@click="loader = 'loading'"
|
||||||
|
>
|
||||||
|
Submit
|
||||||
|
</v-btn>
|
||||||
|
</form>
|
||||||
|
</template>
|
||||||
|
</b-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script type="text/javascript">
|
||||||
|
import TextInput from '../../components/inputs/TextInput';
|
||||||
|
import TextAreaInput from '../../components/inputs/TextAreaInput';
|
||||||
|
import NumberInput from '../../components/inputs/NumberInput';
|
||||||
|
import SwitchInput from '../../components/inputs/SwitchInput';
|
||||||
|
import ContractTemplateFormTable from '../contract-templates/FormTable';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
this_contract_template: Object,
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
TextInput,
|
||||||
|
TextAreaInput,
|
||||||
|
NumberInput,
|
||||||
|
SwitchInput,
|
||||||
|
ContractTemplateFormTable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
form: new Form({
|
||||||
|
contract_template_id: [],
|
||||||
|
name: '',
|
||||||
|
sequence: '',
|
||||||
|
reference: '',
|
||||||
|
content: '',
|
||||||
|
must_complete: 1,
|
||||||
|
must_accept: 1,
|
||||||
|
complete_day_range: '',
|
||||||
|
type: ''
|
||||||
|
}),
|
||||||
|
loader: null,
|
||||||
|
loading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getExistDataList() {
|
||||||
|
let vm = this;
|
||||||
|
},
|
||||||
|
resetData() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.contract_template_id = [];
|
||||||
|
vm.form.name = '';
|
||||||
|
vm.form.sequence = '';
|
||||||
|
vm.form.reference = '';
|
||||||
|
vm.form.content = '';
|
||||||
|
vm.form.must_complete = 1;
|
||||||
|
vm.form.must_accept = 1;
|
||||||
|
vm.form.complete_day_range = 1;
|
||||||
|
vm.form.type = '';
|
||||||
|
vm.loader = null;
|
||||||
|
vm.loading = false;
|
||||||
|
},
|
||||||
|
onSubmit() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.contract_template_id = [vm.this_contract_template.hash_id];
|
||||||
|
const l = vm.loader
|
||||||
|
vm[l] = !vm[l];
|
||||||
|
let method = 'post';
|
||||||
|
let url = 'contract-template-obligation/store';
|
||||||
|
General.onComplete(url, vm.form, method, true)
|
||||||
|
.then(data => {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
vm.$bvModal.hide('contract-template-obligation-create-modal');
|
||||||
|
vm.$emit('refresh');
|
||||||
|
General.toastedMessage('create', 'Contract Template Obligation', data.data.hash_id);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<b-modal :id="'contract-template-obligation-form-modal'" size="lg" scrollable @shown="getExistDataList" @hidden="resetData">
|
||||||
|
<template v-slot:modal-title>
|
||||||
|
<h4 class="modal-title">Contract Template Obligation {{ mode == 'create' ? 'Create' : 'Edit' }}</h4>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<contract-template-form-table
|
||||||
|
:selected_contract_template="[this_contract_template]"
|
||||||
|
:no_convert="true"
|
||||||
|
>
|
||||||
|
</contract-template-form-table>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-input
|
||||||
|
:input_name="'name'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Name*'"
|
||||||
|
></text-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<number-input
|
||||||
|
:input_name="'sequence'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Sequence*'"
|
||||||
|
></number-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-input
|
||||||
|
:input_name="'reference'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Reference*'"
|
||||||
|
></text-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-area-input
|
||||||
|
:input_name="'content'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Content*'"
|
||||||
|
></text-area-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<number-input
|
||||||
|
:input_name="'complete_day_range'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Complete Day Range*'"
|
||||||
|
></number-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<switch-input
|
||||||
|
:input_name="'must_complete'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Must Complete'"
|
||||||
|
></switch-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<switch-input
|
||||||
|
:input_name="'must_accept'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Must Accept'"
|
||||||
|
></switch-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<template v-slot:modal-footer>
|
||||||
|
<form @submit.prevent="onSubmit">
|
||||||
|
<v-btn
|
||||||
|
:loading="loading"
|
||||||
|
:disabled="loading"
|
||||||
|
type="submit"
|
||||||
|
color="primary"
|
||||||
|
class="white--text"
|
||||||
|
@click="loader = 'loading'"
|
||||||
|
>
|
||||||
|
Submit
|
||||||
|
</v-btn>
|
||||||
|
</form>
|
||||||
|
</template>
|
||||||
|
</b-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script type="text/javascript">
|
||||||
|
import TextInput from '../../components/inputs/TextInput';
|
||||||
|
import TextAreaInput from '../../components/inputs/TextAreaInput';
|
||||||
|
import NumberInput from '../../components/inputs/NumberInput';
|
||||||
|
import SwitchInput from '../../components/inputs/SwitchInput';
|
||||||
|
import ContractTemplateFormTable from '../contract-templates/FormTable';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
this_contract_template: Object,
|
||||||
|
selected_contract_template_obligation: Object,
|
||||||
|
mode: String
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
TextInput,
|
||||||
|
TextAreaInput,
|
||||||
|
NumberInput,
|
||||||
|
SwitchInput,
|
||||||
|
ContractTemplateFormTable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
form: new Form({
|
||||||
|
contract_template_id: [],
|
||||||
|
name: '',
|
||||||
|
sequence: '',
|
||||||
|
reference: '',
|
||||||
|
content: '',
|
||||||
|
must_complete: 1,
|
||||||
|
must_accept: 1,
|
||||||
|
complete_day_range: '',
|
||||||
|
type: ''
|
||||||
|
}),
|
||||||
|
loader: null,
|
||||||
|
loading: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getExistDataList() {
|
||||||
|
let vm = this;
|
||||||
|
if (vm.mode == 'edit') {
|
||||||
|
vm.loadThisContractTemplateOligation();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resetData() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.contract_template_id = [];
|
||||||
|
vm.form.name = '';
|
||||||
|
vm.form.sequence = '';
|
||||||
|
vm.form.reference = '';
|
||||||
|
vm.form.content = '';
|
||||||
|
vm.form.must_complete = 1;
|
||||||
|
vm.form.must_accept = 1;
|
||||||
|
vm.form.complete_day_range = 1;
|
||||||
|
vm.form.type = '';
|
||||||
|
vm.loader = null;
|
||||||
|
vm.loading = false;
|
||||||
|
},
|
||||||
|
loadThisContractTemplateOligation() {
|
||||||
|
let vm = this;
|
||||||
|
let url = 'contract-template-obligation/show/' + vm.selected_contract_template_obligation.hash_id;
|
||||||
|
let form = new Form({});
|
||||||
|
General.getCall(url, form).then(response => {
|
||||||
|
vm.form.name = response.data.name;
|
||||||
|
vm.form.sequence = response.data.sequence;
|
||||||
|
vm.form.reference = response.data.reference;
|
||||||
|
vm.form.content = response.data.content;
|
||||||
|
vm.form.must_complete = response.data.must_complete;
|
||||||
|
vm.form.must_accept = response.data.must_accept;
|
||||||
|
vm.form.complete_day_range = response.data.complete_day_range;
|
||||||
|
vm.form.type = response.data.type;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onSubmit() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.contract_template_id = [vm.this_contract_template.hash_id];
|
||||||
|
const l = vm.loader
|
||||||
|
vm[l] = !vm[l];
|
||||||
|
let method = vm.mode == 'create' ? 'post' : 'put';
|
||||||
|
let url = vm.mode == 'create' ? 'contract-template-obligation/store' : 'contract-template-obligation/update/' + vm.selected_contract_template_obligation.hash_id;
|
||||||
|
General.onComplete(url, vm.form, method, true)
|
||||||
|
.then(data => {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
vm.$bvModal.hide('contract-template-obligation-form-modal');
|
||||||
|
vm.$emit('refresh');
|
||||||
|
General.toastedMessage('create', 'Contract Template Obligation', data.data.hash_id);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,215 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<b-modal :id="'contract-template-obligation-table-modal'" size="lg" scrollable @shown="getExistDataList" @hidden="resetData">
|
||||||
|
<template v-slot:modal-title>
|
||||||
|
<h4 class="modal-title">Contract Template Obligation List</h4>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<b-row class="mb-2" no-gutters>
|
||||||
|
<b-col md="6"></b-col>
|
||||||
|
<b-col md="6" v-if="permission_list.includes('add contract_template_obligation')" class="text-right">
|
||||||
|
<button
|
||||||
|
class="btn btn-primary"
|
||||||
|
tag="button"
|
||||||
|
@click="contractTemplateObligationCreateModalToggle()"
|
||||||
|
>
|
||||||
|
<i class="fa fa-plus"></i>
|
||||||
|
</button>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<paginate-nav
|
||||||
|
v-if="contract_template_obligation_list.page"
|
||||||
|
:colspan="colspan"
|
||||||
|
:pervious_page="contract_template_obligation_list.page.pervious_page"
|
||||||
|
:next_page="contract_template_obligation_list.page.next_page"
|
||||||
|
@clicked="dataHandler"
|
||||||
|
></paginate-nav>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th style="width: 25%">Details</th>
|
||||||
|
<th>Contract Template</th>
|
||||||
|
<th>Sequence</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Created</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr v-if="contract_template_obligation_list.data" v-for="(contract, $index) in contract_template_obligation_list.data" :key="$index">
|
||||||
|
<td>{{ $index + 1 }}</td>
|
||||||
|
<td>
|
||||||
|
<div><b>Name</b>: {{ contract.name }}</div>
|
||||||
|
<div><b>Complete Day Range</b>: {{ contract.complete_day_range }}</div>
|
||||||
|
<div><b>Must Complete</b>: {{ contract.must_complete }}</div>
|
||||||
|
<div><b>Must Accept</b>: {{ contract.must_accept }}</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ contract.contract_template_list[0].name }}
|
||||||
|
</td>
|
||||||
|
<td>{{ contract.sequence }}</td>
|
||||||
|
<td>
|
||||||
|
<span :class="'badge badge-' + contract.status[0].color">{{ contract.status[0].name }}</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ contract.created_at }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<button
|
||||||
|
v-if="permission_list.includes('edit contract_template_obligation')"
|
||||||
|
class="btn btn-xs btn-light"
|
||||||
|
tag="button"
|
||||||
|
@click="contractTemplateObligationEditModalToggle(contract)"
|
||||||
|
>
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="!contract_template_obligation_list.data || !contract_template_obligation_list.data[0]">
|
||||||
|
<td class="text-center" :colspan="colspan">
|
||||||
|
<vue-element-loading v-if="loading" :active="true" spinner="line-scale" color="var(--primary)"></vue-element-loading>
|
||||||
|
<span v-if="!loading">Empty</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot v-if="contract_template_obligation_list.page">
|
||||||
|
<paginate-nav
|
||||||
|
:colspan="colspan"
|
||||||
|
:pervious_page="contract_template_obligation_list.page.pervious_page"
|
||||||
|
:next_page="contract_template_obligation_list.page.next_page"
|
||||||
|
@clicked="dataHandler"
|
||||||
|
>
|
||||||
|
</paginate-nav>
|
||||||
|
<tr>
|
||||||
|
<td class="text-right" :colspan="colspan">
|
||||||
|
<small>Total: {{ contract_template_obligation_list.total }}</small>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
<template v-slot:modal-footer>
|
||||||
|
<form>
|
||||||
|
<v-btn
|
||||||
|
depressed
|
||||||
|
small
|
||||||
|
type="button"
|
||||||
|
color="warning"
|
||||||
|
class="m-0"
|
||||||
|
@click="$bvModal.hide('contract-template-obligation-table-modal')"
|
||||||
|
>
|
||||||
|
Close
|
||||||
|
</v-btn>
|
||||||
|
</form>
|
||||||
|
</template>
|
||||||
|
</b-modal>
|
||||||
|
<contract-template-obligation-form-modal
|
||||||
|
:this_contract_template="this_contract_template"
|
||||||
|
:selected_contract_template_obligation="selected_contract_template_obligation"
|
||||||
|
:mode="mode"
|
||||||
|
@refresh="getContractTemplateObligationList()"
|
||||||
|
></contract-template-obligation-form-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script type="text/javascript">
|
||||||
|
import PaginateNav from '../../components/paginations/NextPerviousPagination';
|
||||||
|
import ContractTemplateObligationFormModal from './FormModal';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
this_contract_template: Object,
|
||||||
|
permission_list: Array
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
PaginateNav,
|
||||||
|
ContractTemplateObligationFormModal
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
form: new Form({
|
||||||
|
contract_template_id: [],
|
||||||
|
page: ''
|
||||||
|
}),
|
||||||
|
colspan: 7,
|
||||||
|
loading: true,
|
||||||
|
contract_template_obligation_list: [],
|
||||||
|
selected_contract_template_obligation : {},
|
||||||
|
mode: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
contractTemplateObligationCreateModalToggle() {
|
||||||
|
let vm = this;
|
||||||
|
vm.mode = 'create';
|
||||||
|
vm.$bvModal.show('contract-template-obligation-form-modal');
|
||||||
|
},
|
||||||
|
contractTemplateObligationEditModalToggle(selected_contract_template_obligation) {
|
||||||
|
let vm = this;
|
||||||
|
vm.mode = 'edit';
|
||||||
|
vm.selected_contract_template_obligation = selected_contract_template_obligation;
|
||||||
|
vm.$bvModal.show('contract-template-obligation-form-modal');
|
||||||
|
},
|
||||||
|
getExistDataList() {
|
||||||
|
let vm = this;
|
||||||
|
vm.getContractTemplateObligationList();
|
||||||
|
},
|
||||||
|
resetData() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.contract_template_id = [];
|
||||||
|
vm.form.page = '';
|
||||||
|
vm.contract_template_obligation_list = [];
|
||||||
|
vm.loader = null;
|
||||||
|
vm.loading = false;
|
||||||
|
vm.$emit('refresh');
|
||||||
|
},
|
||||||
|
getContractTemplateObligationList() {
|
||||||
|
let vm = this;
|
||||||
|
let url = 'contract-template-obligation/list';
|
||||||
|
vm.tableCall(url);
|
||||||
|
},
|
||||||
|
tableCall(url) {
|
||||||
|
let vm = this;
|
||||||
|
vm.loading = true;
|
||||||
|
vm.form.contract_template_id = [vm.this_contract_template.hash_id];
|
||||||
|
|
||||||
|
General.tableCall(url, vm.form).then(response => {
|
||||||
|
vm.loading = false;
|
||||||
|
vm.contract_template_obligation_list = response;
|
||||||
|
vm.convertStatus();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
convertStatus() {
|
||||||
|
let vm = this;
|
||||||
|
vm.contract_template_obligation_list.data.forEach(function(element, index) {
|
||||||
|
element.status = General.initFormArray(Constants.contract_template_obligation_status, [element.status]);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
dataHandler(url) {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.page = General.getStringParam('page', url);
|
||||||
|
vm.tableCall('contract-template/list');
|
||||||
|
},
|
||||||
|
onSubmit() {
|
||||||
|
let vm = this;
|
||||||
|
const l = vm.loader
|
||||||
|
vm[l] = !vm[l];
|
||||||
|
let method = 'put';
|
||||||
|
let url = 'seller-shop-product/featured';
|
||||||
|
General.onComplete(url, vm.form, method, true)
|
||||||
|
.then(data => {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
vm.$bvModal.hide('create-seller-shop-product-featured-form-modal');
|
||||||
|
vm.$emit('refresh');
|
||||||
|
General.toastedMessage('edit', 'Seller Shop Product Featured', data.data.name);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
vm[l] = false
|
||||||
|
vm.loader = null;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -8,15 +8,15 @@
|
|||||||
<breadcrumb
|
<breadcrumb
|
||||||
:menu_item_list="menu_item_list"
|
:menu_item_list="menu_item_list"
|
||||||
></breadcrumb>
|
></breadcrumb>
|
||||||
<admin-form
|
<contract-template-form
|
||||||
:mode="'edit'"
|
:mode="'edit'"
|
||||||
></admin-form>
|
></contract-template-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import PageTitle from "../../components/titles/PageTitle";
|
import PageTitle from "../../components/titles/PageTitle";
|
||||||
import Breadcrumb from "../../layouts/parts/Breadcrumb";
|
import Breadcrumb from "../../layouts/parts/Breadcrumb";
|
||||||
import AdminForm from "./Form";
|
import ContractTemplateForm from "./Form";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
metaInfo() {
|
metaInfo() {
|
||||||
@@ -29,12 +29,12 @@
|
|||||||
components: {
|
components: {
|
||||||
PageTitle,
|
PageTitle,
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
AdminForm
|
ContractTemplateForm
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
let vm = this;
|
let vm = this;
|
||||||
return {
|
return {
|
||||||
heading: 'Edit Admin',
|
heading: 'Edit Contract Template',
|
||||||
icon: 'fa fa-edit',
|
icon: 'fa fa-edit',
|
||||||
menu_item_list: [
|
menu_item_list: [
|
||||||
{
|
{
|
||||||
@@ -43,14 +43,14 @@
|
|||||||
path: '/'
|
path: '/'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Admin List',
|
title: 'Contract Template List',
|
||||||
active: false,
|
active: false,
|
||||||
path: '/admin/list'
|
path: '/contract-template/list'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Edit Admin',
|
title: 'Edit Contract Template',
|
||||||
active: true,
|
active: true,
|
||||||
path: '/admin/edit/' + vm.$route.params.hash_id
|
path: '/contract-template/edit/' + vm.$route.params.hash_id
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
<template>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div>Contract Template</div>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th style="width: 25%">Details</th>
|
||||||
|
<th>Obligation Template</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Created</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr v-if="selected_contract_template" v-for="(contract, $index) in selected_contract_template" :key="$index">
|
||||||
|
<td>{{ $index + 1 }}</td>
|
||||||
|
<td>
|
||||||
|
<div><b>Name</b>: {{ contract.name }}</div>
|
||||||
|
<div><b>Complete Day Range</b>: {{ contract.complete_day_range }}</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div v-if="contract.contract_template_obligation_list" v-for="(obligation, $index) in contract.contract_template_obligation_list" :key="$index">
|
||||||
|
<div>-{{ obligation.name }} <small>({{ obligation.sequence }})</small></div>
|
||||||
|
</div>
|
||||||
|
<div v-if="!contract.contract_template_obligation_list[0]">
|
||||||
|
-
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span :class="'badge badge-' + contract.status[0].color">{{ contract.status[0].name }}</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ contract.created_at }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
selected_contract_template: Array,
|
||||||
|
no_convert: Boolean
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
convertStatus() {
|
||||||
|
let vm = this;
|
||||||
|
vm.selected_contract_template.forEach(function(element, index) {
|
||||||
|
element.status = General.initFormArray(Constants.contract_template_obligation_status, [element.status]);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
let vm = this;
|
||||||
|
if (!vm.no_convert) {
|
||||||
|
vm.convertStatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -34,12 +34,12 @@
|
|||||||
@clicked="dataHandler"
|
@clicked="dataHandler"
|
||||||
></paginate-nav>
|
></paginate-nav>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th style="width: 25%">Details</th>
|
<th style="width: 25%">Details</th>
|
||||||
<th>Obligation</th>
|
<th>Obligation Template</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th>Created</th>
|
<th>Created</th>
|
||||||
<th>Actions</th>
|
<th>Actions</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div v-if="contract.contract_template_obligation_list" v-for="(obligation, $index) in contract.contract_template_obligation_list" :key="$index">
|
<div v-if="contract.contract_template_obligation_list" v-for="(obligation, $index) in contract.contract_template_obligation_list" :key="$index">
|
||||||
<div>-{{ obligation.name }}</div>
|
<div>-{{ obligation.name }} <small>({{ obligation.sequence }})</small></div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!contract.contract_template_obligation_list[0]">
|
<div v-if="!contract.contract_template_obligation_list[0]">
|
||||||
-
|
-
|
||||||
@@ -64,6 +64,13 @@
|
|||||||
{{ contract.created_at }}
|
{{ contract.created_at }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
<button
|
||||||
|
class="btn btn-xs btn-light"
|
||||||
|
tag="button"
|
||||||
|
@click="contractTemplateObligationTableModalToggle(contract)"
|
||||||
|
>
|
||||||
|
<i class="fa fa-palette"></i>
|
||||||
|
</button>
|
||||||
<router-link
|
<router-link
|
||||||
v-if="permission_list.includes('edit contract')"
|
v-if="permission_list.includes('edit contract')"
|
||||||
:to="'edit/' + contract.hash_id"
|
:to="'edit/' + contract.hash_id"
|
||||||
@@ -97,17 +104,24 @@
|
|||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</b-card>
|
</b-card>
|
||||||
|
<contract-template-obligation-table-modal
|
||||||
|
:this_contract_template="this_contract_template"
|
||||||
|
:permission_list="permission_list"
|
||||||
|
@refresh="getContractTemplateList()"
|
||||||
|
></contract-template-obligation-table-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ContractTemplateFilter from "./Filter";
|
import ContractTemplateFilter from "./Filter";
|
||||||
import PaginateNav from '../../components/paginations/NextPerviousPagination';
|
import PaginateNav from '../../components/paginations/NextPerviousPagination';
|
||||||
|
import ContractTemplateObligationTableModal from '../contract-template-obligations/TableModal';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ContractTemplateFilter,
|
ContractTemplateFilter,
|
||||||
PaginateNav
|
PaginateNav,
|
||||||
|
ContractTemplateObligationTableModal
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -117,14 +131,20 @@
|
|||||||
status: General.returnAray(General.getURLParam('status[]')),
|
status: General.returnAray(General.getURLParam('status[]')),
|
||||||
page: General.getURLParam('page')
|
page: General.getURLParam('page')
|
||||||
}),
|
}),
|
||||||
colspan: 7,
|
colspan: 6,
|
||||||
filter_status: false,
|
filter_status: false,
|
||||||
loading: true,
|
loading: true,
|
||||||
contract_template_list: [],
|
contract_template_list: [],
|
||||||
|
this_contract_template: {},
|
||||||
permission_list: []
|
permission_list: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
contractTemplateObligationTableModalToggle(contract_template) {
|
||||||
|
let vm = this;
|
||||||
|
vm.this_contract_template = contract_template;
|
||||||
|
vm.$bvModal.show('contract-template-obligation-table-modal');
|
||||||
|
},
|
||||||
getPermissionList() {
|
getPermissionList() {
|
||||||
let vm = this;
|
let vm = this;
|
||||||
let url = 'user/self';
|
let url = 'user/self';
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-title
|
||||||
|
:heading="heading"
|
||||||
|
:icon="icon"
|
||||||
|
:add="true"
|
||||||
|
></page-title>
|
||||||
|
<breadcrumb
|
||||||
|
:menu_item_list="menu_item_list"
|
||||||
|
></breadcrumb>
|
||||||
|
<entity-form
|
||||||
|
:mode="'create'"
|
||||||
|
></entity-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import PageTitle from "../../components/titles/PageTitle";
|
||||||
|
import Breadcrumb from "../../layouts/parts/Breadcrumb";
|
||||||
|
import EntityForm from "./Form";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
metaInfo() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
title: Constants.site.title,
|
||||||
|
titleTemplate: '%s | ' + vm.$router.currentRoute.name
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
PageTitle,
|
||||||
|
Breadcrumb,
|
||||||
|
EntityForm
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
heading: 'Create Entity',
|
||||||
|
icon: 'fa fa-plus',
|
||||||
|
menu_item_list: [
|
||||||
|
{
|
||||||
|
title: 'Dashboard',
|
||||||
|
active: false,
|
||||||
|
path: '/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Entity List',
|
||||||
|
active: false,
|
||||||
|
path: '/entity/list'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Create Entity',
|
||||||
|
active: true,
|
||||||
|
path: '/entity/create'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-title
|
||||||
|
:heading="heading"
|
||||||
|
:icon="icon"
|
||||||
|
:add="true"
|
||||||
|
></page-title>
|
||||||
|
<breadcrumb
|
||||||
|
:menu_item_list="menu_item_list"
|
||||||
|
></breadcrumb>
|
||||||
|
<entity-form
|
||||||
|
:mode="'edit'"
|
||||||
|
></entity-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import PageTitle from "../../components/titles/PageTitle";
|
||||||
|
import Breadcrumb from "../../layouts/parts/Breadcrumb";
|
||||||
|
import EntityForm from "./Form";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
metaInfo() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
title: Constants.site.title,
|
||||||
|
titleTemplate: '%s | ' + vm.$router.currentRoute.name
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
PageTitle,
|
||||||
|
Breadcrumb,
|
||||||
|
EntityForm
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
heading: 'Edit Entity',
|
||||||
|
icon: 'fa fa-edit',
|
||||||
|
menu_item_list: [
|
||||||
|
{
|
||||||
|
title: 'Dashboard',
|
||||||
|
active: false,
|
||||||
|
path: '/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Entity List',
|
||||||
|
active: false,
|
||||||
|
path: '/entity/list'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Edit Entity',
|
||||||
|
active: true,
|
||||||
|
path: '/entity/edit/' + vm.$route.params.hash_id
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
<template>
|
||||||
|
<b-col md="12">
|
||||||
|
<form @submit.prevent="$emit('clicked')" @keydown="form.errors.clear($event.target.name)">
|
||||||
|
<text-input
|
||||||
|
:input_name="'name'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Name'"
|
||||||
|
>
|
||||||
|
</text-input>
|
||||||
|
<select-option-auto-complete-input
|
||||||
|
:input_name="'status'"
|
||||||
|
:form="form"
|
||||||
|
:exist_data="exist_entity_status"
|
||||||
|
:placeholder="''"
|
||||||
|
:label="'Status'"
|
||||||
|
:data_set="entity_status"
|
||||||
|
:array="true"
|
||||||
|
></select-option-auto-complete-input>
|
||||||
|
<v-btn
|
||||||
|
depressed
|
||||||
|
small
|
||||||
|
type="submit"
|
||||||
|
color="primary"
|
||||||
|
class="m-0"
|
||||||
|
>
|
||||||
|
Submit
|
||||||
|
</v-btn>
|
||||||
|
<v-btn
|
||||||
|
depressed
|
||||||
|
small
|
||||||
|
type="button"
|
||||||
|
color="warning"
|
||||||
|
class="m-0"
|
||||||
|
@click="$emit('reset')"
|
||||||
|
>
|
||||||
|
Reset
|
||||||
|
</v-btn>
|
||||||
|
</form>
|
||||||
|
</b-col>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TextInput from '../../components/inputs/TextInput';
|
||||||
|
import SelectOptionAutoCompleteInput from '../../components/inputs/SelectOptionAutoCompleteInput';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
form: Object
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
TextInput,
|
||||||
|
SelectOptionAutoCompleteInput
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
exist_entity_status: [],
|
||||||
|
entity_status: General.autoCompleteKeyConvert(Constants.entity_status)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initForm() {
|
||||||
|
let vm = this;
|
||||||
|
if (vm.form.status[0]) {
|
||||||
|
let status_list = [];
|
||||||
|
vm.exist_entity_status = General.initFormArray(vm.entity_status, vm.form.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
let vm = this;
|
||||||
|
vm.initForm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
<template>
|
||||||
|
<b-card class="main-card mb-3">
|
||||||
|
<div v-if="!this_entity.data && mode == 'edit'" class="text-center">
|
||||||
|
<vue-element-loading :active="true" spinner="line-scale" color="var(--primary)"></vue-element-loading>
|
||||||
|
</div>
|
||||||
|
<div v-if="this_entity.data || mode == 'create'">
|
||||||
|
<form-wizard
|
||||||
|
@on-complete="onComplete"
|
||||||
|
title=""
|
||||||
|
subtitle=""
|
||||||
|
finish-button-text="Submit"
|
||||||
|
@keydown="form.errors.clear($event.target.name)"
|
||||||
|
color="var(--primary)"
|
||||||
|
>
|
||||||
|
<tab-content
|
||||||
|
title="Details"
|
||||||
|
:before-change="validOne"
|
||||||
|
ref="valid_one"
|
||||||
|
icon="fa fa-info-circle"
|
||||||
|
>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
<text-input
|
||||||
|
:input_name="'name'"
|
||||||
|
:form="form"
|
||||||
|
:label="'Name*'"
|
||||||
|
></text-input>
|
||||||
|
<!-- ///////////////////////////////////////////////////// -->
|
||||||
|
</tab-content>
|
||||||
|
</form-wizard>
|
||||||
|
</div>
|
||||||
|
</b-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TextInput from '../../components/inputs/TextInput';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
mode: String
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
TextInput
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: new Form({
|
||||||
|
name: '',
|
||||||
|
}),
|
||||||
|
this_entity: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
validOne() {
|
||||||
|
let vm = this;
|
||||||
|
let ref_inputs = ['name'];
|
||||||
|
let url = vm.mode == 'create' ? 'entity/valid-check' : 'entity/valid-check/' + vm.this_entity.data.hash_id;
|
||||||
|
return General.validCheck(url, vm.form, ref_inputs);
|
||||||
|
},
|
||||||
|
onComplete() {
|
||||||
|
let vm = this;
|
||||||
|
let method = vm.mode == 'create' ? 'post' : 'put';
|
||||||
|
let url = vm.mode == 'create' ? 'entity/store' : 'entity/update/' + vm.this_entity.data.hash_id;
|
||||||
|
|
||||||
|
return General.onComplete(url, vm.form, method)
|
||||||
|
.then(data => {
|
||||||
|
if (vm.mode != 'profile') {
|
||||||
|
let pervious_query = data.pervious_query ? '?' + data.pervious_query : '';
|
||||||
|
vm.$router.push('/entity/list' + pervious_query);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vm.mode == 'create') {
|
||||||
|
General.toastedMessage('create', 'Entity', data.data.hash_id);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
General.toastedMessage('edit', 'Entity', data.data.hash_id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
loadThisContractTemplate() {
|
||||||
|
let vm = this;
|
||||||
|
let url = vm.mode == 'edit' ? 'entity/show/' + vm.$route.params.hash_id : 'entity/self';
|
||||||
|
let form = new Form({});
|
||||||
|
General.getCall(url, form).then(data => {
|
||||||
|
vm.this_entity = data;
|
||||||
|
vm.form.name = vm.this_entity.data.name;
|
||||||
|
vm.form.status = vm.this_entity.data.status;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
let vm = this;
|
||||||
|
if (vm.mode == 'edit' || vm.mode == 'profile') {
|
||||||
|
vm.loadThisContractTemplate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<page-title
|
||||||
|
:heading="heading"
|
||||||
|
:icon="icon"
|
||||||
|
:add="true"
|
||||||
|
></page-title>
|
||||||
|
<breadcrumb
|
||||||
|
:menu_item_list=menu_item_list
|
||||||
|
></breadcrumb>
|
||||||
|
<entity-table></entity-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import PageTitle from "../../components/titles/PageTitle";
|
||||||
|
import Breadcrumb from "../../layouts/parts/Breadcrumb";
|
||||||
|
import EntityTable from "./Table";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
metaInfo() {
|
||||||
|
let vm = this;
|
||||||
|
return {
|
||||||
|
title: Constants.site.title,
|
||||||
|
titleTemplate: '%s | ' + vm.$router.currentRoute.name
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
PageTitle,
|
||||||
|
Breadcrumb,
|
||||||
|
EntityTable
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
heading: 'Entity List',
|
||||||
|
icon: 'fa fa-list',
|
||||||
|
menu_item_list: [
|
||||||
|
{
|
||||||
|
title: 'Dashboard',
|
||||||
|
active: false,
|
||||||
|
path: '/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Entity List',
|
||||||
|
active: true,
|
||||||
|
path: 'list'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<b-card class="main-card mb-4">
|
||||||
|
<b-row class="mb-2" no-gutters>
|
||||||
|
<b-col md="6">
|
||||||
|
<button type="button" class="btn btn-primary" @click="filterToggle">
|
||||||
|
<i class="fa fa-filter"></i>
|
||||||
|
</button>
|
||||||
|
<div v-if="filter_status" class="filter dropdown-menu show">
|
||||||
|
<contract-template-filter
|
||||||
|
:form="form"
|
||||||
|
@clicked="filterSubmit"
|
||||||
|
@reset="FilterReset"
|
||||||
|
></contract-template-filter>
|
||||||
|
</div>
|
||||||
|
</b-col>
|
||||||
|
<b-col md="6" v-if="permission_list.includes('add contract')" class="text-right">
|
||||||
|
<router-link
|
||||||
|
class="btn btn-primary"
|
||||||
|
to="create"
|
||||||
|
tag="button"
|
||||||
|
>
|
||||||
|
<i class="fa fa-plus"></i>
|
||||||
|
</router-link>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<paginate-nav
|
||||||
|
v-if="entity_list.page"
|
||||||
|
:colspan="colspan"
|
||||||
|
:pervious_page="entity_list.page.pervious_page"
|
||||||
|
:next_page="entity_list.page.next_page"
|
||||||
|
@clicked="dataHandler"
|
||||||
|
></paginate-nav>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th style="width: 25%">Details</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Created</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr v-if="entity_list.data" v-for="(contract, $index) in entity_list.data" :key="$index">
|
||||||
|
<td>{{ $index + 1 }}</td>
|
||||||
|
<td>
|
||||||
|
<div><b>Name</b>: {{ contract.name }}</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span :class="'badge badge-' + contract.status[0].color">{{ contract.status[0].name }}</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ contract.created_at }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<router-link
|
||||||
|
v-if="permission_list.includes('edit contract')"
|
||||||
|
:to="'edit/' + contract.hash_id"
|
||||||
|
class="btn btn-xs btn-light"
|
||||||
|
title="Edit"
|
||||||
|
>
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
</router-link>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="!entity_list.data || !entity_list.data[0]">
|
||||||
|
<td class="text-center" :colspan="colspan">
|
||||||
|
<vue-element-loading v-if="loading" :active="true" spinner="line-scale" color="var(--primary)"></vue-element-loading>
|
||||||
|
<span v-if="!loading">Empty</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tfoot v-if="entity_list.page">
|
||||||
|
<paginate-nav
|
||||||
|
:colspan="colspan"
|
||||||
|
:pervious_page="entity_list.page.pervious_page"
|
||||||
|
:next_page="entity_list.page.next_page"
|
||||||
|
@clicked="dataHandler"
|
||||||
|
>
|
||||||
|
</paginate-nav>
|
||||||
|
<tr>
|
||||||
|
<td class="text-right" :colspan="colspan">
|
||||||
|
<small>Total: {{ entity_list.total }}</small>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</b-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import ContractTemplateFilter from "./Filter";
|
||||||
|
import PaginateNav from '../../components/paginations/NextPerviousPagination';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
ContractTemplateFilter,
|
||||||
|
PaginateNav
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: new Form({
|
||||||
|
name: General.getURLParam('name'),
|
||||||
|
status: General.returnAray(General.getURLParam('status[]')),
|
||||||
|
page: General.getURLParam('page')
|
||||||
|
}),
|
||||||
|
colspan: 5,
|
||||||
|
filter_status: false,
|
||||||
|
loading: true,
|
||||||
|
entity_list: [],
|
||||||
|
permission_list: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getPermissionList() {
|
||||||
|
let vm = this;
|
||||||
|
let url = 'user/self';
|
||||||
|
let form = new Form({});
|
||||||
|
General.getCall(url, form).then(response => {
|
||||||
|
vm.permission_list = response.data.permission_list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getContractTemplateList() {
|
||||||
|
let vm = this;
|
||||||
|
let url = 'entity/list';
|
||||||
|
vm.tableCall(url);
|
||||||
|
},
|
||||||
|
tableCall(url) {
|
||||||
|
let vm = this;
|
||||||
|
vm.loading = true;
|
||||||
|
General.tableCall(url, vm.form).then(response => {
|
||||||
|
vm.loading = false;
|
||||||
|
vm.entity_list = response;
|
||||||
|
vm.form.page = General.getURLParam('page');
|
||||||
|
vm.convertStatus();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
convertStatus() {
|
||||||
|
let vm = this;
|
||||||
|
vm.entity_list.data.forEach(function(element, index) {
|
||||||
|
element.status = General.initFormArray(Constants.entity_status, [element.status]);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
dataHandler(url) {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.page = General.getStringParam('page', url);
|
||||||
|
vm.tableCall('entity/list');
|
||||||
|
},
|
||||||
|
filterToggle() {
|
||||||
|
let vm = this;
|
||||||
|
vm.filter_status = !vm.filter_status;
|
||||||
|
},
|
||||||
|
filterCloseClick(e) {
|
||||||
|
let vm = this;
|
||||||
|
if (!vm.$el.contains(e.target) && !e.target.classList.contains('filter')) {
|
||||||
|
vm.filter_status = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
filterSubmit() {
|
||||||
|
let vm = this;
|
||||||
|
let url = 'entity/list';
|
||||||
|
vm.form.page = '';
|
||||||
|
vm.tableCall(url);
|
||||||
|
vm.filterToggle();
|
||||||
|
},
|
||||||
|
FilterReset() {
|
||||||
|
let vm = this;
|
||||||
|
vm.form.reset();
|
||||||
|
vm.filterSubmit();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let vm = this;
|
||||||
|
document.addEventListener('click', vm.filterCloseClick);
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
let vm = this;
|
||||||
|
vm.getPermissionList();
|
||||||
|
vm.getContractTemplateList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Vendored
+30
@@ -6,6 +6,10 @@ import Logins from './pages/logins/Index';
|
|||||||
import Dashboards from './pages/dashboards/Index';
|
import Dashboards from './pages/dashboards/Index';
|
||||||
import UserProfile from './pages/users/Profile';
|
import UserProfile from './pages/users/Profile';
|
||||||
|
|
||||||
|
import EntityList from './pages/entities/List';
|
||||||
|
import EntityCreate from './pages/entities/Create';
|
||||||
|
import EntityEdit from './pages/entities/Edit';
|
||||||
|
|
||||||
import ContractTemplateList from './pages/contract-templates/List';
|
import ContractTemplateList from './pages/contract-templates/List';
|
||||||
import ContractTemplateCreate from './pages/contract-templates/Create';
|
import ContractTemplateCreate from './pages/contract-templates/Create';
|
||||||
import ContractTemplateEdit from './pages/contract-templates/Edit';
|
import ContractTemplateEdit from './pages/contract-templates/Edit';
|
||||||
@@ -45,6 +49,32 @@ let router = new Router({
|
|||||||
component: Dashboards
|
component: Dashboards
|
||||||
},
|
},
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
// Entity
|
||||||
|
{
|
||||||
|
path: '/entity/list',
|
||||||
|
name: 'Entity List',
|
||||||
|
meta: {
|
||||||
|
auth: true
|
||||||
|
},
|
||||||
|
component: EntityList
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/entity/create',
|
||||||
|
name: 'Entity Create',
|
||||||
|
meta: {
|
||||||
|
auth: true
|
||||||
|
},
|
||||||
|
component: EntityCreate
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/entity/edit/:hash_id',
|
||||||
|
name: 'Entity Edit',
|
||||||
|
meta: {
|
||||||
|
auth: true
|
||||||
|
},
|
||||||
|
component: EntityEdit
|
||||||
|
},
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
// Contract Template
|
// Contract Template
|
||||||
{
|
{
|
||||||
path: '/contract-template/list',
|
path: '/contract-template/list',
|
||||||
|
|||||||
+29
@@ -28,6 +28,18 @@ const Constant = {
|
|||||||
'color': 'danger'
|
'color': 'danger'
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
'entity_status': [
|
||||||
|
{
|
||||||
|
'id': 1,
|
||||||
|
'name': 'Active',
|
||||||
|
'color': 'primary'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 2,
|
||||||
|
'name': 'De-active',
|
||||||
|
'color': 'danger'
|
||||||
|
}
|
||||||
|
],
|
||||||
'contract_template_status': [
|
'contract_template_status': [
|
||||||
{
|
{
|
||||||
'id': 1,
|
'id': 1,
|
||||||
@@ -45,6 +57,23 @@ const Constant = {
|
|||||||
'color': 'warning'
|
'color': 'warning'
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
'contract_template_obligation_status': [
|
||||||
|
{
|
||||||
|
'id': 1,
|
||||||
|
'name': 'Active',
|
||||||
|
'color': 'primary'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 2,
|
||||||
|
'name': 'De-active',
|
||||||
|
'color': 'danger'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 9,
|
||||||
|
'name': 'Pending',
|
||||||
|
'color': 'warning'
|
||||||
|
},
|
||||||
|
],
|
||||||
'contract_status': [
|
'contract_status': [
|
||||||
{
|
{
|
||||||
'id': 1,
|
'id': 1,
|
||||||
|
|||||||
+16
-1
@@ -16,7 +16,22 @@ module.exports.menuDefine = function(permission = []) {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
if (permission.includes('view entity')) {
|
||||||
|
let admin_access_menu = {};
|
||||||
|
admin_access_menu = {
|
||||||
|
title: 'Entity',
|
||||||
|
icon: 'fa fa-cubes',
|
||||||
|
child: [
|
||||||
|
{
|
||||||
|
href: '/entity/list',
|
||||||
|
title: 'List',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
};
|
||||||
|
menu.push(admin_access_menu);
|
||||||
|
}
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
if (permission.includes('view contract_template')) {
|
if (permission.includes('view contract_template')) {
|
||||||
let admin_access_menu = {};
|
let admin_access_menu = {};
|
||||||
|
|||||||
@@ -62,6 +62,12 @@ Route::group(['namespace' => 'User', 'prefix' => 'user-backsys/api'], function (
|
|||||||
'middleware' => ['permission:delete entity']
|
'middleware' => ['permission:delete entity']
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
Route::post('valid-check/{hash_id?}',
|
||||||
|
[
|
||||||
|
'as' => 'api.entity.valid-check',
|
||||||
|
'uses' => 'EntityController@validCheck',
|
||||||
|
]
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Entity Signature
|
// Entity Signature
|
||||||
|
|||||||
+5
-1
@@ -4,11 +4,15 @@ Route::group(['namespace' => 'User'], function () {
|
|||||||
Route::group(['namespace' => 'Web'], function () {
|
Route::group(['namespace' => 'Web'], function () {
|
||||||
Route::get('/login', ['as' => 'user.app.login', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/login', ['as' => 'user.app.login', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
Route::get('/user/profile/update', ['as' => 'user.app.profile.update', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/user/profile/update', ['as' => 'user.app.profile.update', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
|
||||||
|
Route::get('/entity/list', ['as' => 'user.app.entity.list', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
Route::get('/entity/create', ['as' => 'user.app.entity.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
Route::get('/entity/edit/{hash_id}', ['as' => 'user.app.entity.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
|
||||||
Route::get('/contract-template/list', ['as' => 'user.app.contract-template.list', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/contract-template/list', ['as' => 'user.app.contract-template.list', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
Route::get('/contract-template/create', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/contract-template/create', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
Route::get('/contract-template/edit/{hash_id}', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/contract-template/edit/{hash_id}', ['as' => 'user.app.contract-template.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
|
||||||
|
|
||||||
Route::get('/contract/list', ['as' => 'user.app.contract.list', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/contract/list', ['as' => 'user.app.contract.list', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
Route::get('/contract/create', ['as' => 'user.app.contract.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/contract/create', ['as' => 'user.app.contract.create', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
Route::get('/', ['as' => 'user.app', 'uses' => 'AppController@index'])->where('any', '.*');
|
Route::get('/', ['as' => 'user.app', 'uses' => 'AppController@index'])->where('any', '.*');
|
||||||
|
|||||||
Reference in New Issue
Block a user