buyers component fixed

This commit is contained in:
Sergey Yarkov 2020-02-13 20:46:27 +03:00
parent a50caef3ce
commit 34f4829c63
5 changed files with 32 additions and 14 deletions

View File

@ -110,7 +110,7 @@ module.exports = function(server, db) {
server.get('/api/buyers/:bill_id', checkAuthenticated, async (req, res) => {
try {
const buyers = await db.collection('buyers').find({bill_id: req.params.bill_id}).toArray();
const buyers = await db.collection('buyers').findOne({bill_id: req.params.bill_id});
res.json(buyers);
} catch {
res.status(500).render('main/404');

View File

@ -28,7 +28,7 @@ const administrator = new AdministratorComponent('administrator');
const itemEdit = new ItemEditModal('editItemModal', 'edit', 'editItemClose', {loader});
const itemDelete = new ItemDeleteModal('deleteItemModal', 'edit', 'deleteItemClose');
const categoryEdit = new CategoryEditModal('editCategoryModal', 'editCategory_select', 'editCategoryClose');
const billData = new BillDataModal('billDataModal', 'dashboard', 'billDataClose');
const billData = new BillDataModal('billDataModal', 'dashboard', 'billDataClose', {loader});
const materialize = new MaterializeConfig();
console.log('Control-Panel v1.0.0');

View File

@ -1,8 +1,10 @@
import { Modal } from "../core/modal";
import { apiService } from "../services/api.service";
export class BillDataModal extends Modal {
constructor(id, open, close) {
constructor(id, open, close, {loader}) {
super(id, open, close);
this.loader = loader
}
show(e) {
@ -22,16 +24,23 @@ export class BillDataModal extends Modal {
this.$data = this.$el.querySelector('#data');
}
openHandler(e) {
const data = JSON.parse(e.target.parentNode.parentNode.dataset.info);
this.$bill_id.value = data.bill_id;
this.$email.value = data.email;
this.$method.value = data.method;
this.$date.value = data.date;
this.$amount.value = data.amount;
this.$data.textContent = data.data.split(',').join('\n');
async openHandler(e) {
try {
this.loader.show();
const buyer = await apiService.getBuyerById(e.target.parentNode.parentNode.dataset.id)
M.textareaAutoResize(this.$data);
M.updateTextFields();
this.$bill_id.value = buyer.bill_id;
this.$email.value = buyer.email;
this.$method.value = buyer.method[0].toUpperCase() + buyer.method.slice(1);
this.$date.value = buyer.date;
this.$amount.value = buyer.amount;
this.$data.textContent = buyer.data.join('\n');
M.textareaAutoResize(this.$data);
M.updateTextFields();
this.loader.hide();
} catch (error) {
alert('Произошла ошибка, обновите страницу')
}
}
}

View File

@ -106,6 +106,15 @@ class ApiService {
}
}
async getBuyerById(id) {
try {
const request = `${this.url}/api/buyers/${id}`;
return useRequest(request);
} catch (error) {
console.log(error)
}
}
async getBuyersOffset(page) {
try {
const request = `${this.url}/api/buyers/page/${page}`;

View File

@ -1,6 +1,6 @@
export function renderBuyers(buyers) {
if (!buyers.error) {
return buyers.map(buyer => `<tr data-info='{"bill_id": "${buyer.bill_id}", "email": "${buyer.email}", "method": "${buyer.method[0].toUpperCase() + buyer.method.slice(1)}", "date": "${new Date(buyer.date).toLocaleDateString()}", "amount": "${buyer.amount}", "data": "${buyer.data}"}'><td>${buyer.email}</td><td>${buyer.method[0].toUpperCase() + buyer.method.slice(1)}</td><td>${new Date(buyer.date).toLocaleDateString()}</td><td>${buyer.amount} ₽</td><td><button id="billDataOpen" class="btn orange">Данные аккаунтов</button></td></tr>`).join('');
return buyers.map(buyer => `<tr data-id="${buyer.bill_id}"><td>${buyer.email}</td><td>${buyer.method[0].toUpperCase() + buyer.method.slice(1)}</td><td>${new Date(buyer.date).toLocaleDateString()}</td><td>${buyer.amount} ₽</td><td><button id="billDataOpen" class="btn orange">Данные аккаунтов</button></td></tr>`).join('');
} else {
return 'Покупателей в магазине пока что нету';
}