Interface SAV
This commit is contained in:
@@ -65,6 +65,7 @@ onMounted(async () => {
|
|||||||
<template v-slot:modal-title>
|
<template v-slot:modal-title>
|
||||||
<h2 v-if="idTicket !== 0">Fiche n° {{ idTicket }} - {{ currentTicket.first_name }}
|
<h2 v-if="idTicket !== 0">Fiche n° {{ idTicket }} - {{ currentTicket.first_name }}
|
||||||
{{ currentTicket.last_name }}</h2>
|
{{ currentTicket.last_name }}</h2>
|
||||||
|
<button v-if="idTicket !==0 && currentTicket.advisor_name === ''" class="btn btn-primary float-end">S'attribuer la fiche</button>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:modal-body>
|
<template v-slot:modal-body>
|
||||||
<Messenger :key="showModal" v-if="showModal"></Messenger>
|
<Messenger :key="showModal" v-if="showModal"></Messenger>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const sendBtn = ref()
|
|||||||
const sidePanel = ref()
|
const sidePanel = ref()
|
||||||
const standardMessage = ref([])
|
const standardMessage = ref([])
|
||||||
|
|
||||||
const replyOption = ref({private_message: null, notification: 'Réponse envoyée', sms: false, email: true})
|
const replyOption = ref({private_message: null, notification: 'Réponse envoyée', sms: false, email: true, includeReply:true, archive:false})
|
||||||
const quill = ref(null)
|
const quill = ref(null)
|
||||||
const attachedDoc = ref(null)
|
const attachedDoc = ref(null)
|
||||||
|
|
||||||
@@ -118,6 +118,18 @@ const setQuillContent = (val) => {
|
|||||||
<label class="form-check-label" for="sendEmail">Email</label>
|
<label class="form-check-label" for="sendEmail">Email</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-auto align-self-center">
|
||||||
|
<div class="form-check form-switch">
|
||||||
|
<input class="form-check-input" type="checkbox" name="includeReply" value="yes" id="includeReply" v-model="replyOption.includeReply">
|
||||||
|
<label class="form-check-label" for="includeReply">Inclure la réponse</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto align-self-center">
|
||||||
|
<div class="form-check form-switch">
|
||||||
|
<input class="form-check-input" type="checkbox" name="archive" value="yes" id="archive" v-model="replyOption.archive">
|
||||||
|
<label class="form-check-label" for="archive">Archiver</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ const {
|
|||||||
} = storeToRefs(storeTicket)
|
} = storeToRefs(storeTicket)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
messages.value = await TicketApi.getMessages(storeTicket.currentTicket.code, storeTicket.idTicket)
|
messages.value = await TicketApi.getMessages(storeTicket.currentTicket.code, storeTicket.idTicket)
|
||||||
await moveToBottom("body-modal-to-scroll")
|
await moveToBottom("body-modal-to-scroll")
|
||||||
@@ -36,7 +35,7 @@ onMounted(async () => {
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<div class="chat-about">
|
<div class="chat-about">
|
||||||
<span><Icon icon="mdi:email" class="text-primary"/> {{currentTicket.email}}</span>
|
<span><Icon icon="mdi:email" class="text-primary"/> {{ currentTicket.email }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -59,17 +58,14 @@ onMounted(async () => {
|
|||||||
<Icon icon="mdi:support" width="40" class="text-success ms-2" v-if="message.sender === 'pharmacy'"/>
|
<Icon icon="mdi:support" width="40" class="text-success ms-2" v-if="message.sender === 'pharmacy'"/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="message" :class="message.sender === 'pharmacy' ? 'other-message float-end' : 'my-message'">
|
<div class="message text-start"
|
||||||
|
:class="message.sender === 'pharmacy' ? 'other-message float-end' : 'my-message'">
|
||||||
|
|
||||||
<div v-if="message.htmlBody !== null">
|
<strong v-if="message.object !== null ">{{ message.object }}<br/></strong>
|
||||||
<strong v-if="message.object !== null ">{{ message.object }}<br/></strong>
|
<div v-html="message.body"></div>
|
||||||
<div v-html="message.htmlBody"></div>
|
<strong v-if="message.code_message !== null ">
|
||||||
<strong v-if="message.code_message !== null ">{{ message.code_message }}</strong>
|
<hr/>
|
||||||
</div>
|
{{ message.code_message }}</strong>
|
||||||
<div v-else>
|
|
||||||
<strong v-if="message.object !== null && message.body === null">{{ message.object }}<br/></strong>
|
|
||||||
{{ message.body }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="message.document.length >0">
|
<div v-if="message.document.length >0">
|
||||||
<a class="btn me-2 mt-2" :class="document.color" v-for="(document, i) in message.document"
|
<a class="btn me-2 mt-2" :class="document.color" v-for="(document, i) in message.document"
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ const grid = new Grid({
|
|||||||
}],
|
}],
|
||||||
data: props.rows,
|
data: props.rows,
|
||||||
sort: true,
|
sort: true,
|
||||||
//search: true,
|
search: true,
|
||||||
pagination: {
|
pagination: {
|
||||||
limit: 15,
|
limit: 15,
|
||||||
summary: false
|
summary: false
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ watch(hide, async (to, from) => {
|
|||||||
<div class="modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true" ref="refModal">
|
<div class="modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true" ref="refModal">
|
||||||
<div class="modal-dialog" :class="size">
|
<div class="modal-dialog" :class="size">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header gap-5">
|
||||||
<slot name="modal-title"></slot>
|
<slot name="modal-title"></slot>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user