v5.9.5
Warehouse to MiniApp
This commit is contained in:
parent
3271d464c6
commit
063ed5fc3a
@ -88,6 +88,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h2>🗄️ Склад</h2>
|
||||
<div id="enterprises">
|
||||
<p>Нет доступного склада.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="https://t.me/CampFireGameBot" class="button">🏠 Перейти в чат бота</a>
|
||||
</div>
|
||||
|
||||
@ -98,7 +105,7 @@
|
||||
fetch(`/player/${playerId}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
const { user, business, enterprises } = data;
|
||||
const { user, business, enterprises, warehouse } = data;
|
||||
|
||||
// Личные данные
|
||||
document.getElementById("name").textContent = user.name || user.username;
|
||||
@ -168,6 +175,29 @@
|
||||
enterprisesDiv.appendChild(div);
|
||||
});
|
||||
}
|
||||
|
||||
// Склад (имеет следующие переменные playerId: DataTypes.BIGINT,capacity: DataTypes.INTEGER, // Общая ёмкость складаwood: DataTypes.INTEGER,coal: DataTypes.INTEGER,oil: DataTypes.INTEGER,metall: DataTypes.INTEGER,gold: DataTypes.INTEGER,diamond: DataTypes.INTEGER,), красиво выводим весь склад и добавляем прогрессбар заполненности
|
||||
const warehouseDiv = document.getElementById("warehouse");
|
||||
if (warehouse) {
|
||||
warehouseDiv.innerHTML = "";
|
||||
const resources = Object.keys(warehouse.dataValues).filter(key => key !== 'playerId' && key !== 'capacity');
|
||||
resources.forEach(resource => {
|
||||
const div = document.createElement("div");
|
||||
div.classList.add("resource");
|
||||
div.innerHTML = `
|
||||
<strong>${getResourceName(resource)}</strong><br>
|
||||
Количество: ${warehouse[resource]}<br>
|
||||
Максимум: ${warehouse.capacity}
|
||||
`;
|
||||
// Добавляем прогрессбар заполненности склада
|
||||
const progress = (warehouse[resource] / warehouse.capacity) * 100;
|
||||
const progressBar = document.createElement("div");
|
||||
progressBar.classList.add("progress-bar");
|
||||
progressBar.innerHTML = `<div class="progress-bar-inner" style="width: ${progress}%"></div>`;
|
||||
div.appendChild(progressBar);
|
||||
warehouseDiv.appendChild(div);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.error("Ошибка загрузки данных:", err);
|
||||
|
@ -25,6 +25,7 @@ app.get('/player/:id', async (req, res) => {
|
||||
business = await BusinessModel.findOne( {where: { owner: user.business.id} } )
|
||||
}
|
||||
const enterprises = await EnterpriseModel.findAll({ where: { playerId } });
|
||||
const warehouse = await WarehouseModel.findOne({ where: { playerId } });
|
||||
|
||||
if (!user || !character) {
|
||||
return res.status(404).json({ error: "Игрок не найден." });
|
||||
@ -55,6 +56,7 @@ app.get('/player/:id', async (req, res) => {
|
||||
},
|
||||
business: business || { name: "Отсутствует", balance: 0, materials: 0, users: [] },
|
||||
enterprises: enterprises || [],
|
||||
warehouse: warehouse || { materials: 0, maxMaterials: 0 },
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
|
Loading…
Reference in New Issue
Block a user