This commit is contained in:
@@ -391,6 +391,9 @@ todo 3: signature: report helper display signature and form ui control to captur
|
|||||||
case 3682 implies code to steal to make signatures better so look into that
|
case 3682 implies code to steal to make signatures better so look into that
|
||||||
case 2052 is this one
|
case 2052 is this one
|
||||||
case 3673 also directly related
|
case 3673 also directly related
|
||||||
|
v7 import - must put in block at least if not code immediately to import v7 sigs into svg format for display
|
||||||
|
also, depending on ease, it might make sense to have v8 server check type of image i.e. does it start with svg or not and
|
||||||
|
then auto convert if necessary.
|
||||||
|
|
||||||
3720 3: BUMPABLE CASE I THINK prevent double booking a tech (some kind of warning)
|
3720 3: BUMPABLE CASE I THINK prevent double booking a tech (some kind of warning)
|
||||||
availability feature??? maybe bump as a new availablity feature where user picks from a popup schedule for that tech?
|
availability feature??? maybe bump as a new availablity feature where user picks from a popup schedule for that tech?
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
:disabled="!enabled"
|
:disabled="!enabled"
|
||||||
:default-url="dataUrl"
|
:default-url="dataUrl"
|
||||||
></vueSignature>
|
></vueSignature>
|
||||||
<vueSignature ref="signature1" :sig-option="option"></vueSignature>
|
<!-- <vueSignature ref="signature1" :sig-option="option"></vueSignature> -->
|
||||||
<button @click="save">Save</button>
|
<button @click="save">Save</button>
|
||||||
<button @click="clear">Clear</button>
|
<button @click="clear">Clear</button>
|
||||||
<button @click="undo">Undo</button>
|
<button @click="undo">Undo</button>
|
||||||
@@ -70,7 +70,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
option: {
|
option: {
|
||||||
penColor: "rgb(0, 0, 0)",
|
penColor: "rgb(0, 0, 0)",
|
||||||
backgroundColor: "rgb(255,255,255)"
|
backgroundColor: "rgb(245,245,245)"
|
||||||
},
|
},
|
||||||
|
|
||||||
dataUrl: null, //"https://avatars2.githubusercontent.com/u/17644818?s=460&v=4"
|
dataUrl: null, //"https://avatars2.githubusercontent.com/u/17644818?s=460&v=4"
|
||||||
|
|||||||
@@ -64,6 +64,35 @@
|
|||||||
/>
|
/>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
|
<GzWoSignature
|
||||||
|
v-if="
|
||||||
|
pvm.subRights.states.visible &&
|
||||||
|
form().showMe(this, 'CustomerSignature')
|
||||||
|
"
|
||||||
|
v-model="value"
|
||||||
|
:form-key="formCustomTemplateKey"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:pvm="pvm"
|
||||||
|
variant="customer"
|
||||||
|
data-cy="customerSignature"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col cols="12" sm="6" lg="4" xl="3">
|
||||||
|
<GzWoSignature
|
||||||
|
v-if="
|
||||||
|
pvm.subRights.states.visible && form().showMe(this, 'TechSignature')
|
||||||
|
"
|
||||||
|
v-model="value"
|
||||||
|
:form-key="formCustomTemplateKey"
|
||||||
|
:readonly="formState.readOnly"
|
||||||
|
:pvm="pvm"
|
||||||
|
variant="tech"
|
||||||
|
data-cy="techSignature"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
<v-col v-if="form().showMe(this, 'WorkOrderSummary')" cols="12">
|
<v-col v-if="form().showMe(this, 'WorkOrderSummary')" cols="12">
|
||||||
<v-textarea
|
<v-textarea
|
||||||
v-model="value.notes"
|
v-model="value.notes"
|
||||||
@@ -312,12 +341,12 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
import GzWoState from "./work-order-state.vue";
|
import GzWoState from "./work-order-state.vue";
|
||||||
import GzWoAddress from "./work-order-address.vue";
|
import GzWoAddress from "./work-order-address.vue";
|
||||||
//import GzWoContract from "./work-order-contract.vue";
|
import GzWoSignature from "./work-order-signature.vue";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
GzWoState,
|
GzWoState,
|
||||||
GzWoAddress
|
GzWoAddress,
|
||||||
//, GzWoContract
|
GzWoSignature
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
126
ayanova/src/components/work-order-signature.vue
Normal file
126
ayanova/src/components/work-order-signature.vue
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="mb-n2 ml-10">
|
||||||
|
<span class="text-caption" v-if="variant == 'customer'">{{
|
||||||
|
$ay.t("CustomerSignature")
|
||||||
|
}}</span>
|
||||||
|
<span class="text-caption" v-else>{{ $ay.t("TechSignature") }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="mb-6 mb-sm-0">
|
||||||
|
<v-btn icon class="ml-n1 mr-2" @click="openDialog = true">
|
||||||
|
<v-icon>$ayiEdit</v-icon>
|
||||||
|
</v-btn>
|
||||||
|
|
||||||
|
<span class="text-h6" @click="openDialog = true">{{
|
||||||
|
pvm.currentState.name
|
||||||
|
}}</span>
|
||||||
|
<v-icon :color="pvm.currentState.color" class="ml-4">$ayiFlag</v-icon>
|
||||||
|
<v-icon color="primary" v-if="pvm.currentState.locked" class="ml-4"
|
||||||
|
>$ayiLock</v-icon
|
||||||
|
>
|
||||||
|
<v-icon color="primary" v-if="pvm.currentState.completed" class="ml-4"
|
||||||
|
>$ayiCheckCircle</v-icon
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-dialog v-model="openDialog" max-width="600px">
|
||||||
|
<v-card>
|
||||||
|
<v-card-title>
|
||||||
|
<span class="text-h5">{{ $ay.t("Signaturehere") }}</span>
|
||||||
|
</v-card-title>
|
||||||
|
<v-card-text>
|
||||||
|
<template v-if="$vuetify.breakpoint.smAndUp">
|
||||||
|
<!-- WIDE VIEW -->
|
||||||
|
<Sign data-cy="sign" />
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<!-- NARROW VIEW -->
|
||||||
|
<Sign data-cy="sign" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="mt-8">
|
||||||
|
input name here show date here
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</v-card-text>
|
||||||
|
<v-card-actions>
|
||||||
|
<v-btn color="red darken-1" text @click="erase()">{{
|
||||||
|
$ay.t("Clear")
|
||||||
|
}}</v-btn>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn color="blue darken-1" text @click="cancelDialog()">{{
|
||||||
|
$ay.t("Cancel")
|
||||||
|
}}</v-btn>
|
||||||
|
<v-btn
|
||||||
|
color="blue darken-1"
|
||||||
|
:disabled="selectedStatus == null"
|
||||||
|
text
|
||||||
|
@click="save()"
|
||||||
|
>{{ $ay.t("OK") }}</v-btn
|
||||||
|
>
|
||||||
|
</v-card-actions>
|
||||||
|
</v-card>
|
||||||
|
</v-dialog>
|
||||||
|
</v-row>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/* XXXeslint-disable */
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
selectedStatus: null,
|
||||||
|
openDialog: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
default: null,
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
pvm: {
|
||||||
|
default: null,
|
||||||
|
type: Object
|
||||||
|
},
|
||||||
|
variant: {
|
||||||
|
type: String,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
formKey: { type: String, default: "" }, //used to grab template from store
|
||||||
|
readonly: Boolean,
|
||||||
|
disabled: Boolean
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
form() {
|
||||||
|
return window.$gz.form;
|
||||||
|
},
|
||||||
|
|
||||||
|
save() {
|
||||||
|
this.openDialog = false;
|
||||||
|
},
|
||||||
|
cancelDialog() {
|
||||||
|
this.openDialog = false;
|
||||||
|
},
|
||||||
|
erase() {
|
||||||
|
this.selectedStatus = null;
|
||||||
|
this.openDialog = false;
|
||||||
|
},
|
||||||
|
fieldValueChanged(ref) {
|
||||||
|
if (!this.pvm.formState.loading && !this.pvm.formState.readonly) {
|
||||||
|
window.$gz.form.fieldValueChanged(this.pvm, ref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -2078,7 +2078,9 @@ async function fetchTranslatedText(vm) {
|
|||||||
"WorkOrderItemUnit",
|
"WorkOrderItemUnit",
|
||||||
"WorkOrderItemTask",
|
"WorkOrderItemTask",
|
||||||
"WorkOrderItemLoan",
|
"WorkOrderItemLoan",
|
||||||
"WorkOrderItemOutsideService"
|
"WorkOrderItemOutsideService",
|
||||||
|
"CustomerSignature",
|
||||||
|
"TechSignature"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user