This commit is contained in:
694
ayanova/src/components/quote-header.vue
Normal file
694
ayanova/src/components/quote-header.vue
Normal file
@@ -0,0 +1,694 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-row>
|
||||
<v-col
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
v-if="value.serial != 0 && canEditSerial"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="value.serial"
|
||||
:readonly="formState.readOnly"
|
||||
:label="$ay.t('WorkOrderSerialNumber')"
|
||||
ref="serial"
|
||||
data-cy="serial"
|
||||
:rules="[
|
||||
form().integerValid(this, 'serial'),
|
||||
form().required(this, 'serial')
|
||||
]"
|
||||
:error-messages="form().serverErrors(this, 'serial')"
|
||||
@input="fieldValueChanged('serial')"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||
<gz-pick-list
|
||||
:aya-type="$ay.ayt().Customer"
|
||||
:show-edit-icon="!value.userIsRestrictedType"
|
||||
v-model="value.customerId"
|
||||
:readonly="formState.readOnly || value.userIsRestrictedType"
|
||||
:label="$ay.t('Customer')"
|
||||
:can-clear="false"
|
||||
ref="customerId"
|
||||
data-cy="customerId"
|
||||
:rules="[form().required(this, 'customerId')]"
|
||||
:error-messages="form().serverErrors(this, 'customerId')"
|
||||
@input="fieldValueChanged('customerId')"
|
||||
></gz-pick-list>
|
||||
</v-col>
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'CustomerSignature') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<GzWoSignature
|
||||
v-model="value"
|
||||
:form-key="formCustomTemplateKey"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:pvm="pvm"
|
||||
variant="customer"
|
||||
data-cy="customerSignature"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderStatus') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<GzWoState
|
||||
v-model="value"
|
||||
:form-key="formCustomTemplateKey"
|
||||
:readonly="formState.readOnly"
|
||||
:pvm="pvm"
|
||||
data-cy="woState"
|
||||
:all-states="pvm.selectLists.wostatus"
|
||||
:allowed-states="pvm.selectLists.allowedwostatus"
|
||||
/>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Address') && !value.userIsSubContractorRestricted
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<GzWoAddress
|
||||
v-model="value"
|
||||
:form-key="formCustomTemplateKey"
|
||||
:readonly="formState.readOnly || value.userIsRestrictedType"
|
||||
:pvm="pvm"
|
||||
data-cy="woAddress"
|
||||
/>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'TechSignature') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<GzWoSignature
|
||||
v-model="value"
|
||||
:form-key="formCustomTemplateKey"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:pvm="pvm"
|
||||
variant="tech"
|
||||
data-cy="techSignature"
|
||||
/>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderSummary') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
>
|
||||
<v-textarea
|
||||
v-model="value.notes"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('WorkOrderSummary')"
|
||||
:error-messages="form().serverErrors(this, 'notes')"
|
||||
ref="notes"
|
||||
data-cy="notes"
|
||||
@input="fieldValueChanged('notes')"
|
||||
auto-grow
|
||||
></v-textarea>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderCloseByDate') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<gz-date-time-picker
|
||||
:label="$ay.t('WorkOrderCloseByDate')"
|
||||
v-model="value.completeByDate"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
ref="completeByDate"
|
||||
data-cy="completeByDate"
|
||||
:error-messages="form().serverErrors(this, 'completeByDate')"
|
||||
@input="fieldValueChanged('completeByDate')"
|
||||
></gz-date-time-picker>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Contract') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<gz-pick-list
|
||||
:aya-type="$ay.ayt().Contract"
|
||||
:show-edit-icon="!value.userIsRestrictedType"
|
||||
v-model="value.contractId"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('Contract')"
|
||||
ref="contractId"
|
||||
data-cy="contractId"
|
||||
:error-messages="form().serverErrors(this, 'contractId')"
|
||||
@input="fieldValueChanged('contractId')"
|
||||
></gz-pick-list>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Project') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<gz-pick-list
|
||||
:aya-type="$ay.ayt().Project"
|
||||
:show-edit-icon="!value.userIsRestrictedType"
|
||||
v-model="value.projectId"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('Project')"
|
||||
ref="projectId"
|
||||
data-cy="projectId"
|
||||
:error-messages="form().serverErrors(this, 'projectId')"
|
||||
@input="fieldValueChanged('projectId')"
|
||||
></gz-pick-list>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderInvoiceNumber') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="value.invoiceNumber"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('WorkOrderInvoiceNumber')"
|
||||
ref="invoiceNumber"
|
||||
data-cy="invoiceNumber"
|
||||
:error-messages="form().serverErrors(this, 'invoiceNumber')"
|
||||
@input="fieldValueChanged('invoiceNumber')"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderServiceDate') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<gz-date-time-picker
|
||||
:label="$ay.t('WorkOrderServiceDate')"
|
||||
v-model="value.serviceDate"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
ref="serviceDate"
|
||||
data-cy="serviceDate"
|
||||
:error-messages="form().serverErrors(this, 'serviceDate')"
|
||||
@input="fieldValueChanged('serviceDate')"
|
||||
></gz-date-time-picker>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="form().showMe(this, 'WorkOrderCustomerContactName')"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="value.customerContactName"
|
||||
:readonly="
|
||||
formState.readOnly ||
|
||||
value.userIsTechRestricted ||
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
"
|
||||
:label="$ay.t('WorkOrderCustomerContactName')"
|
||||
ref="customerContactName"
|
||||
data-cy="customerContactName"
|
||||
:error-messages="form().serverErrors(this, 'customerContactName')"
|
||||
@input="fieldValueChanged('customerContactName')"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderCustomerReferenceNumber') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="value.customerReferenceNumber"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('WorkOrderCustomerReferenceNumber')"
|
||||
ref="customerReferenceNumber"
|
||||
data-cy="customerReferenceNumber"
|
||||
:error-messages="form().serverErrors(this, 'customerReferenceNumber')"
|
||||
@input="fieldValueChanged('customerReferenceNumber')"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderInternalReferenceNumber') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="value.internalReferenceNumber"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('WorkOrderInternalReferenceNumber')"
|
||||
ref="internalReferenceNumber"
|
||||
data-cy="internalReferenceNumber"
|
||||
:error-messages="form().serverErrors(this, 'internalReferenceNumber')"
|
||||
@input="fieldValueChanged('internalReferenceNumber')"
|
||||
></v-text-field>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'WorkOrderOnsite') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
sm="6"
|
||||
lg="4"
|
||||
xl="3"
|
||||
>
|
||||
<v-checkbox
|
||||
v-model="value.onsite"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:label="$ay.t('WorkOrderOnsite')"
|
||||
ref="onsite"
|
||||
data-cy="onsite"
|
||||
:error-messages="form().serverErrors(this, 'onsite')"
|
||||
@change="fieldValueChanged('onsite')"
|
||||
></v-checkbox>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Tags') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
>
|
||||
<gz-tag-picker
|
||||
v-model="value.tags"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
ref="tags"
|
||||
data-cy="tags"
|
||||
:error-messages="form().serverErrors(this, 'tags')"
|
||||
@input="fieldValueChanged('tags')"
|
||||
></gz-tag-picker>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
!(
|
||||
value.userIsSubContractorFull || value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
>
|
||||
<gz-custom-fields
|
||||
v-model="value.customFields"
|
||||
:form-key="formCustomTemplateKey"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:parent-v-m="this"
|
||||
key-start-with="WorkOrderCustom"
|
||||
ref="customFields"
|
||||
data-cy="customFields"
|
||||
:error-messages="form().serverErrors(this, 'customFields')"
|
||||
@input="fieldValueChanged('customFields')"
|
||||
></gz-custom-fields>
|
||||
</v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Wiki') &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
>
|
||||
<gz-wiki
|
||||
:aya-type="pvm.ayaType"
|
||||
:aya-id="value.id"
|
||||
ref="wiki"
|
||||
v-model="value.wiki"
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
@input="fieldValueChanged('wiki')"
|
||||
></gz-wiki
|
||||
></v-col>
|
||||
|
||||
<v-col
|
||||
v-if="
|
||||
form().showMe(this, 'Attachments') &&
|
||||
value.id &&
|
||||
!(
|
||||
value.userIsSubContractorFull ||
|
||||
value.userIsSubContractorRestricted
|
||||
)
|
||||
"
|
||||
cols="12"
|
||||
>
|
||||
<gz-attachments
|
||||
:readonly="formState.readOnly || value.userIsTechRestricted"
|
||||
:aya-type="pvm.ayaType"
|
||||
:aya-id="value.id"
|
||||
></gz-attachments
|
||||
></v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/* XXXeslint-disable */
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
import GzWoState from "./work-order-state.vue";
|
||||
import GzWoAddress from "./work-order-address.vue";
|
||||
import GzWoSignature from "./work-order-signature.vue";
|
||||
export default {
|
||||
components: {
|
||||
GzWoState,
|
||||
GzWoAddress,
|
||||
GzWoSignature
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
canEditSerial: window.$gz.role.hasRole([
|
||||
window.$gz.role.AUTHORIZATION_ROLES.BizAdminFull
|
||||
])
|
||||
};
|
||||
},
|
||||
|
||||
props: {
|
||||
value: {
|
||||
default: null,
|
||||
type: Object
|
||||
},
|
||||
pvm: {
|
||||
default: null,
|
||||
type: Object
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
form() {
|
||||
return window.$gz.form;
|
||||
},
|
||||
async fieldValueChanged(ref) {
|
||||
if (!this.formState.loading && !this.formState.readonly) {
|
||||
//flag this record dirty so it gets picked up by save
|
||||
this.value.isDirty = true;
|
||||
window.$gz.form.fieldValueChanged(this.pvm, ref);
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
formState: function() {
|
||||
return this.pvm.formState;
|
||||
},
|
||||
formCustomTemplateKey: function() {
|
||||
return this.pvm.formCustomTemplateKey;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Example workorder
|
||||
{
|
||||
id: 10,
|
||||
concurrency: 7728489,
|
||||
serial: 10,
|
||||
notes: "Quae officia placeat aliquid ducimus consequatur quia.",
|
||||
wiki: null,
|
||||
customFields: null,
|
||||
tags: ["green", "zone6"],
|
||||
customerId: 12,
|
||||
projectId: null,
|
||||
internalReferenceNumber: "irf-3339",
|
||||
customerReferenceNumber: "crf-1889",
|
||||
customerContactName: "contact name here",
|
||||
fromQuoteId: null,
|
||||
fromPMId: null,
|
||||
fromCSRId: null,
|
||||
serviceDate: "2021-05-29T21:25:31.421011Z",
|
||||
completeByDate: "2021-06-03T21:25:31.421011Z",
|
||||
invoiceNumber: null,
|
||||
customerSignature: null,
|
||||
customerSignatureName: null,
|
||||
customerSignatureCaptured: "0001-01-01T00:00:00Z",
|
||||
postAddress: null,
|
||||
postCity: null,
|
||||
postRegion: null,
|
||||
postCountry: null,
|
||||
postCode: null,
|
||||
address: null,
|
||||
city: null,
|
||||
region: null,
|
||||
country: null,
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
items: [
|
||||
{
|
||||
id: 21,
|
||||
concurrency: 7728489,
|
||||
notes: "itemnotes",
|
||||
wiki: null,
|
||||
customFields: null,
|
||||
tags: [],
|
||||
workOrderId: 10,
|
||||
techNotes: "technotes",
|
||||
workorderItemStatusId: null,
|
||||
workorderItemPriorityId: null,
|
||||
requestDate: "2021-05-29T21:25:31.421011Z",
|
||||
warrantyService: false,
|
||||
isDirty: false,
|
||||
expenses: [],
|
||||
labors: [],
|
||||
loans: [],
|
||||
parts: [],
|
||||
partRequests: [],
|
||||
scheduledUsers: [
|
||||
{
|
||||
id: 41,
|
||||
concurrency: 7728489,
|
||||
userId: 15,
|
||||
estimatedQuantity: 1.0,
|
||||
startDate: null,
|
||||
stopDate: null,
|
||||
serviceRateId: null,
|
||||
isDirty: false,
|
||||
workOrderItemId: 21
|
||||
},
|
||||
{
|
||||
id: 42,
|
||||
concurrency: 7728489,
|
||||
userId: 22,
|
||||
estimatedQuantity: 2.0,
|
||||
startDate: null,
|
||||
stopDate: null,
|
||||
serviceRateId: null,
|
||||
isDirty: false,
|
||||
workOrderItemId: 21
|
||||
}
|
||||
],
|
||||
tasks: [],
|
||||
travels: [],
|
||||
units: [],
|
||||
outsideServices: []
|
||||
},
|
||||
{
|
||||
id: 22,
|
||||
concurrency: 7728489,
|
||||
notes: "itemnotes",
|
||||
wiki: null,
|
||||
customFields: null,
|
||||
tags: [],
|
||||
workOrderId: 10,
|
||||
techNotes: "technotes",
|
||||
workorderItemStatusId: null,
|
||||
workorderItemPriorityId: null,
|
||||
requestDate: "2021-05-29T21:25:31.421011Z",
|
||||
warrantyService: false,
|
||||
isDirty: false,
|
||||
expenses: [],
|
||||
labors: [],
|
||||
loans: [],
|
||||
parts: [],
|
||||
partRequests: [],
|
||||
scheduledUsers: [
|
||||
{
|
||||
id: 43,
|
||||
concurrency: 7728489,
|
||||
userId: 24,
|
||||
estimatedQuantity: 1.0,
|
||||
startDate: null,
|
||||
stopDate: null,
|
||||
serviceRateId: null,
|
||||
isDirty: false,
|
||||
workOrderItemId: 22
|
||||
},
|
||||
{
|
||||
id: 44,
|
||||
concurrency: 7728489,
|
||||
userId: 40,
|
||||
estimatedQuantity: 2.0,
|
||||
startDate: null,
|
||||
stopDate: null,
|
||||
serviceRateId: null,
|
||||
isDirty: false,
|
||||
workOrderItemId: 22
|
||||
}
|
||||
],
|
||||
tasks: [],
|
||||
travels: [],
|
||||
units: [],
|
||||
outsideServices: []
|
||||
}
|
||||
],
|
||||
states: [
|
||||
{
|
||||
id: 37,
|
||||
concurrency: 7728489,
|
||||
workOrderId: 10,
|
||||
workOrderStatusId: 2,
|
||||
created: "2021-05-29T21:30:31.421011Z",
|
||||
userId: 37,
|
||||
isDirty: false,
|
||||
workOrderStatus: null
|
||||
},
|
||||
{
|
||||
id: 38,
|
||||
concurrency: 7728489,
|
||||
workOrderId: 10,
|
||||
workOrderStatusId: 3,
|
||||
created: "2021-05-29T22:25:31.421011Z",
|
||||
userId: 10,
|
||||
isDirty: false,
|
||||
workOrderStatus: null
|
||||
},
|
||||
{
|
||||
id: 39,
|
||||
concurrency: 7728489,
|
||||
workOrderId: 10,
|
||||
workOrderStatusId: 1,
|
||||
created: "2021-05-29T22:30:31.421011Z",
|
||||
userId: 31,
|
||||
isDirty: false,
|
||||
workOrderStatus: null
|
||||
},
|
||||
{
|
||||
id: 40,
|
||||
concurrency: 7728489,
|
||||
workOrderId: 10,
|
||||
workOrderStatusId: 3,
|
||||
created: "2021-05-29T23:25:31.421011Z",
|
||||
userId: 2,
|
||||
isDirty: false,
|
||||
workOrderStatus: null
|
||||
},
|
||||
{
|
||||
id: 41,
|
||||
concurrency: 7728489,
|
||||
workOrderId: 10,
|
||||
workOrderStatusId: 9,
|
||||
created: "2021-04-06T00:10:44.636Z",
|
||||
userId: 1,
|
||||
isDirty: false,
|
||||
workOrderStatus: null
|
||||
}
|
||||
],
|
||||
isDirty: false,
|
||||
isLockedAtServer: false
|
||||
};
|
||||
|
||||
|
||||
*/
|
||||
</script>
|
||||
1430
ayanova/src/components/quote-items.vue
Normal file
1430
ayanova/src/components/quote-items.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -407,10 +407,10 @@ export default new Router({
|
||||
import(/* webpackChunkName: "svc" */ "./views/svc-quotes.vue")
|
||||
},
|
||||
{
|
||||
path: "/svc-quote-templates",
|
||||
name: "svc-quote-templates",
|
||||
path: "/svc-quotes/:recordid",
|
||||
name: "quote-edit",
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "svc" */ "./views/svc-quote-templates.vue")
|
||||
import(/* webpackChunkName: "svc" */ "./views/svc-quote.vue")
|
||||
},
|
||||
{
|
||||
path: "/svc-pm-list",
|
||||
|
||||
2207
ayanova/src/views/svc-quote.vue
Normal file
2207
ayanova/src/views/svc-quote.vue
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user