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",
|
"type": "pwa-chrome",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"name": "Launch Chrome against localhost",
|
"name": "Launch Chrome against localhost",
|
||||||
"url": "http://localhost:5174",
|
"url": "http://localhost:5173",
|
||||||
"webRoot": "${workspaceFolder}/src"
|
"webRoot": "${workspaceFolder}/src"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
25
SUBD-front/package-lock.json
generated
25
SUBD-front/package-lock.json
generated
@ -8,10 +8,9 @@
|
|||||||
"name": "subd-front",
|
"name": "subd-front",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eonasdan/tempus-dominus": "^6.4.4",
|
|
||||||
"@popperjs/core": "^2.11.7",
|
|
||||||
"axios": "^1.3.6",
|
"axios": "^1.3.6",
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
|
"email-generator": "^1.0.1",
|
||||||
"vue": "^3.2.47",
|
"vue": "^3.2.47",
|
||||||
"vue-router": "^4.1.6"
|
"vue-router": "^4.1.6"
|
||||||
},
|
},
|
||||||
@ -467,22 +466,6 @@
|
|||||||
"node": ">=6.9.0"
|
"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": {
|
"node_modules/@esbuild/android-arm": {
|
||||||
"version": "0.17.15",
|
"version": "0.17.15",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.15.tgz",
|
||||||
@ -893,6 +876,7 @@
|
|||||||
"version": "2.11.7",
|
"version": "2.11.7",
|
||||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||||
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
|
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
|
||||||
|
"peer": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
"url": "https://opencollective.com/popperjs"
|
"url": "https://opencollective.com/popperjs"
|
||||||
@ -1246,6 +1230,11 @@
|
|||||||
"integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==",
|
"integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==",
|
||||||
"dev": true
|
"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": {
|
"node_modules/esbuild": {
|
||||||
"version": "0.17.15",
|
"version": "0.17.15",
|
||||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz",
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.15.tgz",
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.3.6",
|
"axios": "^1.3.6",
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
|
"email-generator": "^1.0.1",
|
||||||
"vue": "^3.2.47",
|
"vue": "^3.2.47",
|
||||||
"vue-router": "^4.1.6"
|
"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 { createRouter, createWebHistory } from 'vue-router'
|
||||||
import './style.css'
|
import './style.css'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import CatalogOrders from './components/Orders.vue'
|
import Orders from './components/Orders.vue'
|
||||||
// import CatalogGroups from './components/CatalogGroups.vue'
|
import Generator from './components/Generator.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'
|
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{ path: '/', redirect: '/orders' },
|
{ path: '/', redirect: '/orders' },
|
||||||
{ path: '/orders', component: CatalogOrders, meta: { label: 'Заказы' }},
|
{ path: '/orders', component: Orders, meta: { label: 'Заказы' }},
|
||||||
// { path: '/catalogs/groups', component: CatalogGroups },
|
{ path: '/generator', component: Generator, meta: { label: 'Генератор' }}
|
||||||
// { path: '/catalogs/disciplines', component: CatalogDisciplines },
|
|
||||||
// { path: '/reports', component: Reports, meta: { label: 'Отчеты' } },
|
|
||||||
// { path: '/reports/group-students', component: ReportGroupStudents },
|
|
||||||
// { path: '/reports/group-disciplines', component: ReportGroupDisciplines }
|
|
||||||
]
|
]
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
|
@ -34,11 +34,11 @@ export default class Car {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get driverId() {
|
get driverId() {
|
||||||
return this._groupId;
|
return this._driverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
set driverId(value) {
|
set driverId(value) {
|
||||||
this._groupId = value;
|
this._driverId = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
get driverName() {
|
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