-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoperator.js
129 lines (105 loc) · 4.19 KB
/
operator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
var socket = io();
let data = [];
let operators = window.appConfig.operator;
let operations = window.appConfig.operations
let currentTask = null;
let currentCabinet = null;
let opr;
// проверка связи
socket.on('connect', function() {
console.log('Связь есть');
});
console.log(operators);
console.log(operations);
//обнавление таблицы вывода
socket.on('queue_update', function(json) {
if (data.length == 0) {
data.push(json.queue);
} else {
data = [];
data.push(json.queue);
}
// вывод очереди
console.log(data);
const userSelectElement = document.getElementById('user-select');
userSelectElement.innerHTML = '<option value="">Выберите пользователя</option>';
data[0].forEach(user => {
//console.log(user)
if (operators.operations.split('').some(letter => user.operation.includes(letter)) && user.status === 'waiting' || user.status === 'True') {
const optionElement = document.createElement('option');
optionElement.value = user.number;
optionElement.textContent = user.number;
userSelectElement.appendChild(optionElement);
const soundFile = new Audio('/static/audio/dutifully-notification-tone.mp3');
soundFile.autoplay = true;
};
});
});
// Для осуществления выбора и вывода информации по выбранному персонажу
const userSelectElement = document.getElementById('user-select');
userSelectElement.addEventListener('change', function() {
const userId = userSelectElement.value;
currentTask = userSelectElement.value;
document.getElementById('current-task').textContent = `Вы выбрали: ${userId}`;
data[0].forEach(user => {
if (user.number === parseInt(userId)) {
operations.forEach(operation => {
if (operation.operation_code === user.operation) {
opr = operation.operation_name;
currentCabinet = operation.cabinet;
}
});
function generateTable(userNumber, opr, userBirthdate, userUsername, userPhone, userLastname) {
const oldTable = document.getElementById("operator-table");
if (oldTable) {
oldTable.parentNode.removeChild(oldTable);
}
const tableHtml = `
<table id="operator-table" style="margin-bottom: 2vh; margin-top: 2vh;">
<tr>
<th>Талон</th>
<td>${userNumber}</td>
</tr>
<tr>
<th>Имя/Фамилия</th>
<td>${userUsername} ${userLastname}</td>
</tr>
<tr>
<th>Телефон</th>
<td>${userPhone}</td>
</tr>
<tr>
<th>Операция</th>
<td>${opr}</td>
</tr>
<tr>
<th>День рождения</th>
<td>${userBirthdate}</td>
</tr>
</table>
`;
const tableContainer = document.getElementById("table_container")
tableContainer.innerHTML = tableHtml;
}
generateTable(user.number, opr, user.birthdate, user.username, user.phone, user.userLastname)
};
});
});
var isFinished = false;
$('#assign-cabinet').on('click', function() {
if (currentTask && currentCabinet) {
if (!isFinished) {
socket.emit('assign_cabinet', { number: currentTask, cabinetId: currentCabinet });
console.log(`Кабинет ${currentCabinet} назначен пользователю ${currentTask}`);
$(this).text('Закончить приём');
isFinished = true;
} else {
socket.emit('unassign_cabinet', { number: currentTask, cabinetId: currentCabinet });
console.log(`Кабинет ${currentCabinet} отменен для пользователя ${currentTask}`);
$(this).text('Назначить кабинет');
isFinished = false;
}
} else {
alert("Перед назначением выберите задачу и кабинет.");
}
});