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() { function createFloatingWindow() {
const primaryDisplay = screen.getPrimaryDisplay(); const primaryDisplay = screen.getPrimaryDisplay();
const { width: screenWidth, height: screenHeight } = primaryDisplay.workAreaSize; const { width: screenWidth, height: screenHeight } = primaryDisplay.workAreaSize;
const winWidth = 50; const winWidth = 60;
const winHeight = 70; const winHeight = 70;
floatingWin = new BrowserWindow({ floatingWin = new BrowserWindow({

View File

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

View File

@ -46,15 +46,15 @@ window.electronAPI.selectAtendID((data)=>{
// Função para popular a lista de itens // Função para popular a lista de itens
function populateList(currentData) { function populateList(currentData) {
let datastorage = localStorage.getItem('proximos'); let datastorage = localStorage.getItem('proximos');
nextButton.disabled = true;
// Adiciona os outros itens apenas para visualização (opcional) // Adiciona os outros itens apenas para visualização (opcional)
const proximos = JSON.parse(datastorage); const proximos = JSON.parse(datastorage);
var count = 15;
itemList.innerHTML = ''; // Limpa a lista anterior itemList.innerHTML = ''; // Limpa a lista anterior
if (!proximos || proximos.length === 0) { if (!proximos || proximos.length === 0 || !currentData) {
var count = 15;
itemList.innerHTML = '<li>Fila vazia!</li>'; itemList.innerHTML = '<li>Fila vazia!</li>';
nextButton.disabled = true;
const dec_counter = setInterval(() => { const dec_counter = setInterval(() => {
count = count -1; count = count -1;
counterStart.innerHTML = `[ ${count} ]`; counterStart.innerHTML = `[ ${count} ]`;
@ -79,7 +79,16 @@ function populateList(currentData) {
li.dataset.id = itemToProcess.id; // Armazena o ID no elemento li.dataset.id = itemToProcess.id; // Armazena o ID no elemento
li.classList.add('selected'); // Marca como selecionado visualmente (precisa de CSS) li.classList.add('selected'); // Marca como selecionado visualmente (precisa de CSS)
itemList.appendChild(li); 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 { } else {
itemList.innerHTML = '<li>Fila vazia!</li>'; 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 */ transition: background-color 0.3s ease; /* Suaviza a transição de cor */
position: absolute; position: absolute;
top: -6px; top: -6px;
left: 4px; left: 8px;
-webkit-app-region: no-drag; -webkit-app-region: no-drag;
cursor: pointer; cursor: pointer;
} }
@ -74,19 +74,25 @@ body#floating{
#float-button.has-items { #float-button.has-items {
background-color: var(--opac-warning-color); /* Tom avermelhado/alaranjado com transparência */ background-color: var(--opac-warning-color); /* Tom avermelhado/alaranjado com transparência */
box-shadow: var(--inset-box-shadow); /* Sombra mais escura avermelhada */ box-shadow: var(--inset-box-shadow); /* Sombra mais escura avermelhada */
border: 2px solid var(--dark-warning-color); border: 4px solid var(--dark-warning-color);
animation: pulse-border 2s infinite; animation: pulse-border .5s infinite;
} }
@keyframes pulse-border { @keyframes pulse-border {
0% { 0% {
border-color: var(--dark-warning-color); border-color: var(--medium-gold);
width: 64px;
height: 64px;
} }
50% { 50% {
border-color: var(--warning-color); width: 66px;
height: 66px;
border-color: var(--accent-gold);
} }
100% { 100% {
border-color: var(--dark-warning-color); width: 64px;
height: 64px;
border-color: var(--medium-gold);
} }
} }