adicionado animação e controle de trabalho, impede do colaborador iniciar o atendimento até que o cliente chegue ao guichê ou sala.

This commit is contained in:
Eder Moraes 2025-06-02 23:19:13 -03:00
parent e4f49e98b7
commit b8487d9d4c
4 changed files with 27 additions and 12 deletions

View File

@ -237,7 +237,7 @@ function createUpdateWindow() {
function createFloatingWindow() {
const primaryDisplay = screen.getPrimaryDisplay();
const { width: screenWidth, height: screenHeight } = primaryDisplay.workAreaSize;
const winWidth = 50;
const winWidth = 60;
const winHeight = 70;
floatingWin = new BrowserWindow({

View File

@ -1,6 +1,6 @@
{
"name": "autoatendcolab",
"version": "1.0.2",
"version": "1.0.3",
"main": "main.js",
"isBuildNow": true,
"scripts": {

View File

@ -46,15 +46,15 @@ window.electronAPI.selectAtendID((data)=>{
// Função para popular a lista de itens
function populateList(currentData) {
let datastorage = localStorage.getItem('proximos');
nextButton.disabled = true;
// Adiciona os outros itens apenas para visualização (opcional)
const proximos = JSON.parse(datastorage);
var count = 15;
itemList.innerHTML = ''; // Limpa a lista anterior
if (!proximos || proximos.length === 0) {
var count = 15;
if (!proximos || proximos.length === 0 || !currentData) {
itemList.innerHTML = '<li>Fila vazia!</li>';
nextButton.disabled = true;
const dec_counter = setInterval(() => {
count = count -1;
counterStart.innerHTML = `[ ${count} ]`;
@ -79,7 +79,16 @@ function populateList(currentData) {
li.dataset.id = itemToProcess.id; // Armazena o ID no elemento
li.classList.add('selected'); // Marca como selecionado visualmente (precisa de CSS)
itemList.appendChild(li);
const dec_counter = setInterval(() => {
count = count -1;
counterStart.innerHTML = `[ ${count} ]`;
if (count <= 0 && currentData) {
counterStart.innerHTML = '';
nextButton.disabled = false;
clearInterval(dec_counter);
}
},1000);
} else {
itemList.innerHTML = '<li>Fila vazia!</li>';

View File

@ -65,7 +65,7 @@ body#floating{
transition: background-color 0.3s ease; /* Suaviza a transição de cor */
position: absolute;
top: -6px;
left: 4px;
left: 8px;
-webkit-app-region: no-drag;
cursor: pointer;
}
@ -74,19 +74,25 @@ body#floating{
#float-button.has-items {
background-color: var(--opac-warning-color); /* Tom avermelhado/alaranjado com transparência */
box-shadow: var(--inset-box-shadow); /* Sombra mais escura avermelhada */
border: 2px solid var(--dark-warning-color);
animation: pulse-border 2s infinite;
border: 4px solid var(--dark-warning-color);
animation: pulse-border .5s infinite;
}
@keyframes pulse-border {
0% {
border-color: var(--dark-warning-color);
border-color: var(--medium-gold);
width: 64px;
height: 64px;
}
50% {
border-color: var(--warning-color);
width: 66px;
height: 66px;
border-color: var(--accent-gold);
}
100% {
border-color: var(--dark-warning-color);
width: 64px;
height: 64px;
border-color: var(--medium-gold);
}
}