added generators
This commit is contained in:
parent
2d00c781be
commit
096476287f
2
SUBD-front/.vscode/launch.json
vendored
2
SUBD-front/.vscode/launch.json
vendored
@ -5,7 +5,7 @@
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome against localhost",
|
||||
"url": "http://localhost:5174",
|
||||
"url": "http://localhost:5173",
|
||||
"webRoot": "${workspaceFolder}/src"
|
||||
}
|
||||
]
|
||||
|
25
SUBD-front/package-lock.json
generated
25
SUBD-front/package-lock.json
generated
@ -8,10 +8,9 @@
|
||||
"name": "subd-front",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@eonasdan/tempus-dominus": "^6.4.4",
|
||||
"@popperjs/core": "^2.11.7",
|
||||
"axios": "^1.3.6",
|
||||
"bootstrap": "^5.2.3",
|
||||
"email-generator": "^1.0.1",
|
||||
"vue": "^3.2.47",
|
||||
"vue-router": "^4.1.6"
|
||||
},
|
||||
@ -467,22 +466,6 @@
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@eonasdan/tempus-dominus": {
|
||||
"version": "6.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@eonasdan/tempus-dominus/-/tempus-dominus-6.4.4.tgz",
|
||||
"integrity": "sha512-QPxUlu+ZaJR0sERiKx1dRDxuq1NJh1jSZqf+IB7ZNG8CXBL7wOBsYAYEwSu6web3KGdzWlxfRmpgzwtR3EFgSg==",
|
||||
"funding": {
|
||||
"url": "https://ko-fi.com/eonasdan"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@popperjs/core": "^2.11.6"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@popperjs/core\"": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.17.15",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz",
|
||||
@ -893,6 +876,7 @@
|
||||
"version": "2.11.7",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
@ -1246,6 +1230,11 @@
|
||||
"integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/email-generator": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/email-generator/-/email-generator-1.0.1.tgz",
|
||||
"integrity": "sha512-6gEJlVSGn+bhtpypYmdvz+zoZb0oVJgwW/MrFSHEi9P9oBPtVcXBIamIndcvW/75FUuiNQ1mSNoFNMgwSZPHdA=="
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.17.15",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz",
|
||||
|
@ -10,6 +10,7 @@
|
||||
"dependencies": {
|
||||
"axios": "^1.3.6",
|
||||
"bootstrap": "^5.2.3",
|
||||
"email-generator": "^1.0.1",
|
||||
"vue": "^3.2.47",
|
||||
"vue-router": "^4.1.6"
|
||||
},
|
||||
|
191
SUBD-front/src/components/Generator.vue
Normal file
191
SUBD-front/src/components/Generator.vue
Normal file
@ -0,0 +1,191 @@
|
||||
<!-- const emails = require('email-generator'); -->
|
||||
<script>
|
||||
import DataService from '../services/DataService';
|
||||
import Client from '../models/Client';
|
||||
import Driver from '../models/Driver';
|
||||
import Car from '../models/Car';
|
||||
import PickUpPoint from '../models/PickUpPoint';
|
||||
import Order from '../models/Order';
|
||||
import emails from 'email-generator';
|
||||
function generateString(len) {
|
||||
let chrs = 'abdehkmnpswxzABDEFGHKMNPQRSTWXZ123456789';
|
||||
var str = '';
|
||||
for (var i = 0; i < len; i++) {
|
||||
var pos = Math.floor(Math.random() * chrs.length);
|
||||
str += chrs.substring(pos,pos+1);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function generateStatus() {
|
||||
let status = [
|
||||
'accepted',
|
||||
'inDelivery',
|
||||
'delivered',
|
||||
'issued'
|
||||
];
|
||||
return status[Math.floor(Math.random() * status.length)];
|
||||
}
|
||||
function generateDate() {
|
||||
let date = new Date((Math.floor(Math.random() * (2023-1950)) + 1950) + '-' + (Math.floor(Math.random() * (12-1)) + 1) + '-' + (Math.floor(Math.random() * (31-1)) + 1));
|
||||
let result = date.getFullYear() + '-';
|
||||
if (date.getMonth().toString().length == 1) {
|
||||
result += '0' + date.getMonth() + '-';
|
||||
} else {
|
||||
result += date.getMonth() + '-';
|
||||
}
|
||||
if (date.getDate().toString().length == 1) {
|
||||
result += '0' + date.getDate();
|
||||
} else {
|
||||
result += date.getDate();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
data: undefined,
|
||||
transformer: undefined,
|
||||
headers: [
|
||||
{name: 'client', label: 'Клиенты'},
|
||||
{name: 'driver', label: 'Водители'},
|
||||
{name: 'car', label: 'Машины'},
|
||||
{name: 'pickUpPoint', label: 'Пункты выдачи'},
|
||||
{name: 'order', label: 'Заказы'}
|
||||
],
|
||||
drivers: [],
|
||||
cars: [],
|
||||
clients: [],
|
||||
pickUpPoints: [],
|
||||
json: Object
|
||||
}
|
||||
},
|
||||
created() {
|
||||
DataService.readAll('driver', (data) => new Driver(data))
|
||||
.then(data => {
|
||||
this.drivers = data;
|
||||
});
|
||||
DataService.readAll('client', (data) => new Client(data))
|
||||
.then(data => {
|
||||
this.clients = data;
|
||||
});
|
||||
DataService.readAll('pickUpPoint', (data) => new PickUpPoint(data))
|
||||
.then(data => {
|
||||
this.pickUpPoints = data;
|
||||
});
|
||||
DataService.readAll('car', (data) => new Car(data))
|
||||
.then(data => {
|
||||
this.cars = data;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
generateClients() {
|
||||
let count = document.getElementById('clientCount').value;
|
||||
let additionalUrl = "client";
|
||||
var request = new XMLHttpRequest();
|
||||
request.open('GET', '/src/russian_names.json');
|
||||
request.responseType = 'json';
|
||||
request.send();
|
||||
request.onload = function() {
|
||||
var response = request.response;
|
||||
this.json = response;
|
||||
this.data = [];
|
||||
this.transformer = (data) => new Client(data);
|
||||
this.data = this.transformer();
|
||||
for (let i = 0; i < count; i++) {
|
||||
this.data.name = this.json[Math.floor(Math.random() * this.json.length)].Name;
|
||||
this.data.phone = ('+7' + (Math.floor(Math.random() * this.json.length) + 1000000000));
|
||||
this.data.email = emails.generateEmail().split("\"")[1];
|
||||
DataService.create(additionalUrl, this.data);
|
||||
}
|
||||
}
|
||||
},
|
||||
generateDrivers() {
|
||||
let count = document.getElementById('driverCount').value;
|
||||
let additionalUrl = "driver";
|
||||
var request = new XMLHttpRequest();
|
||||
request.open('GET', '/src/russian_names.json');
|
||||
request.responseType = 'json';
|
||||
request.send();
|
||||
request.onload = function() {
|
||||
var response = request.response;
|
||||
this.json = response;
|
||||
this.data = [];
|
||||
this.transformer = (data) => new Driver(data);
|
||||
this.data = this.transformer();
|
||||
for (let i = 0; i < count; i++) {
|
||||
this.data.name = this.json[Math.floor(Math.random() * this.json.length)].Name;
|
||||
this.data.birthday = generateDate();
|
||||
this.data.phone = ('+7' + (Math.floor(Math.random() * this.json.length) + 1000000000));
|
||||
this.data.email = emails.generateEmail().split("\"")[1];
|
||||
DataService.create(additionalUrl, this.data);
|
||||
}
|
||||
}
|
||||
},
|
||||
generateCars() {
|
||||
let count = document.getElementById('carCount').value;
|
||||
let additionalUrl = "car";
|
||||
this.data = [];
|
||||
this.transformer = (data) => new Car(data);
|
||||
this.data = this.transformer();
|
||||
console.log(this.data)
|
||||
for (let i = 0; i < count; i++) {
|
||||
this.data.gosNumber = generateString(6);
|
||||
this.data.vin = generateString(25);
|
||||
this.data.driverId = this.drivers[Math.floor(Math.random() * this.drivers.length)].id;
|
||||
DataService.create(additionalUrl, this.data);
|
||||
}
|
||||
},
|
||||
generatePickUpPoints() {
|
||||
let count = document.getElementById('pickUpPointCount').value;
|
||||
let additionalUrl = "pickUpPoint";
|
||||
this.data = [];
|
||||
this.transformer = (data) => new PickUpPoint(data);
|
||||
this.data = this.transformer();
|
||||
for (let i = 0; i < count; i++) {
|
||||
this.data.address = generateString(50);
|
||||
DataService.create(additionalUrl, this.data);
|
||||
}
|
||||
},
|
||||
generateOrders() {
|
||||
let count = document.getElementById('orderCount').value;
|
||||
let additionalUrl = "order";
|
||||
this.data = [];
|
||||
this.transformer = (data) => new Order(data);
|
||||
this.data = this.transformer();
|
||||
for (let i = 0; i < count; i++) {
|
||||
this.data.value = Math.floor(Math.random() * 10000000);
|
||||
this.data.status = generateStatus();
|
||||
this.data.date = generateDate();
|
||||
this.data.clientId = this.clients[Math.floor(Math.random() * this.clients.length)].id;
|
||||
this.data.sourcePickUpPointId = this.pickUpPoints[Math.floor(Math.random() * this.pickUpPoints.length)].id;
|
||||
this.data.destPickUpPointId = this.pickUpPoints[Math.floor(Math.random() * this.pickUpPoints.length)].id;
|
||||
this.data.carId = this.cars[Math.floor(Math.random() * this.cars.length)].id;
|
||||
DataService.create(additionalUrl, this.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" required id="clientCount" placeholder="Количество клиентов">
|
||||
<button class="btn btn-primary" type="button" @click.prevent="generateClients">Сгенерировать</button>
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" required id="driverCount" placeholder="Количество водителей">
|
||||
<button class="btn btn-primary" type="button" @click.prevent="generateDrivers">Сгенерировать</button>
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" required id="carCount" placeholder="Количество машин">
|
||||
<button class="btn btn-primary" type="button" @click.prevent="generateCars">Сгенерировать</button>
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" required id="pickUpPointCount" placeholder="Количество пунктов выдачи">
|
||||
<button class="btn btn-primary" type="button" @click.prevent="generatePickUpPoints">Сгенерировать</button>
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" required id="orderCount" placeholder="Количество заказов">
|
||||
<button class="btn btn-primary" type="button" @click.prevent="generateOrders">Сгенерировать</button>
|
||||
</div>
|
||||
</template>
|
@ -2,21 +2,13 @@ import { createApp } from 'vue'
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import './style.css'
|
||||
import App from './App.vue'
|
||||
import CatalogOrders from './components/Orders.vue'
|
||||
// import CatalogGroups from './components/CatalogGroups.vue'
|
||||
// import CatalogDisciplines from './components/CatalogDisciplines.vue'
|
||||
// import Reports from './components/Reports.vue'
|
||||
// import ReportGroupStudents from './components/ReportGroupStudents.vue'
|
||||
// import ReportGroupDisciplines from './components/ReportGroupDisciplines.vue'
|
||||
import Orders from './components/Orders.vue'
|
||||
import Generator from './components/Generator.vue'
|
||||
|
||||
const routes = [
|
||||
{ path: '/', redirect: '/orders' },
|
||||
{ path: '/orders', component: CatalogOrders, meta: { label: 'Заказы' }},
|
||||
// { path: '/catalogs/groups', component: CatalogGroups },
|
||||
// { path: '/catalogs/disciplines', component: CatalogDisciplines },
|
||||
// { path: '/reports', component: Reports, meta: { label: 'Отчеты' } },
|
||||
// { path: '/reports/group-students', component: ReportGroupStudents },
|
||||
// { path: '/reports/group-disciplines', component: ReportGroupDisciplines }
|
||||
{ path: '/orders', component: Orders, meta: { label: 'Заказы' }},
|
||||
{ path: '/generator', component: Generator, meta: { label: 'Генератор' }}
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
|
@ -34,11 +34,11 @@ export default class Car {
|
||||
}
|
||||
|
||||
get driverId() {
|
||||
return this._groupId;
|
||||
return this._driverId;
|
||||
}
|
||||
|
||||
set driverId(value) {
|
||||
this._groupId = value;
|
||||
this._driverId = value;
|
||||
}
|
||||
|
||||
get driverName() {
|
||||
|
412234
SUBD-front/src/russian_names.json
Normal file
412234
SUBD-front/src/russian_names.json
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user