Browse Source

Merge branch 'dev' of https://gitea.anxinyun.cn/gao.zhiyuan/Highways4Good into dev

release_0.0.4
wangyue 3 years ago
parent
commit
3919e2c358
  1. 114
      api/app/lib/controllers/data/index.js
  2. 5
      api/app/lib/controllers/data/road.js
  3. 6
      api/app/lib/controllers/data/vehicle.js
  4. 29
      api/app/lib/controllers/organization/department.js
  5. 5
      api/app/lib/controllers/overview/management.js
  6. 4
      api/app/lib/controllers/overview/operation.js
  7. 12
      api/app/lib/controllers/report/index.js
  8. 98
      api/app/lib/models/bridge.js
  9. 53
      api/app/lib/models/bus_car.js
  10. 24
      api/app/lib/models/bus_line.js
  11. 30
      api/app/lib/models/municipal_business.js
  12. 41
      api/app/lib/models/municipal_vehicle.js
  13. 19
      api/app/lib/models/overspeed.js
  14. 12
      api/app/lib/models/project.js
  15. 4
      api/app/lib/models/publicity.js
  16. 16
      api/app/lib/models/report.js
  17. 77
      api/app/lib/models/road.js
  18. 4
      api/app/lib/models/statistic.js
  19. 4
      api/app/lib/routes/data/index.js
  20. 1406
      api/log/development.log
  21. 7
      api/package.json
  22. 3
      api/sequelize-automate.config.js
  23. 4
      api/utils/xlsxDownload.js
  24. 60
      api/yarn.lock
  25. BIN
      scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx
  26. 8
      weapp/src/packages/changePassword/index.jsx
  27. 8
      weapp/src/packages/patrol/index.jsx
  28. 3
      weapp/src/packages/patrolView/index.config.js
  29. 66
      weapp/src/packages/patrolView/index.jsx
  30. 33
      weapp/src/pages/home/index.jsx
  31. 10
      weapp/src/pages/home/index.scss
  32. 2
      weapp/src/pages/user/index.jsx
  33. 88
      weapp/src/static/img/home/video-bg.svg
  34. BIN
      weapp/src/static/img/tabbar/shouye-active.png
  35. BIN
      weapp/src/static/img/tabbar/shouye.png
  36. BIN
      weapp/src/static/img/tabbar/wode-active.png
  37. BIN
      weapp/src/static/img/tabbar/wode.png
  38. 25
      web/client/assets/color.less
  39. 4
      web/client/src/components/index.js
  40. 40
      web/client/src/components/simpleFileDownButton.js
  41. 169
      web/client/src/sections/fillion/actions/infor.js
  42. 105
      web/client/src/sections/fillion/components/bridgeTable.js
  43. 40
      web/client/src/sections/fillion/components/gis/patrolGis.js
  44. 106
      web/client/src/sections/fillion/components/highways/highwaysdata.js
  45. 74
      web/client/src/sections/fillion/components/highwaysTable.js
  46. 204
      web/client/src/sections/fillion/components/infor/details.js
  47. 1345
      web/client/src/sections/fillion/components/operationalTable.js
  48. 35
      web/client/src/sections/fillion/components/patrolTable.js
  49. 4
      web/client/src/sections/fillion/components/project/project.js
  50. 1044
      web/client/src/sections/fillion/components/publicTable.js
  51. 172
      web/client/src/sections/fillion/components/transportationTable.js
  52. 4
      web/client/src/sections/fillion/nav-item.js
  53. 53
      web/client/src/sections/quanju/containers/example.js
  54. 189
      web/client/src/sections/quanju/containers/footer/gis/bounds.js
  55. 53
      web/client/src/sections/quanju/containers/footer/gis/gis.js
  56. 59
      web/client/src/sections/quanju/containers/footer/gis/mock_data.js
  57. 20
      web/client/src/sections/quanju/containers/footer/guanli/index.js
  58. 2
      web/client/src/sections/quanju/containers/footer/guanli/style.less
  59. 22
      web/client/src/utils/webapi.js
  60. 645
      web/log/development.txt
  61. 2
      web/package.json

114
api/app/lib/controllers/data/index.js

@ -1,27 +1,101 @@
'use strict'; 'use strict';
const fs = require('fs');
const { simpleExcelDown } = require('../../../../utils/xlsxDownload'); const xlsxDownload = require('../../../../utils/xlsxDownload.js');
const moment = require('moment');
async function dataExport (ctx) { async function dataExport (ctx) {
try { try {
// const models = ctx.fs.dc.models; const models = ctx.fs.dc.models;
// const { userId } = ctx.fs.api const { userId } = ctx.fs.api
// const { ids } = ctx.query; const { exp, ids, roadLevel, municipalType } = ctx.query;
// const exportData = await models.BusCar.destroy({ if (!exp) {
// where: { throw '参数错误';
// id: { $in: ids.split(',') } }
// }
// }) const modalList = [
{
// const fileName = `摄像头信息列表_${userId}_${moment().format('YYYYMMDDHHmmss')}` + '.csv' n: '道路',
// const filePath = await simpleExcelDown({ data: exportData, header, fileName: fileName }) k: 'road',
// const fileData = fs.readFileSync(filePath); tableName: 'Road',
},
// ctx.status = 200; {
// ctx.set('Content-Type', 'application/x-xls'); n: '桥梁',
// ctx.set('Content-disposition', 'attachment; filename=' + encodeURI(fileName)); k: 'bridge',
// ctx.body = fileData; tableName: 'Bridge'
},
{
n: '运政车辆',
k: 'vehicle',
tableName: 'MunicipalVehicle',
},
{
n: '运政业户',
k: 'business',
tableName: 'MunicipalBusiness',
},
{
n: '工程一览',
k: 'project',
tableName: 'Project',
},
{
n: '治超',
k: 'overspeed',
tableName: 'Overspeed',
},
{
n: '公交线路',
k: 'busLine',
tableName: 'BusLine',
},
{
n: '公交车辆',
k: 'busCar',
tableName: 'BusCar',
},
]
const modalOption = modalList.find(item => item.k == exp);
if (!modalOption) {
throw '参数错误';
}
let findOption = {
where: {}
}
if (ids) {
findOption.where.id = { $in: ids.split(',') }
}
if (roadLevel) {
findOption.where.level = roadLevel
}
if (municipalType) {
findOption.where.type = municipalType
}
const exportData = await models[modalOption.tableName].findAll(findOption)
const tableAttributes = models[modalOption.tableName].tableAttributes
let header = []
for (let k in tableAttributes) {
if (k != 'id' && tableAttributes[k].comment) {
header.push({
title: tableAttributes[k].comment || '-',
key: k,
index: tableAttributes[k].index,
})
}
}
header.sort((a, b) => { return a.index - b.index })
const fileName = `${modalOption.n}_${moment().format('YYYYMMDDHHmmss')}` + '.csv'
const filePath = await xlsxDownload.simpleExcelDown({ data: exportData, header, fileName: fileName })
const fileData = fs.readFileSync(filePath);
ctx.status = 200;
ctx.set('Content-Type', 'application/x-xls');
ctx.set('Content-disposition', 'attachment; filename=' + encodeURI(fileName));
ctx.body = fileData;
} catch (error) { } catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400; ctx.status = 400;

5
api/app/lib/controllers/data/road.js

@ -48,9 +48,8 @@ async function get (ctx) {
if (road || sectionStart || sectionEnd) { if (road || sectionStart || sectionEnd) {
findOption.where['$or'] = {} findOption.where['$or'] = {}
if (road) { if (road) {
findOption.where['$or'].push = { findOption.where['$or'].
routeName: { $like: `%${road}%` } routeName = { $like: `%${road}%` }
}
} }
if (sectionStart) { if (sectionStart) {
findOption.where['$or']. findOption.where['$or'].

6
api/app/lib/controllers/data/vehicle.js

@ -115,9 +115,9 @@ async function specificEdit (ctx) {
const data = ctx.request.body; const data = ctx.request.body;
if (!data.vehicleId) { if (!data.vehicleId) {
const vehicleRes = await models.Vehicle.create(data) const vehicleRes = await models.MunicipalVehicle.create(data)
} else { } else {
const vehicleRes = await models.Vehicle.update(data, { const vehicleRes = await models.MunicipalVehicle.update(data, {
where: { where: {
id: data.vehicleId id: data.vehicleId
} }
@ -139,7 +139,7 @@ async function specificDel (ctx) {
const models = ctx.fs.dc.models; const models = ctx.fs.dc.models;
const { vehicleId } = ctx.params; const { vehicleId } = ctx.params;
const vehicleRes = await models.Vehicle.destroy({ const vehicleRes = await models.MunicipalVehicle.destroy({
where: { where: {
id: vehicleId id: vehicleId
} }

29
api/app/lib/controllers/organization/department.js

@ -59,14 +59,20 @@ async function editDep (ctx) {
}, },
}) })
if (!dep) { if (!dep) {
ctx.status = 400; throw "上级部门不存在"
ctx.body = {
"message": "上级部门不存在"
}
return
} }
} }
if (depId) { if (depId) {
const repeatNameCount = await models.Department.count({
where: {
dependence: dependence || null,
name: name,
id: { $ne: depId },
}
})
if (repeatNameCount) {
throw "部门名称重复"
}
await models.Department.update({ await models.Department.update({
name: name, name: name,
dependence: dependence || null, dependence: dependence || null,
@ -76,6 +82,15 @@ async function editDep (ctx) {
} }
}) })
} else { } else {
const repeatNameCount = await models.Department.count({
where: {
dependence: dependence || null,
name: name,
}
})
if (repeatNameCount) {
throw '部门名称重复'
}
await models.Department.create({ await models.Department.create({
name: name, name: name,
delete: false, delete: false,
@ -86,7 +101,9 @@ async function editDep (ctx) {
} catch (error) { } catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400; ctx.status = 400;
ctx.body = {} ctx.body = {
message: typeof error == 'string' ? error : undefined
}
} }
} }

5
api/app/lib/controllers/overview/management.js

@ -10,6 +10,11 @@ async function overSpeedList (ctx) {
attributes: ['id', 'licensePlate', 'overrunRate', 'deductPoints', 'fine', 'processingTime', 'testTime'], attributes: ['id', 'licensePlate', 'overrunRate', 'deductPoints', 'fine', 'processingTime', 'testTime'],
order: [['testTime', 'DESC']], order: [['testTime', 'DESC']],
limit: limit || 120, limit: limit || 120,
where: {
processingTime: { $ne: null },
testTime: { $ne: null },
},
order: [['testTime', 'DESC']],
}) })
const overSpeedProcessedCount = await models.Overspeed.count({ const overSpeedProcessedCount = await models.Overspeed.count({

4
api/app/lib/controllers/overview/operation.js

@ -7,10 +7,10 @@ async function busCarLevelList (ctx) {
let data = [] let data = []
const busCarRes = await models.BusCar.findAll({ const busCarRes = await models.BusCar.findAll({
attributes: ['id', 'company', 'fleet', 'vehicleLicensePlateNumber'], attributes: ['id', 'company', 'fleet', 'vehicleLicensePlateNumber', 'line'],
}) })
for (let c of busCarRes) { for (let c of busCarRes) {
const { company, fleet } = c const { company, fleet, line } = c
const corCompany = data.find(d => d.name === company) const corCompany = data.find(d => d.name === company)
if (!corCompany) { if (!corCompany) {
data.push({ data.push({

12
api/app/lib/controllers/report/index.js

@ -4,7 +4,7 @@ const { QueryTypes } = require('sequelize');
async function reportList(ctx) { async function reportList(ctx) {
try { try {
const models = ctx.fs.dc.models; const models = ctx.fs.dc.models;
const { limit, page, startTime, endTime, keyword, userId, reportType } = ctx.query const { limit, page, startTime, endTime, keyword, userId, reportType, isTop } = ctx.query
let findOption = { let findOption = {
where: { where: {
@ -39,7 +39,15 @@ async function reportList (ctx) {
if (reportType) { if (reportType) {
findOption.where.reportType = reportType findOption.where.reportType = reportType
} }
const reportRes = await models.Report.findAll(findOption) let reportRes = null;
if (isTop) {
const sqlStr = 'select * from (SELECT R.*, "row_number"() OVER(PARTITION BY R.user_id ORDER BY R."time" DESC) AS NEWINDEX FROM report AS R ) AS NR WHERE NEWINDEX = 1'
const sequelize = ctx.fs.dc.orm;
reportRes = await sequelize.query(sqlStr, { type: QueryTypes.SELECT });
} else {
reportRes = await models.Report.findAll(findOption)
}
ctx.status = 200; ctx.status = 200;
ctx.body = reportRes ctx.body = reportRes

98
api/app/lib/models/bridge.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Bridge = sequelize.define("bridge", { const Bridge = sequelize.define("bridge", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "bridge_id_uindex" unique: "bridge_id_uindex"
}, },
bridgeCode: { bridgeCode: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeName: { bridgeName: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
centralStation: { centralStation: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
crossingFigureType: { crossingFigureType: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
crossingFigureName: { crossingFigureName: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfCharges: { natureOfCharges: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
rampCode: { rampCode: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sectionType: { sectionType: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
crossingFigureType1: { crossingFigureType1: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
crossingFigureName1: { crossingFigureName1: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
originalBridgeCode: { originalBridgeCode: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherWideRoadAndNarrowBridge: { whetherWideRoadAndNarrowBridge: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
isItInTheDirectoryOfLongAndLongBridges: { isItInTheDirectoryOfLongAndLongBridges: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherItIsACrossProvincialBridge: { whetherItIsACrossProvincialBridge: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
interworkingType: { interworkingType: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
interworkingForm: { interworkingForm: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
interworkingAndCrossoverMode: { interworkingAndCrossoverMode: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeClassification: { bridgeClassification: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalLengthOfBridge: { totalLengthOfBridge: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalSpanLength: { totalSpanLength: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
mainSpanOfMainBridge: { mainSpanOfMainBridge: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfMainBridgeHoles: { numberOfMainBridgeHoles: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination: { spanCombination: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -223,6 +247,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeProperties: { bridgeProperties: {
index: 25,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -232,6 +257,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
designLoadClass: { designLoadClass: {
index: 26,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -241,6 +267,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
superstructure: { superstructure: {
index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -250,6 +277,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
superstructureMaterials: { superstructureMaterials: {
index: 28,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -259,6 +287,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeDeckPavementType: { bridgeDeckPavementType: {
index: 29,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -268,6 +297,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeDeckWidth: { bridgeDeckWidth: {
index: 30,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -277,6 +307,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
clearWidthOfBridgeDeck: { clearWidthOfBridgeDeck: {
index: 31,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -286,6 +317,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
clearanceUnderBridge: { clearanceUnderBridge: {
index: 32,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -295,6 +327,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
seismicGrade: { seismicGrade: {
index: 33,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -304,6 +337,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
navigationClass: { navigationClass: {
index: 34,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -313,6 +347,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
abutmentType: { abutmentType: {
index: 35,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -322,6 +357,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
pierType: { pierType: {
index: 36,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -331,6 +367,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
typesOfPierAndAbutmentAntiCollisionFacilities: { typesOfPierAndAbutmentAntiCollisionFacilities: {
index: 37,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -340,6 +377,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
expansionJointType: { expansionJointType: {
index: 38,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -349,6 +387,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
supportType: { supportType: {
index: 39,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -358,6 +397,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
characteristicsOfCurvedSlope: { characteristicsOfCurvedSlope: {
index: 40,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -367,6 +407,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
bridgeHeight: { bridgeHeight: {
index: 41,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -376,6 +417,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sidewalkWidth: { sidewalkWidth: {
index: 42,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -385,6 +427,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
constructionUnit: { constructionUnit: {
index: 43,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -394,6 +437,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
completionTime: { completionTime: {
index: 44,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -403,6 +447,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
openingDate: { openingDate: {
index: 45,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -412,6 +457,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reconstructionTime: { reconstructionTime: {
index: 46,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -421,6 +467,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalCost: { totalCost: {
index: 47,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -430,6 +477,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfDesignUnit: { nameOfDesignUnit: {
index: 48,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -439,6 +487,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfConstructionUnit: { nameOfConstructionUnit: {
index: 49,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -448,6 +497,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfSupervisionUnit: { nameOfSupervisionUnit: {
index: 50,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -457,6 +507,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfConstruction: { natureOfConstruction: {
index: 51,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -466,6 +517,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
evaluationDate: { evaluationDate: {
index: 52,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -475,6 +527,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
technicalConditionEvaluation: { technicalConditionEvaluation: {
index: 53,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -484,6 +537,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
assessmentUnit: { assessmentUnit: {
index: 54,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -493,6 +547,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
locationOfMajorDiseases: { locationOfMajorDiseases: {
index: 55,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -502,6 +557,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
diseaseDescription: { diseaseDescription: {
index: 56,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -511,6 +567,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
takeControlMeasures: { takeControlMeasures: {
index: 57,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -520,6 +577,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfLastPeriodicInspection: { dateOfLastPeriodicInspection: {
index: 58,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -529,6 +587,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfManagementAndMaintenanceUnit: { natureOfManagementAndMaintenanceUnit: {
index: 59,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -538,6 +597,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
managementAndMaintenanceUnit: { managementAndMaintenanceUnit: {
index: 60,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -547,6 +607,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
supervisionUnit: { supervisionUnit: {
index: 61,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -556,6 +617,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reconstructionConstructionUnit: { reconstructionConstructionUnit: {
index: 62,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -565,6 +627,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherItIsASubsidyProjectOfTheMinistry: { whetherItIsASubsidyProjectOfTheMinistry: {
index: 63,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -574,6 +637,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
engineeringProperties: { engineeringProperties: {
index: 64,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -583,6 +647,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reconstructionPart: { reconstructionPart: {
index: 65,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -592,6 +657,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
modificationCompletionDate: { modificationCompletionDate: {
index: 66,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -601,6 +667,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
year1: { year1: {
index: 67,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -610,6 +677,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination1: { spanCombination1: {
index: 68,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -619,6 +687,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment1: { investment1: {
index: 69,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -628,6 +697,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
year2: { year2: {
index: 70,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -637,6 +707,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination2: { spanCombination2: {
index: 71,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -646,6 +717,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment2: { investment2: {
index: 72,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -655,6 +727,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
year3: { year3: {
index: 73,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -664,6 +737,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination3: { spanCombination3: {
index: 74,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -673,6 +747,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment3: { investment3: {
index: 75,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -682,6 +757,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
year4: { year4: {
index: 76,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -691,6 +767,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination4: { spanCombination4: {
index: 77,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -700,6 +777,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment4: { investment4: {
index: 78,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -709,6 +787,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
year5: { year5: {
index: 79,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -718,6 +797,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
spanCombination5: { spanCombination5: {
index: 80,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -727,6 +807,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment5: { investment5: {
index: 81,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -736,6 +817,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedFundCategory: { plannedFundCategory: {
index: 82,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -745,6 +827,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedYear: { plannedYear: {
index: 83,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -754,6 +837,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planDocumentNo: { planDocumentNo: {
index: 84,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -763,6 +847,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planItemUniqueCode: { planItemUniqueCode: {
index: 85,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -772,6 +857,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedProjectType: { plannedProjectType: {
index: 86,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -781,6 +867,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planProjectName: { planProjectName: {
index: 87,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -790,6 +877,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
completionStatus: { completionStatus: {
index: 88,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -799,6 +887,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
yearOfCompletion: { yearOfCompletion: {
index: 89,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -808,6 +897,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reasonForChange: { reasonForChange: {
index: 90,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -817,6 +907,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
changeTime: { changeTime: {
index: 91,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -826,6 +917,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reportingUnit: { reportingUnit: {
index: 92,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -835,6 +927,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
remarks: { remarks: {
index: 93,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -844,6 +937,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherOverpassBridge: { whetherOverpassBridge: {
index: 94,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -853,6 +947,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
offLineBridgeOrNot: { offLineBridgeOrNot: {
index: 95,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -862,6 +957,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherDangerousBridgeReconstruction: { whetherDangerousBridgeReconstruction: {
index: 96,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -871,6 +967,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
districtcounty: { districtcounty: {
index: 97,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -880,6 +977,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
locationCity: { locationCity: {
index: 98,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

53
api/app/lib/models/bus_car.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const BusCar = sequelize.define("busCar", { const BusCar = sequelize.define("busCar", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "bus_car_id_uindex" unique: "bus_car_id_uindex"
}, },
company: { company: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fleet: { fleet: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
line: { line: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleNumber: { vehicleNumber: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleLicensePlateNumber: { vehicleLicensePlateNumber: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
operationCategory: { operationCategory: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
serviceLife: { serviceLife: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
engineModel: { engineModel: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleModel: { vehicleModel: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleCategory: { vehicleCategory: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleStatus: { vehicleStatus: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfEntry: { dateOfEntry: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
purchaseDate: { purchaseDate: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
energyConsumptionType: { energyConsumptionType: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfStandardUnits: { numberOfStandardUnits: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
maintenanceUnit: { maintenanceUnit: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleType: { vehicleType: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
brandAndModel: { brandAndModel: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
manufacturer: { manufacturer: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
drivingLicenseNo: { drivingLicenseNo: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
engineNumber: { engineNumber: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
mainEnergyConsumption: { mainEnergyConsumption: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
secondaryEnergyConsumption: { secondaryEnergyConsumption: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -223,6 +247,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
emissionStandard: { emissionStandard: {
index: 25,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -232,6 +257,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startDate: { startDate: {
index: 26,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -241,6 +267,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lastTransferDate: { lastTransferDate: {
index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -250,6 +277,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
conductor: { conductor: {
index: 28,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -259,6 +287,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleWidth: { vehicleWidth: {
index: 29,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -268,6 +297,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
carHeight: { carHeight: {
index: 30,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -277,6 +307,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
approvedPassengerCapacity: { approvedPassengerCapacity: {
index: 31,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -286,6 +317,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleIdentificationNumber: { vehicleIdentificationNumber: {
index: 32,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -295,6 +327,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
gearboxBrand: { gearboxBrand: {
index: 33,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -304,6 +337,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
manualCarWashingFee: { manualCarWashingFee: {
index: 34,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -313,6 +347,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
laborCost: { laborCost: {
index: 35,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -322,6 +357,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
curbWeight: { curbWeight: {
index: 36,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -331,6 +367,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalMass: { totalMass: {
index: 37,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -340,6 +377,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
airConditioningTemperature: { airConditioningTemperature: {
index: 38,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -349,6 +387,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
airConditionedCarOrNot: { airConditionedCarOrNot: {
index: 39,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -358,6 +397,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
turnOnTheAirConditioningTemperature: { turnOnTheAirConditioningTemperature: {
index: 40,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -367,6 +407,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
power: { power: {
index: 41,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -376,6 +417,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
transmission: { transmission: {
index: 42,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -385,6 +427,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
seatingCapacity: { seatingCapacity: {
index: 43,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -394,6 +437,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
airConditioningBrand: { airConditioningBrand: {
index: 44,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -403,6 +447,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
seatType: { seatType: {
index: 45,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -412,6 +457,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
tireSpecifications: { tireSpecifications: {
index: 46,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -421,6 +467,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
roadTransportCertificateNo: { roadTransportCertificateNo: {
index: 47,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -430,6 +477,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
parkingPoint: { parkingPoint: {
index: 48,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -439,6 +487,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
carWashingType: { carWashingType: {
index: 49,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -448,6 +497,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
maintenanceFreeWheelEnd: { maintenanceFreeWheelEnd: {
index: 50,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -457,6 +507,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
firstGuaranteeDate: { firstGuaranteeDate: {
index: 51,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -466,6 +517,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfRenovation: { dateOfRenovation: {
index: 52,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -475,6 +527,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
motorVehicleOwner: { motorVehicleOwner: {
index: 53,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

24
api/app/lib/models/bus_line.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const BusLine = sequelize.define("busLine", { const BusLine = sequelize.define("busLine", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "bus_line_id_uindex" unique: "bus_line_id_uindex"
}, },
company: { company: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fleet: { fleet: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
carCaptain: { carCaptain: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
assistantCarCaptain: { assistantCarCaptain: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
officeLocation: { officeLocation: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lineName: { lineName: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lineType: { lineType: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lineDivision: { lineDivision: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
gpsNumber: { gpsNumber: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startingPointEndPoint: { startingPointEndPoint: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfVehicles: { numberOfVehicles: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalKilometers: { totalKilometers: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
ticketPrice: { ticketPrice: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
openingTime: { openingTime: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
runningTime: { runningTime: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
openingTimeSummer: { openingTimeSummer: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
shiftClosingTimeSummer: { shiftClosingTimeSummer: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
openingTimeWinter: { openingTimeWinter: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
shiftClosingTimeWinter: { shiftClosingTimeWinter: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
uplinkOfStationsAlongTheWay: { uplinkOfStationsAlongTheWay: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
downlinkOfStationsAlongTheWay: { downlinkOfStationsAlongTheWay: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
area: { area: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
remarks: { remarks: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

30
api/app/lib/models/municipal_business.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const MunicipalBusiness = sequelize.define("municipalBusiness", { const MunicipalBusiness = sequelize.define("municipalBusiness", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "municipal_business_id_uindex" unique: "municipal_business_id_uindex"
}, },
nameOfBusinessOwner: { nameOfBusinessOwner: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
productName: { productName: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
creditSocialCode: { creditSocialCode: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
administrativeDivision: { administrativeDivision: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
economicNature: { economicNature: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
address: { address: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
contactNumber: { contactNumber: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
email: { email: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
legalRepresentative: { legalRepresentative: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
typeOfLegalPersonCertificate: { typeOfLegalPersonCertificate: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfTransportation: { natureOfTransportation: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
legalPersonCertificateNumber: { legalPersonCertificateNumber: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
telephoneNumberOfLegalRepresentative: { telephoneNumberOfLegalRepresentative: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfThePersonInChargeOfTheBusiness: { nameOfThePersonInChargeOfTheBusiness: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
telephoneNumberOfThePersonInChargeOfTheBusiness: { telephoneNumberOfThePersonInChargeOfTheBusiness: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
handledBy: { handledBy: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
phoneNumberOfHandler: { phoneNumberOfHandler: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfBusiness: { natureOfBusiness: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
businessStatus: { businessStatus: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
businessLicenseNo: { businessLicenseNo: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fromTheExpiryDate: { fromTheExpiryDate: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
expiryDate: { expiryDate: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
issuingAuthority: { issuingAuthority: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -223,6 +247,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfIssuance: { dateOfIssuance: {
index: 25,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -232,6 +257,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
licenseCategory: { licenseCategory: {
index: 26,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -241,6 +267,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
licenseIssuanceType: { licenseIssuanceType: {
index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -250,6 +277,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfSharedVehicles: { numberOfSharedVehicles: {
index: 28,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -259,6 +287,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
creationDate: { creationDate: {
index: 29,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -268,6 +297,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
type: { type: {
index: 30,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,

41
api/app/lib/models/municipal_vehicle.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const MunicipalVehicle = sequelize.define("municipalVehicle", { const MunicipalVehicle = sequelize.define("municipalVehicle", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "municipal_vehicle_id_uindex" unique: "municipal_vehicle_id_uindex"
}, },
nameOfBusinessOwner: { nameOfBusinessOwner: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
productName: { productName: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleRegistry: { vehicleRegistry: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
licensePlateNumber: { licensePlateNumber: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fuelType: { fuelType: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
address: { address: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
economicNature: { economicNature: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
approvedPassengerCapacity: { approvedPassengerCapacity: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
approvedLoadMass: { approvedLoadMass: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfVehicleAxles: { numberOfVehicleAxles: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleBrand: { vehicleBrand: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfBusiness: { natureOfBusiness: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleOperationStatus: { vehicleOperationStatus: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
busTypeAndClass: { busTypeAndClass: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
annualReviewResults: { annualReviewResults: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfThisAnnualReview: { dateOfThisAnnualReview: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfNextAnnualReview: { dateOfNextAnnualReview: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
dateOfRegistration: { dateOfRegistration: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sourceOfTransportationCapacity: { sourceOfTransportationCapacity: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fromTheExpiryDate: { fromTheExpiryDate: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
expiryDate: { expiryDate: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
engineDisplacement: { engineDisplacement: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
engineNumber: { engineNumber: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -223,6 +247,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleEnginePower: { vehicleEnginePower: {
index: 25,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -232,6 +257,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
businessLicenseNo: { businessLicenseNo: {
index: 26,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -241,6 +267,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
licensePlateColor: { licensePlateColor: {
index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -250,6 +277,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalVehicleMass: { totalVehicleMass: {
index: 28,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -259,6 +287,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
totalQuasiTractionMassOfVehicle: { totalQuasiTractionMassOfVehicle: {
index: 29,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -268,6 +297,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
roadTransportCertificateNo: { roadTransportCertificateNo: {
index: 30,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -277,6 +307,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleHeight: { vehicleHeight: {
index: 31,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -286,6 +317,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleConductor: { vehicleConductor: {
index: 32,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -295,6 +327,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleWidth: { vehicleWidth: {
index: 33,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -304,6 +337,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleType: { vehicleType: {
index: 34,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -313,6 +347,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleTypeWithDrivingLicense: { vehicleTypeWithDrivingLicense: {
index: 35,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -322,6 +357,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleWheelbase: { vehicleWheelbase: {
index: 36,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -331,6 +367,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
ratingDate: { ratingDate: {
index: 37,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -340,6 +377,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
technicalEvaluationGrade: { technicalEvaluationGrade: {
index: 38,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -349,6 +387,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nextRatingDate: { nextRatingDate: {
index: 39,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -358,6 +397,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
creationDate: { creationDate: {
index: 40,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -367,6 +407,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
type: { type: {
index: 41,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,

19
api/app/lib/models/overspeed.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Overspeed = sequelize.define("overspeed", { const Overspeed = sequelize.define("overspeed", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "overspeed_id_uindex" unique: "overspeed_id_uindex"
}, },
districtcounty: { districtcounty: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfInspectionPoint: { nameOfInspectionPoint: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
licensePlate: { licensePlate: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfAxles: { numberOfAxles: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
overrunRate: { overrunRate: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
overrunWeight: { overrunWeight: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
grossVehicleWeight: { grossVehicleWeight: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
vehicleCargoWeightLimit: { vehicleCargoWeightLimit: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
testTime: { testTime: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
nameOfBusinessOwner: { nameOfBusinessOwner: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
businessAddress: { businessAddress: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
notifier: { notifier: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
notificationMethod: { notificationMethod: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
notificationResults: { notificationResults: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
processingTime: { processingTime: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
deductPoints: { deductPoints: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
fine: { fine: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
remarks: { remarks: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

12
api/app/lib/models/project.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Project = sequelize.define("project", { const Project = sequelize.define("project", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "project_id_uindex" unique: "project_id_uindex"
}, },
entryName: { entryName: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
projectMileage: { projectMileage: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
investment: { investment: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
buildUnit: { buildUnit: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
constructionControlUnit: { constructionControlUnit: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
designUnit: { designUnit: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
constructionUnit: { constructionUnit: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
supervisorAndSupervisor: { supervisorAndSupervisor: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
projectProgress: { projectProgress: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
done: { done: {
index: 11,
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
type: { type: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,

4
api/app/lib/models/publicity.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Publicity = sequelize.define("publicity", { const Publicity = sequelize.define("publicity", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "publicity_id_uindex" unique: "publicity_id_uindex"
}, },
name: { name: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
video: { video: {
index: 3,
type: DataTypes.ARRAY(DataTypes.INTEGER), type: DataTypes.ARRAY(DataTypes.INTEGER),
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
enable: { enable: {
index: 4,
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
allowNull: false, allowNull: false,
defaultValue: true, defaultValue: true,

16
api/app/lib/models/report.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Report = sequelize.define("report", { const Report = sequelize.define("report", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "report_id_uindex" unique: "report_id_uindex"
}, },
reportType: { reportType: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
projectType: { projectType: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
road: { road: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
roadSectionStart: { roadSectionStart: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
roadSectionEnd: { roadSectionEnd: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
longitude: { longitude: {
index: 7,
type: DataTypes.DOUBLE, type: DataTypes.DOUBLE,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
latitude: { latitude: {
index: 8,
type: DataTypes.DOUBLE, type: DataTypes.DOUBLE,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
content: { content: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
scenePic: { scenePic: {
index: 10,
type: DataTypes.ARRAY(DataTypes.STRING), type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
conserveBeforePic: { conserveBeforePic: {
index: 11,
type: DataTypes.ARRAY(DataTypes.STRING), type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
conserveUnderwayPic: { conserveUnderwayPic: {
index: 12,
type: DataTypes.ARRAY(DataTypes.STRING), type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
conserveAfterPic: { conserveAfterPic: {
index: 13,
type: DataTypes.ARRAY(DataTypes.STRING), type: DataTypes.ARRAY(DataTypes.STRING),
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
userId: { userId: {
index: 14,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
time: { time: {
index: 15,
type: DataTypes.DATE, type: DataTypes.DATE,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
address: { address: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

77
api/app/lib/models/road.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Road = sequelize.define("road", { const Road = sequelize.define("road", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "road_id_uindex" unique: "road_id_uindex"
}, },
routeName: { routeName: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
routeCode: { routeCode: {
index: 3,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sectionNo: { sectionNo: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -43,6 +47,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
townshipCode: { townshipCode: {
index: 5,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -52,6 +57,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startingPlaceName: { startingPlaceName: {
index: 6,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -61,6 +67,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startStation: { startStation: {
index: 7,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -70,6 +77,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
categoryOfStartingPointAndDividingPoint: { categoryOfStartingPointAndDividingPoint: {
index: 8,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -79,6 +87,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
stopPlaceName: { stopPlaceName: {
index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -88,6 +97,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
categoryOfDeadCenterAndDividingPoint: { categoryOfDeadCenterAndDividingPoint: {
index: 10,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -97,6 +107,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
stopStation: { stopStation: {
index: 11,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -106,6 +117,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sectionType: { sectionType: {
index: 12,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -115,6 +127,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
routeCodeBeforeRoadNetworkAdjustment: { routeCodeBeforeRoadNetworkAdjustment: {
index: 13,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -124,6 +137,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
serialNumberOfOriginalSection: { serialNumberOfOriginalSection: {
index: 14,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -133,6 +147,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startingStakeNumberOfTheOriginalRoadSection: { startingStakeNumberOfTheOriginalRoadSection: {
index: 15,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -142,6 +157,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
endingPointStakeNoOfTheOriginalRoadSection: { endingPointStakeNoOfTheOriginalRoadSection: {
index: 16,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -151,6 +167,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
routeLevel: { routeLevel: {
index: 17,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -160,6 +177,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfRoadSection: { natureOfRoadSection: {
index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -169,6 +187,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
completionTime: { completionTime: {
index: 19,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -178,6 +197,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reconstructionTime: { reconstructionTime: {
index: 20,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -187,6 +207,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfConstruction: { natureOfConstruction: {
index: 21,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -196,6 +217,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
gbmAndCivilizedModelRoad: { gbmAndCivilizedModelRoad: {
index: 22,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -205,6 +227,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
landforms: { landforms: {
index: 23,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -214,6 +237,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
natureOfCharges: { natureOfCharges: {
index: 24,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -223,6 +247,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
tollStation: { tollStation: {
index: 25,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -232,6 +257,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
numberOfCulverts: { numberOfCulverts: {
index: 26,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -241,6 +267,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
technicalLevel: { technicalLevel: {
index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -250,6 +277,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
pavementType: { pavementType: {
index: 28,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -259,6 +287,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
pavementWidth: { pavementWidth: {
index: 29,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -268,6 +297,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
subgradeWidth: { subgradeWidth: {
index: 30,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -277,6 +307,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
laneCharacteristics: { laneCharacteristics: {
index: 31,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -286,6 +317,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherItIsOpenToTrafficInSunnyOrRainyDays: { whetherItIsOpenToTrafficInSunnyOrRainyDays: {
index: 32,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -295,6 +327,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
designSpeedPerHour: { designSpeedPerHour: {
index: 33,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -304,6 +337,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
urbanManagementSectionOrNot: { urbanManagementSectionOrNot: {
index: 34,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -313,6 +347,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
managementAndMaintenanceUnit: { managementAndMaintenanceUnit: {
index: 35,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -322,6 +357,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
roadAdministrationUnit: { roadAdministrationUnit: {
index: 36,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -331,6 +367,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
alimentation: { alimentation: {
index: 37,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -340,6 +377,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
sourceOfListedMaintenanceFunds: { sourceOfListedMaintenanceFunds: {
index: 38,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -349,6 +387,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
curingTime: { curingTime: {
index: 39,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -358,6 +397,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
greeningMileage: { greeningMileage: {
index: 40,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -367,6 +407,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
greeningMileaged: { greeningMileaged: {
index: 41,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -376,6 +417,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
typeOfRepeatedRoadSection: { typeOfRepeatedRoadSection: {
index: 42,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -385,6 +427,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
serialNumberOfRepeatedSection: { serialNumberOfRepeatedSection: {
index: 43,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -394,6 +437,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
repeatedSectionRouteCode: { repeatedSectionRouteCode: {
index: 44,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -403,6 +447,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedFundCategory: { plannedFundCategory: {
index: 45,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -412,6 +457,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedYear: { plannedYear: {
index: 46,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -421,6 +467,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planDocumentNo: { planDocumentNo: {
index: 47,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -430,6 +477,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planItemUniqueCode: { planItemUniqueCode: {
index: 48,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -439,6 +487,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedProjectRouteCode: { plannedProjectRouteCode: {
index: 49,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -448,6 +497,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planProjectName: { planProjectName: {
index: 50,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -457,6 +507,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedProjectType: { plannedProjectType: {
index: 51,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -466,6 +517,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
completionStatus: { completionStatus: {
index: 52,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -475,6 +527,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
yearOfCompletion: { yearOfCompletion: {
index: 53,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -484,6 +537,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedFundCategoryOne: { plannedFundCategoryOne: {
index: 54,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -493,6 +547,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
plannedYearOne: { plannedYearOne: {
index: 55,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -502,6 +557,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planDocumentNoOne: { planDocumentNoOne: {
index: 56,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -511,6 +567,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planItemUniqueCodeOne: { planItemUniqueCodeOne: {
index: 57,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -520,6 +577,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
planProjectNameOne: { planProjectNameOne: {
index: 58,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -529,6 +587,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
completionStatusOne: { completionStatusOne: {
index: 59,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -538,6 +597,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
yearOfCompletionOne: { yearOfCompletionOne: {
index: 60,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -547,6 +607,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
stationRange: { stationRange: {
index: 61,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -556,6 +617,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reportingUnit: { reportingUnit: {
index: 62,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -565,6 +627,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
reasonForChange: { reasonForChange: {
index: 63,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -574,6 +637,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
changeTime: { changeTime: {
index: 64,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -583,6 +647,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lastRepairAndMaintenanceYear: { lastRepairAndMaintenanceYear: {
index: 65,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -592,6 +657,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
whetherMaintenanceManagedHighway: { whetherMaintenanceManagedHighway: {
index: 66,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -601,6 +667,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
remarks: { remarks: {
index: 67,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -610,6 +677,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
routeCodeOfLastYear: { routeCodeOfLastYear: {
index: 68,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -619,6 +687,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
routeNameOfLastYear: { routeNameOfLastYear: {
index: 69,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -628,6 +697,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
startingStationOfLastYear: { startingStationOfLastYear: {
index: 70,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -637,6 +707,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
lastYearsEndingPointStakeNumber: { lastYearsEndingPointStakeNumber: {
index: 71,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -646,6 +717,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
graphicMileage: { graphicMileage: {
index: 72,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -655,6 +727,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
chainageMileage: { chainageMileage: {
index: 73,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -664,6 +737,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
districtcounty: { districtcounty: {
index: 74,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -673,6 +747,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
locationCity: { locationCity: {
index: 75,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -682,6 +757,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
level: { level: {
index: 76,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
@ -691,6 +767,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
surfaceThickness: { surfaceThickness: {
index: 77,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,

4
api/app/lib/models/statistic.js

@ -6,6 +6,7 @@ module.exports = dc => {
const sequelize = dc.orm; const sequelize = dc.orm;
const Statistic = sequelize.define("statistic", { const Statistic = sequelize.define("statistic", {
id: { id: {
index: 1,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -16,6 +17,7 @@ module.exports = dc => {
unique: "vehicle_id_uindex" unique: "vehicle_id_uindex"
}, },
name: { name: {
index: 2,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,
@ -25,6 +27,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
count: { count: {
index: 3,
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
defaultValue: "0", defaultValue: "0",
@ -34,6 +37,7 @@ module.exports = dc => {
autoIncrement: false autoIncrement: false
}, },
type: { type: {
index: 4,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
defaultValue: null, defaultValue: null,

4
api/app/lib/routes/data/index.js

@ -7,13 +7,13 @@ const project = require('../../controllers/data/project');
const overspeed = require('../../controllers/data/overspeed'); const overspeed = require('../../controllers/data/overspeed');
const bus = require('../../controllers/data/bus'); const bus = require('../../controllers/data/bus');
const publicity = require('../../controllers/data/publicity'); const publicity = require('../../controllers/data/publicity');
const data = require('../../controllers/data'); const dataIndex = require('../../controllers/data/index');
module.exports = function (app, router, opts) { module.exports = function (app, router, opts) {
// 数据导出 // 数据导出
app.fs.api.logAttr['GET/data/export'] = { content: '导出数据', visible: true }; app.fs.api.logAttr['GET/data/export'] = { content: '导出数据', visible: true };
router.get('/data/export', data.dataExport); router.get('/data/export', dataIndex.dataExport);
// 运政 // 运政
//客运车 //客运车

1406
api/log/development.log

File diff suppressed because it is too large

7
api/package.json

@ -17,6 +17,7 @@
"archiver": "3.0.0", "archiver": "3.0.0",
"args": "^3.0.7", "args": "^3.0.7",
"async-busboy": "^0.7.0", "async-busboy": "^0.7.0",
"better-xlsx": "^0.7.6",
"crypto-js": "^4.0.0", "crypto-js": "^4.0.0",
"file-saver": "^2.0.2", "file-saver": "^2.0.2",
"fs-web-server-scaffold": "^2.0.2", "fs-web-server-scaffold": "^2.0.2",
@ -24,6 +25,7 @@
"kafka-node": "^2.2.3", "kafka-node": "^2.2.3",
"koa-convert": "^1.2.0", "koa-convert": "^1.2.0",
"koa-proxy": "^0.9.0", "koa-proxy": "^0.9.0",
"koa2-swagger-ui": "^5.3.0",
"md5-node": "^1.0.1", "md5-node": "^1.0.1",
"moment": "^2.24.0", "moment": "^2.24.0",
"path": "^0.12.7", "path": "^0.12.7",
@ -33,10 +35,9 @@
"request": "^2.88.2", "request": "^2.88.2",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"superagent": "^3.5.2", "superagent": "^3.5.2",
"swagger-jsdoc": "^6.1.0",
"uuid": "^3.3.2", "uuid": "^3.3.2",
"xlsx": "^0.16.9", "xlsx": "^0.16.9"
"koa2-swagger-ui": "^5.3.0",
"swagger-jsdoc": "^6.1.0"
}, },
"devDependencies": { "devDependencies": {
"mocha": "^6.0.2" "mocha": "^6.0.2"

3
api/sequelize-automate.config.js

@ -18,6 +18,7 @@ module.exports = {
timestamps: false, timestamps: false,
}, },
}, },
// !!! 所有 model 都有自定义脚本所不能生成的内容 执行此脚本需谨慎
options: { options: {
type: 'freesun', // 指定 models 代码风格 type: 'freesun', // 指定 models 代码风格
camelCase: true, // Models 文件中代码是否使用驼峰命名 camelCase: true, // Models 文件中代码是否使用驼峰命名
@ -27,7 +28,7 @@ module.exports = {
typesDir: 'models', // 指定输出 TypeScript 类型定义的文件目录,只有 TypeScript / Midway 等会有类型定义 typesDir: 'models', // 指定输出 TypeScript 类型定义的文件目录,只有 TypeScript / Midway 等会有类型定义
emptyDir: false, // !!! 谨慎操作 生成 models 之前是否清空 `dir` 以及 `typesDir` emptyDir: false, // !!! 谨慎操作 生成 models 之前是否清空 `dir` 以及 `typesDir`
tables: null, // 指定生成哪些表的 models,如 ['user', 'user_post'];如果为 null,则忽略改属性 tables: null, // 指定生成哪些表的 models,如 ['user', 'user_post'];如果为 null,则忽略改属性
skipTables: ['report', 'publicity'], // 指定跳过哪些表的 models,如 ['user'];如果为 null,则忽略改属性 skipTables: [], // 指定跳过哪些表的 models,如 ['user'];如果为 null,则忽略改属性
tsNoCheck: false, // 是否添加 `@ts-nocheck` 注释到 models 文件中 tsNoCheck: false, // 是否添加 `@ts-nocheck` 注释到 models 文件中
ignorePrefix: [], // 生成的模型名称忽略的前缀,因为 项目中有以下表名是以 t_ 开头的,在实际模型中不需要, 可以添加多个 [ 't_data_', 't_',] ,长度较长的 前缀放前面 ignorePrefix: [], // 生成的模型名称忽略的前缀,因为 项目中有以下表名是以 t_ 开头的,在实际模型中不需要, 可以添加多个 [ 't_data_', 't_',] ,长度较长的 前缀放前面
attrLength: false, // 在生成模型的字段中 是否生成 如 var(128)这种格式,公司一般使用 String ,则配置为 false attrLength: false, // 在生成模型的字段中 是否生成 如 var(128)这种格式,公司一般使用 String ,则配置为 false

4
api/utils/xlsxDownload.js

@ -71,7 +71,7 @@ async function simpleExcelDown ({ data = [], header = [], fileName = moment().fo
}) })
return savePath return savePath
} }
module.exports = { module.exports = {
simpleExcelDown, simpleExcelDown
makeDir
} }

60
api/yarn.lock

@ -55,6 +55,13 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/runtime@^7.8.4":
version "7.18.9"
resolved "http://10.8.30.22:7000/@babel%2fruntime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
dependencies:
regenerator-runtime "^0.13.4"
"@fs/attachment@^1.0.0": "@fs/attachment@^1.0.0":
version "1.0.2" version "1.0.2"
resolved "http://10.8.30.22:7000/@fs%2fattachment/-/attachment-1.0.2.tgz#5ea035b79defb08f86119cb873912747a6a1570d" resolved "http://10.8.30.22:7000/@fs%2fattachment/-/attachment-1.0.2.tgz#5ea035b79defb08f86119cb873912747a6a1570d"
@ -528,6 +535,15 @@ better-assert@~1.0.0:
dependencies: dependencies:
callsite "1.0.0" callsite "1.0.0"
better-xlsx@^0.7.6:
version "0.7.6"
resolved "http://10.8.30.22:7000/better-xlsx/-/better-xlsx-0.7.6.tgz#dc9bdbc303ecdb74823f9582c608d9f6879f4b51"
integrity sha1-3JvbwwPs23SCP5WCxgjZ9oefS1E=
dependencies:
"@babel/runtime" "^7.8.4"
jszip "^3.2.2"
kind-of "^6.0.3"
binary@~0.3.0: binary@~0.3.0:
version "0.3.0" version "0.3.0"
resolved "http://10.8.30.22:7000/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" resolved "http://10.8.30.22:7000/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
@ -1928,6 +1944,11 @@ ieee754@^1.1.13:
resolved "http://10.8.30.22:7000/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" resolved "http://10.8.30.22:7000/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I= integrity sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=
immediate@~3.0.5:
version "3.0.6"
resolved "http://10.8.30.22:7000/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
indexof@0.0.1: indexof@0.0.1:
version "0.0.1" version "0.0.1"
resolved "http://10.8.30.22:7000/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" resolved "http://10.8.30.22:7000/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
@ -2241,6 +2262,16 @@ jsprim@^1.2.2:
json-schema "0.4.0" json-schema "0.4.0"
verror "1.10.0" verror "1.10.0"
jszip@^3.2.2:
version "3.10.0"
resolved "http://10.8.30.22:7000/jszip/-/jszip-3.10.0.tgz#faf3db2b4b8515425e34effcdbb086750a346061"
integrity sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==
dependencies:
lie "~3.3.0"
pako "~1.0.2"
readable-stream "~2.3.6"
setimmediate "^1.0.5"
kafka-node@^2.2.3: kafka-node@^2.2.3:
version "2.6.1" version "2.6.1"
resolved "http://10.8.30.22:7000/kafka-node/-/kafka-node-2.6.1.tgz#e8aee3b642105574fabaa718dc4e90d24767a64d" resolved "http://10.8.30.22:7000/kafka-node/-/kafka-node-2.6.1.tgz#e8aee3b642105574fabaa718dc4e90d24767a64d"
@ -2269,6 +2300,11 @@ keygrip@~1.1.0:
dependencies: dependencies:
tsscmp "1.0.6" tsscmp "1.0.6"
kind-of@^6.0.3:
version "6.0.3"
resolved "http://10.8.30.22:7000/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=
klaw@^1.0.0: klaw@^1.0.0:
version "1.3.1" version "1.3.1"
resolved "http://10.8.30.22:7000/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" resolved "http://10.8.30.22:7000/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
@ -2440,6 +2476,13 @@ levn@~0.3.0:
prelude-ls "~1.1.2" prelude-ls "~1.1.2"
type-check "~0.3.2" type-check "~0.3.2"
lie@~3.3.0:
version "3.3.0"
resolved "http://10.8.30.22:7000/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
integrity sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=
dependencies:
immediate "~3.0.5"
lines-and-columns@^1.1.6: lines-and-columns@^1.1.6:
version "1.2.4" version "1.2.4"
resolved "http://10.8.30.22:7000/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" resolved "http://10.8.30.22:7000/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@ -2975,6 +3018,11 @@ packet-reader@1.0.0:
resolved "http://10.8.30.22:7000/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" resolved "http://10.8.30.22:7000/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
integrity sha1-kjjlSA3tq6z+H+PydxBj8WQVfXQ= integrity sha1-kjjlSA3tq6z+H+PydxBj8WQVfXQ=
pako@~1.0.2:
version "1.0.11"
resolved "http://10.8.30.22:7000/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=
parse-json@^5.0.0: parse-json@^5.0.0:
version "5.2.0" version "5.2.0"
resolved "http://10.8.30.22:7000/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" resolved "http://10.8.30.22:7000/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@ -3346,7 +3394,7 @@ readable-stream@1.1.x:
isarray "0.0.1" isarray "0.0.1"
string_decoder "~0.10.x" string_decoder "~0.10.x"
readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6: readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.7" version "2.3.7"
resolved "http://10.8.30.22:7000/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" resolved "http://10.8.30.22:7000/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
@ -3395,6 +3443,11 @@ redis@^3.1.2:
redis-errors "^1.2.0" redis-errors "^1.2.0"
redis-parser "^3.0.0" redis-parser "^3.0.0"
regenerator-runtime@^0.13.4:
version "0.13.9"
resolved "http://10.8.30.22:7000/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
integrity sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=
regexp.prototype.flags@^1.4.3: regexp.prototype.flags@^1.4.3:
version "1.4.3" version "1.4.3"
resolved "http://10.8.30.22:7000/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" resolved "http://10.8.30.22:7000/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
@ -3549,6 +3602,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
resolved "http://10.8.30.22:7000/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" resolved "http://10.8.30.22:7000/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
setimmediate@^1.0.5:
version "1.0.5"
resolved "http://10.8.30.22:7000/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
setprototypeof@1.1.0: setprototypeof@1.1.0:
version "1.1.0" version "1.1.0"
resolved "http://10.8.30.22:7000/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" resolved "http://10.8.30.22:7000/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"

BIN
scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx

Binary file not shown.

8
weapp/src/packages/changePassword/index.jsx

@ -14,10 +14,10 @@ function Index() {
function confirm() { function confirm() {
if (!password) { if (!password) {
Taro.showToast({ title: '请输入密码' }) Taro.showToast({ title: '请输入密码', icon: 'none' })
return return
} else if (password !== password2) { } else if (password !== password2) {
Taro.showToast({ title: '两次输入的密码不一致' }) Taro.showToast({ title: '两次输入的密码不一致', icon: 'none' })
return return
} else { } else {
Taro.showModal({ Taro.showModal({
@ -50,11 +50,11 @@ function Index() {
</View> </View>
<View className='pswd'> <View className='pswd'>
<View className='title'>新的密码</View> <View className='title'>新的密码</View>
<Input value={password} onInput={e => setPassword(e.detail.value)} /> <Input value={password} type='password' onInput={e => setPassword(e.detail.value)} />
</View> </View>
<View className='pswd'> <View className='pswd'>
<View className='title'>再次输入新的密码</View> <View className='title'>再次输入新的密码</View>
<Input value={password2} onInput={e => setPassword2(e.detail.value)} /> <Input value={password2} type='password' onInput={e => setPassword2(e.detail.value)} />
</View> </View>
<AtButton className='btn' type='primary' onClick={confirm}>确认</AtButton> <AtButton className='btn' type='primary' onClick={confirm}>确认</AtButton>
</View> </View>

8
weapp/src/packages/patrol/index.jsx

@ -184,9 +184,7 @@ const Index = () => {
if (res.statusCode == 200 || res.statusCode == 204) { if (res.statusCode == 200 || res.statusCode == 204) {
Taro.showToast({ title: '上报成功', icon: 'none', duration: 1500 }) Taro.showToast({ title: '上报成功', icon: 'none', duration: 1500 })
setTimeout(() => { setTimeout(() => {
Taro.reLaunch({ Taro.navigateBack()
url: '/pages/home/index'
});
}, 1500) }, 1500)
} else { } else {
Taro.showToast({ title: res.data.message || '请求出错', icon: 'none' }) Taro.showToast({ title: res.data.message || '请求出错', icon: 'none' })
@ -285,7 +283,7 @@ const Index = () => {
return ( return (
<View className='patrol'> <View className='patrol'>
{ {
!isSuperAdmin && (!isSuperAdmin || isView) &&
<View className='report-type'> <View className='report-type'>
<View className='text'>上报类型</View> <View className='text'>上报类型</View>
<RadioGroup onChange={handleTypeChange}> <RadioGroup onChange={handleTypeChange}>
@ -477,7 +475,7 @@ const Index = () => {
} }
{ {
isView ? isView ?
<AtButton type='primary' className='del-btn' onClick={deleteReport}>删除</AtButton> : isSuperAdmin && <AtButton type='primary' className='del-btn' onClick={deleteReport}>删除</AtButton> :
<AtButton type='primary' className='sub-btn' onClick={report}>上报</AtButton> <AtButton type='primary' className='sub-btn' onClick={report}>上报</AtButton>
} }
</View> </View>

3
weapp/src/packages/patrolView/index.config.js

@ -0,0 +1,3 @@
export default {
onReachBottomDistance: 50
}

66
weapp/src/packages/patrolView/index.jsx

@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react' import React, { useState, useEffect } from 'react'
import Taro, { useDidShow, useRouter } from '@tarojs/taro' import Taro, { useDidShow, useRouter, useReachBottom } from '@tarojs/taro'
import { View, Picker, Input, Image } from '@tarojs/components' import { View, Picker, Input, Image } from '@tarojs/components'
import moment from 'moment' import moment from 'moment'
import './index.scss' import './index.scss'
@ -17,22 +17,26 @@ import conserveActiveIcon from '../../static/img/patrolView/conserve-active.svg'
function Index() { function Index() {
const userInfo = Taro.getStorageSync('userInfo') || {}; const userInfo = Taro.getStorageSync('userInfo') || {};
const router = useRouter() const router = useRouter()
const { params: { limit } } = router const { params: { filter } } = router
const [isPatrol, setIsPatrol] = useState(true) const [isPatrol, setIsPatrol] = useState(true)
const [datePicker, setDatePicker] = useState(moment().format('YYYY-MM-DD')) const [datePicker, setDatePicker] = useState(moment().format('YYYY-MM-DD'))
const [listData, setListData] = useState([]) const [listData, setListData] = useState([])
const [showListData, setShowListData] = useState([])
const [filterText, setFilterText] = useState('') const [filterText, setFilterText] = useState('')
const [systemInfo, setSystemInfo] = useState('') const [systemInfo, setSystemInfo] = useState('')
const [page, setPage] = useState(0)
const [num, setNum] = useState(Math.random())
const limit = 10
useEffect(() => { useEffect(() => {
getList() setPage(0)
}, [datePicker]) setNum(Math.random())
}, [isPatrol, datePicker])
useEffect(() => { useEffect(() => {
setShowListData(listData.filter(item => isPatrol ? item.reportType === 'patrol' : item.reportType === 'conserve')) getList(page == 0 ? true : false)
}, [isPatrol]) }, [num])
function dealError(error) { function dealError(error) {
Taro.showToast({ Taro.showToast({
@ -42,21 +46,29 @@ function Index() {
}); });
throw new Error(error); throw new Error(error);
} }
const getList = () => { const getList = (isInit) => {
Taro.showLoading({ title: '加载中' }) Taro.showLoading({ title: '加载中' })
request.get( const data = {
getReportList(), limit,
{ startTime: datePicker + ' 00:00:00', endTime: datePicker + ' 23:59:59' } page,
).then(res => { startTime: datePicker + ' 00:00:00',
endTime: datePicker + ' 23:59:59',
keyword: filterText,
reportType: isPatrol ? 'patrol' : 'conserve',
userId: filter === 'my' ? userInfo.id : '',
}
request.get(getReportList(), data).then(res => {
Taro.hideLoading() Taro.hideLoading()
if (res.statusCode == 200) { if (res.statusCode == 200) {
let { data } = res if (res.data.length === 0) {
if (limit === 'my') { Taro.showToast({
data = data.filter(item => item.user.name === userInfo.name) title: '没有更多了',
icon: 'none'
})
} }
setListData(data) const temp = isInit ? [] : listData
setShowListData(data.filter(item => isPatrol ? item.reportType === 'patrol' : item.reportType === 'conserve')) const nextListData = temp.concat(res.data)
return data; setListData(nextListData)
} else { } else {
dealError(res.data.message || '请求出错'); dealError(res.data.message || '请求出错');
} }
@ -65,6 +77,12 @@ function Index() {
}); });
} }
//
useReachBottom(() => {
setPage(page + 1)
setNum(Math.random())
})
useDidShow(() => { useDidShow(() => {
let refresh = Taro.getStorageSync('refresh'); // let refresh = Taro.getStorageSync('refresh'); //
if (refresh) { if (refresh) {
@ -88,20 +106,20 @@ function Index() {
} }
const handleConfirm = e => { const handleConfirm = e => {
let nextList = listData.filter(item => isPatrol ? item.reportType === 'patrol' : item.reportType === 'conserve') setPage(0)
nextList = nextList.filter(item => item.road.includes(e.detail.value)) setNum(Math.random())
setShowListData(nextList)
} }
const handleInput = e => { const handleInput = e => {
setFilterText(e.detail.value); setFilterText(e.detail.value);
if (!e.detail.value) { if (!e.detail.value) {
setShowListData(listData.filter(item => isPatrol ? item.reportType === 'patrol' : item.reportType === 'conserve')); setPage(0)
setNum(Math.random())
} }
} }
const handleDetail = index => { const handleDetail = index => {
Taro.navigateTo({ url: `/packages/patrol/index?type=view&id=${showListData[index].id}` }) Taro.navigateTo({ url: `/packages/patrol/index?type=view&id=${listData[index].id}` })
} }
return ( return (
@ -140,7 +158,7 @@ function Index() {
<View style={{ marginTop: '110px' }}> <View style={{ marginTop: '110px' }}>
{ {
showListData && showListData.length > 0 ? showListData && showListData.map((e, index) => { listData && listData.length > 0 ? listData && listData.map((e, index) => {
return ( return (
<View className='cardBox' key={index} onClick={() => handleDetail(index)}> <View className='cardBox' key={index} onClick={() => handleDetail(index)}>
<View className='card-item' > <View className='card-item' >

33
weapp/src/pages/home/index.jsx

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect } from 'react';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import { View } from '@tarojs/components'; import { View } from '@tarojs/components';
import { useIndustry } from '@/actions/business'; import { useIndustry } from '@/actions/business';
@ -6,8 +6,26 @@ import './index.scss';
const Index = () => { const Index = () => {
const userInfo = Taro.getStorageSync('userInfo') || {}; const userInfo = Taro.getStorageSync('userInfo') || {};
const token = Taro.getStorageSync('token') || null;
const isSuperAdmin = userInfo && userInfo.username === 'SuperAdmin' ? true : false const isSuperAdmin = userInfo && userInfo.username === 'SuperAdmin' ? true : false
useEffect(() => {
if (!userInfo || !token) {
Taro.showModal({
title: '提示',
content: '未获取用户信息,请重新登录',
showCancel: false,
success: (res) => {
if (res.confirm) {
Taro.reLaunch({
url: '/pages/auth/login/login'
});
}
}
});
}
}, [])
function toPatrol() { function toPatrol() {
Taro.navigateTo({ Taro.navigateTo({
url: '/packages/patrol/index?type=edit' url: '/packages/patrol/index?type=edit'
@ -19,14 +37,25 @@ const Index = () => {
}) })
} }
function toVideo() {
}
return ( return (
<View className='page'> <View className='page'>
<View className='fill'> <View className='card fill'>
<View className='title'> </View> <View className='title'> </View>
<View className='btn' onClick={isSuperAdmin ? toPatrolView : toPatrol}> <View className='btn' onClick={isSuperAdmin ? toPatrolView : toPatrol}>
{isSuperAdmin ? '查看' : '填报'} {isSuperAdmin ? '查看' : '填报'}
</View> </View>
</View> </View>
{
isSuperAdmin &&
<View className='card video'>
<View className='title'> </View>
<View className='btn' onClick={toVideo}>查看</View>
</View>
}
</View> </View>
); );
} }

10
weapp/src/pages/home/index.scss

@ -3,15 +3,23 @@
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.fill { .card {
margin-top: 30px; margin-top: 30px;
padding: 10px; padding: 10px;
width: 94%; width: 94%;
height: 360px; height: 360px;
}
.fill {
background: url('../../static/img/home/fill-bg.svg') no-repeat; background: url('../../static/img/home/fill-bg.svg') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.video {
background: url('../../static/img/home/video-bg.svg') no-repeat;
background-size: 100% 100%;
}
.title { .title {
margin: 50px 0 0 48px; margin: 50px 0 0 48px;
color: #fff; color: #fff;

2
weapp/src/pages/user/index.jsx

@ -24,7 +24,7 @@ const Index = ({ ...props }) => {
const toMyReport = () => { const toMyReport = () => {
Taro.navigateTo({ Taro.navigateTo({
url: '/packages/patrolView/index?limit=my' url: '/packages/patrolView/index?filter=my'
}) })
} }

88
weapp/src/static/img/home/video-bg.svg

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="355px" height="180px" viewBox="0 0 355 180" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>椭圆形</title>
<defs>
<linearGradient x1="94.8177083%" y1="40.1387904%" x2="5.97712862%" y2="62.1403067%" id="linearGradient-1">
<stop stop-color="#34C29A" offset="0%"></stop>
<stop stop-color="#81D2CA" offset="100%"></stop>
</linearGradient>
<rect id="path-2" x="0" y="0" width="345" height="170" rx="8"></rect>
<filter x="-2.5%" y="-3.8%" width="104.9%" height="110.0%" filterUnits="objectBoundingBox" id="filter-4">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0.898039216 0 0 0 0 0.898039216 0 0 0 0 0.898039216 0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<radialGradient cx="41.0959558%" cy="36.7313023%" fx="41.0959558%" fy="36.7313023%" r="109.268488%" gradientTransform="translate(0.410960,0.367313),scale(0.456675,1.000000),rotate(135.284157),translate(-0.410960,-0.367313)" id="radialGradient-5">
<stop stop-color="#FFFFFF" stop-opacity="0.330364948" offset="0%"></stop>
<stop stop-color="#FFFFFF" stop-opacity="0.219542177" offset="2.71252185%"></stop>
<stop stop-color="#E6F3FF" stop-opacity="0.181763549" offset="100%"></stop>
</radialGradient>
<linearGradient x1="27.99208%" y1="8.10997596%" x2="77.6436298%" y2="92.0883413%" id="linearGradient-6">
<stop stop-color="#FFFFFF" offset="0%"></stop>
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<path d="M299.319574,92.4461513 L323.319574,86.8570888 C324.93325,86.4812999 326.546029,87.4848053 326.921818,89.0984808 C326.973768,89.3215612 327,89.5498572 327,89.7789068 L327,120.030821 C327,121.687675 325.656854,123.030821 324,123.030821 C323.777838,123.030821 323.556363,123.006143 323.33965,122.957241 L299.33965,117.541616 C297.971618,117.232919 297,116.017624 297,114.615196 L297,95.3679693 C297,93.9732458 297.961198,92.7624866 299.319574,92.4461513 Z" id="path-7"></path>
<filter x="-5.0%" y="-1.9%" width="110.0%" height="103.9%" filterUnits="objectBoundingBox" id="filter-8">
<feGaussianBlur stdDeviation="1.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
<feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
<feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
</filter>
<linearGradient x1="15.091271%" y1="21.73492%" x2="93.8480319%" y2="78.3988936%" id="linearGradient-9">
<stop stop-color="#FFFFFF" offset="0%"></stop>
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<rect id="path-10" x="216" y="70" width="84" height="69" rx="8"></rect>
<filter x="-1.2%" y="-1.4%" width="104.8%" height="105.8%" filterUnits="objectBoundingBox" id="filter-11">
<feOffset dx="1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0.807843137 0 0 0 0 1 0 0 0 0 0.949019608 0 0 0 0.424797858 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<filter x="-1.8%" y="-2.2%" width="106.0%" height="107.2%" filterUnits="objectBoundingBox" id="filter-12">
<feGaussianBlur stdDeviation="1.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
<feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
<feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
</filter>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-13">
<stop stop-color="#E9FFFA" offset="0%"></stop>
<stop stop-color="#CEFFF2" offset="100%"></stop>
</linearGradient>
<polygon id="path-14" points="260.5 93 274 120 247 120"></polygon>
<filter x="-3.7%" y="-3.7%" width="114.8%" height="114.8%" filterUnits="objectBoundingBox" id="filter-15">
<feOffset dx="1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0.807843137 0 0 0 0 1 0 0 0 0 0.949019608 0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
</defs>
<g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="首页_巡查(管理员)" transform="translate(-10.000000, -275.000000)">
<g id="椭圆形" transform="translate(15.000000, 278.000000)">
<mask id="mask-3" fill="white">
<use xlink:href="#path-2"></use>
</mask>
<g id="蒙版">
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-2"></use>
<use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
</g>
<path d="M-25.1264086,44.3554348 C-22.8540945,43.4604524 -19.9720573,43.2618945 -16.3915335,43.8308467 C-9.45771541,44.9326439 0.0397231269,48.9019168 12.7510815,56.3907566 C85.2689971,99.1143615 101.526273,100.285815 157.01895,104.299238 C160.528313,104.553047 164.194848,104.818224 168.042785,105.106029 C251.195069,111.325385 298.21739,119.468187 324.522292,128.949845 C339.379312,134.305089 347.591516,140.069255 351.945866,146.174029 C357.803157,154.38592 356.636977,163.182122 355.47544,172.269858 C354.983672,176.117388 354.486328,180.019081 354.486328,183.955078 C354.486328,190.565127 350.969335,195.802414 344.574971,199.974635 C337.534232,204.568606 327.032087,207.873856 313.817887,210.266705 C281.200306,216.17315 232.117876,216.485999 177.575934,216.499454 L174.195339,216.499951 L174.195339,216.499951 L172.5,216.5 C151.619296,216.5 132.49809,217.669332 115.119764,218.732312 C78.6988427,220.960071 49.9497981,222.750964 28.7363653,212.203464 C11.9160687,203.840268 -0.120527505,187.690127 -7.5147057,157.879628 C-10.5366892,145.696146 -14.4375121,132.807586 -18.2424469,120.236626 C-27.4467917,89.8267865 -36.1911016,61.2508546 -30.2724922,49.2327272 C-29.1448998,46.9430764 -27.4674175,45.2774736 -25.1264086,44.3554348 Z" stroke-opacity="0.262647509" stroke="#FFFFFF" fill="url(#radialGradient-5)" opacity="0.34" mask="url(#mask-3)"></path>
<g id="矩形" mask="url(#mask-3)">
<use fill-opacity="0.2" fill="url(#linearGradient-6)" fill-rule="evenodd" xlink:href="#path-7"></use>
<use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-7"></use>
<path stroke="" stroke-width="1" d="M323.432978,87.3440585 C324.105343,87.1874797 324.777521,87.318254 325.320753,87.6562642 C325.863985,87.9942743 326.27827,88.5395203 326.434848,89.2118851 C326.47814,89.3977855 326.5,89.5880322 326.5,89.7789068 L326.5,89.7789068 L326.5,120.030821 C326.5,120.721177 326.220178,121.346177 325.767767,121.798588 C325.315356,122.250999 324.690356,122.530821 324,122.530821 C323.814865,122.530821 323.630303,122.510256 323.449708,122.469505 L323.449708,122.469505 L299.449708,117.05388 C298.879695,116.925255 298.392268,116.607757 298.047344,116.176328 C297.70242,115.7449 297.5,115.199541 297.5,114.615196 L297.5,114.615196 L297.5,95.3679693 C297.5,94.7868345 297.70025,94.2440256 298.041997,93.8135488 C298.383744,93.3830721 298.866988,93.0649274 299.432978,92.933121 L299.432978,92.933121 Z" stroke-linejoin="square"></path>
</g>
<g id="矩形" mask="url(#mask-3)">
<use fill="black" fill-opacity="1" filter="url(#filter-11)" xlink:href="#path-10"></use>
<use fill-opacity="0.2" fill="url(#linearGradient-9)" fill-rule="evenodd" xlink:href="#path-10"></use>
<use fill="black" fill-opacity="1" filter="url(#filter-12)" xlink:href="#path-10"></use>
<rect stroke="" stroke-width="1" stroke-linejoin="square" x="216.5" y="70.5" width="83" height="68" rx="8"></rect>
</g>
<g id="三角形" mask="url(#mask-3)" transform="translate(260.500000, 106.500000) rotate(-270.000000) translate(-260.500000, -106.500000) ">
<use fill="black" fill-opacity="1" filter="url(#filter-15)" xlink:href="#path-14"></use>
<use fill="url(#linearGradient-13)" fill-rule="evenodd" xlink:href="#path-14"></use>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
weapp/src/static/img/tabbar/shouye-active.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 497 B

BIN
weapp/src/static/img/tabbar/shouye.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

After

Width:  |  Height:  |  Size: 429 B

BIN
weapp/src/static/img/tabbar/wode-active.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 632 B

BIN
weapp/src/static/img/tabbar/wode.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 605 B

25
web/client/assets/color.less

@ -1150,6 +1150,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;}
<<<<<<< Updated upstream <<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);} .ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);}
.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;}
@ -1161,6 +1162,12 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);} .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);}
>>>>>>> Stashed changes >>>>>>> Stashed changes
=======
.ant-menu-item-danger.ant-menu-item:active {background: #fff1f0;}
.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;}
.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: #fff1f0;}
>>>>>>> Stashed changes
.ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;} .ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;}
.ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;} .ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;}
.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;} .ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;}
@ -1731,9 +1738,12 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable-checked {background-color: @primary-color;}
.ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);}
<<<<<<< Updated upstream <<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;} .ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;}
=======
>>>>>>> Stashed changes
======= =======
>>>>>>> Stashed changes >>>>>>> Stashed changes
.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;}
@ -1743,6 +1753,7 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
<<<<<<< Updated upstream <<<<<<< Updated upstream
.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;} .ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;}
<<<<<<< Updated upstream
.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;} .ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;}
.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
@ -1753,6 +1764,8 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
======= =======
.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);border-color: #ffa39e;} .ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);border-color: #ffa39e;}
>>>>>>> Stashed changes >>>>>>> Stashed changes
=======
>>>>>>> Stashed changes
.ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;} .ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;}
.ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;} .ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;}
.ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;} .ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;}
@ -1769,6 +1782,7 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;}
.ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;}
<<<<<<< Updated upstream <<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;} .ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
@ -1788,6 +1802,13 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{alert-error-bg-color}", 1)`);border-color: #d3adf7;} .ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{alert-error-bg-color}", 1)`);border-color: #d3adf7;}
>>>>>>> Stashed changes >>>>>>> Stashed changes
=======
.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;}
.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;}
.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{info-color-deprecated-bg}", 1)`);border-color: #adc6ff;}
.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;}
.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{background-color-light}", 1)`);border-color: #d3adf7;}
>>>>>>> Stashed changes
.ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;} .ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;}
.ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;} .ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;}
.ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;} .ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;}
@ -2026,14 +2047,16 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography
.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;} .ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;}
.ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;} .ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;}
<<<<<<< Updated upstream <<<<<<< Updated upstream
<<<<<<< Updated upstream
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
======= =======
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} =======
>>>>>>> Stashed changes >>>>>>> Stashed changes
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;}
.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;}
.ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);} .ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);}
.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);}

4
web/client/src/components/index.js

@ -9,6 +9,7 @@ import FlowRecordTable from './flowRecordTable'
import Table from './table' import Table from './table'
import Search from './search' import Search from './search'
import SketchColor from './sketchColor' import SketchColor from './sketchColor'
import SimpleFileDownButton from './simpleFileDownButton'
export { export {
Upload, Upload,
@ -18,5 +19,6 @@ export {
FlowRecordTable, FlowRecordTable,
Table, Table,
Search, Search,
SketchColor SketchColor,
SimpleFileDownButton
}; };

40
web/client/src/components/simpleFileDownButton.js

@ -0,0 +1,40 @@
import React, { useState, useEffect, useRef } from "react";
import { connect } from "react-redux";
import moment from 'moment'
import { Button } from "antd";
const SimpleFileDownButton = (props) => {
const { src, user } = props
const [downloadUrl, setDownloadUrl] = useState('')
return (
<>
<Button
style={{
width: 65,
height: 32,
background: "#FFFFFF",
borderRadius: 3,
border: "1px solid #1859C1",
}}
onClick={() => {
setDownloadUrl(`${src}?token=${user.token}&timestamp=${moment().valueOf()}`)
}}
>
导出
</Button>
{
downloadUrl ? <iframe src={`/_api/${downloadUrl}`} style={{ display: 'none' }} /> : ''
}
</>
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(SimpleFileDownButton);

169
web/client/src/sections/fillion/actions/infor.js

@ -34,6 +34,17 @@ export function getOperaTional(query) {
// reducer: { name: 'reportstatistic' } // reducer: { name: 'reportstatistic' }
}); });
} }
export function putOperaTional(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'PUT_OPERA_TIONAL',
url: ApiTable.putOperaTional,
msg: { error: '获取车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function getSpecificVehicle(query) { export function getSpecificVehicle(query) {
return dispatch => basicAction({ return dispatch => basicAction({
type: 'get', type: 'get',
@ -45,6 +56,28 @@ export function getSpecificVehicle(query) {
// reducer: { name: 'reportstatistic' } // reducer: { name: 'reportstatistic' }
}); });
} }
export function putSpecificVehicle(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'put_SPECIFIC_VEHICLE',
url: ApiTable.putSpecificVehicle,
msg: { error: '编辑车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function putHouseholds(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'put_HOUSEHOLDS',
url: ApiTable.putHouseholds,
msg: { error: '编辑业户信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function getHouseholds(query) { export function getHouseholds(query) {
return dispatch => basicAction({ return dispatch => basicAction({
type: 'get', type: 'get',
@ -122,3 +155,139 @@ export function putProject(query) {
// reducer: { name: 'reportstatistic' } // reducer: { name: 'reportstatistic' }
}); });
} }
export function getHighways(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
query: query,
actionType: 'GET_HIGHWAYS',
url: ApiTable.getHighways,
msg: { error: '获取路政信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function putHighways(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'GET_HIGHWAYS',
url: ApiTable.putHighways,
msg: { error: '编辑路政信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function getCircuit(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
query: query,
actionType: 'GET_CIRCUIT',
url: ApiTable.getCircuit,
msg: { error: '获取线路信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function putCircuit(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'PUT_CIRCUIT',
url: ApiTable.putCircuit,
msg: { error: '编辑线路信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function getVehicle(query) {
return dispatch => basicAction({
type: 'get',
dispatch: dispatch,
query: query,
actionType: 'GET_VEHICLE',
url: ApiTable.getVehicle,
msg: { error: '获取车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function putVehicle(query) {
return dispatch => basicAction({
type: 'put',
dispatch: dispatch,
data: query,
actionType: 'PUT_VEHICLE',
url: ApiTable.putVehicle,
msg: { error: '编辑车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delRoadway(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_ROADWAY',
url: ApiTable.delRoadway.replace("{roadId}", query?.roadId),
msg: { error: '删除车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delProject(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_PROJECT',
url: ApiTable.delProject.replace("{projectId}", query?.projectId),
msg: { error: '删除工程信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delBridge(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_BRIDGE',
url: ApiTable.delBridge.replace("{bridgeId}", query?.bridgeId),
msg: { error: '删除桥梁信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delSpecificVehicle(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_SPECIFICVENICLE',
url: ApiTable.delSpecificVehicle.replace("{vehicleId}", query?.vehicleId),
msg: { error: '删除车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delHouseholds(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_HOUSEHOLDS',
url: ApiTable.delHouseholds.replace("{businessId}", query?.businessId),
msg: { error: '删除业户信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delCircuit(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_CIRCUIT',
url: ApiTable.delCircuit.replace("{lineId}", query?.lineId),
msg: { error: '删除运营线路信息失败' },
// reducer: { name: 'reportstatistic' }
});
}
export function delVehicle(query) {
return dispatch => basicAction({
type: 'del',
dispatch: dispatch,
actionType: 'DEL_VEHICLE',
url: ApiTable.delVehicle.replace("{carId}", query?.carId),
msg: { error: '删除车辆信息失败' },
// reducer: { name: 'reportstatistic' }
});
}

105
web/client/src/sections/fillion/components/bridgeTable.js

@ -1,10 +1,10 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState, useRef } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Spin, Button, Popconfirm, Badge } from 'antd'; import { Spin, Button, Popconfirm, Badge } from 'antd';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import './protable.less' import './protable.less'
import moment from 'moment'; import moment from 'moment';
import { getBridge, getProject } from "../actions/infor" import { getBridge, getProject,delBridge,delProject } from "../actions/infor"
import UserModal from './infor/details'; import UserModal from './infor/details';
import ProjectModal from './project/project'; import ProjectModal from './project/project';
@ -14,7 +14,7 @@ const BrideTable = (props) => {
// const [regionId, setRegionId] = useState()//区域id // const [regionId, setRegionId] = useState()//区域id
// const [placeType, setPlaceType] = useState()//场所 // const [placeType, setPlaceType] = useState()//场所
// const [day, setDay] = useState([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])//日期 // const [day, setDay] = useState([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])//日期
// const [sitename, setSitename] = useState()//场所名称 const [sitename, setSitename] = useState()//场所名称
const [counts, setCounts] = useState()//shuju const [counts, setCounts] = useState()//shuju
const [modalVisible, setModalVisible] = useState(false); const [modalVisible, setModalVisible] = useState(false);
const [modalVisibleyilan, setModalVisibleyilan] = useState(false); const [modalVisibleyilan, setModalVisibleyilan] = useState(false);
@ -22,6 +22,11 @@ const BrideTable = (props) => {
const [typecard, setTypecard] = useState(); const [typecard, setTypecard] = useState();
const [activeKey, setActiveKey] = useState('tab1'); const [activeKey, setActiveKey] = useState('tab1');
const [recortd, setRecortd] = useState() const [recortd, setRecortd] = useState()
const [whichofits, setWhichofits] = useState('qiaoliang')
const [delet, setDelet] = useState()
const ref = useRef()
useEffect(() => { ref.current.reload() }, [modalVisible, modalVisibleyilan,whichofits,delet])
const columns = { const columns = {
tab1: [ tab1: [
{ {
@ -30,12 +35,9 @@ const BrideTable = (props) => {
fixed: 'left', fixed: 'left',
width: 120, width: 120,
options: 1, options: 1,
search: false,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => {
// setSitename(value.currentTarget.value)
// },
placeholder: '请输入桥梁代码进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
render: (dom, record) => { render: (dom, record) => {
@ -45,17 +47,19 @@ const BrideTable = (props) => {
}, },
{ {
title: '桥梁名称', title: '桥梁名称',
search: false,
dataIndex: 'containers', dataIndex: 'containers',
fixed: 'left', fixed: 'left',
width: 120, width: 120,
render: (dom, record) => { render: (dom, record) => {
return record.bridgeName return record.bridgeName
}, },
fieldProps: { fieldProps: {
onChange: (value, cs) => {
setSitename(value.currentTarget.value)
},
placeholder: '请输入桥梁名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
} },
}, },
{ {
title: '中心桩号', title: '中心桩号',
@ -1489,7 +1493,16 @@ const BrideTable = (props) => {
setTypecard('111') setTypecard('111')
setRecortd(record) setRecortd(record)
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link"
onClick={() => {
const query = {
bridgeId: record.id
}
dispatch(delBridge(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
} }
}, },
@ -1532,9 +1545,9 @@ const BrideTable = (props) => {
options: 1, options: 1,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => { onChange: (value, cs) => {
// setSitename(value.currentTarget.value) setSitename(value.currentTarget.value)
// }, },
placeholder: '请输入项目名称进行搜索', placeholder: '请输入项目名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
@ -1670,7 +1683,16 @@ const BrideTable = (props) => {
setTypecard('111') setTypecard('111')
setRecortd(record) setRecortd(record)
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link"
onClick={() => {
const query = {
projectId: record.id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
} }
}, },
@ -1706,27 +1728,6 @@ const BrideTable = (props) => {
}, },
] ]
} }
const requestBridge = () => {
const query = {
}
setRowSelected([]);
dispatch(getBridge(query)).then((res) => {
setCounts(res?.payload?.data)
console.log(res)
});
}
//工程数据
const requestProject = () => {
const query = {
type: '桥梁'
}
setRowSelected([]);
dispatch(getProject(query)).then((res) => {
setCounts(res?.payload?.data)
})
}
//打开弹窗 //打开弹窗
const openModal = (type, record) => { const openModal = (type, record) => {
setModalVisible(true); setModalVisible(true);
@ -1766,7 +1767,7 @@ const BrideTable = (props) => {
<Spin spinning={false}> <Spin spinning={false}>
<div className='protable-transpor'> <div className='protable-transpor'>
<ProTable <ProTable
actionRef={ref}
toolbar={{ toolbar={{
multipleLine: true, multipleLine: true,
@ -1777,13 +1778,13 @@ const BrideTable = (props) => {
{ {
key: 'tab1', key: 'tab1',
label: <span onClick={() => { label: <span onClick={() => {
requestBridge() setWhichofits('qiaoliang')
}}>桥梁{activeKey === 'tab1'}</span>, }}>桥梁{activeKey === 'tab1'}</span>,
}, },
{ {
key: 'tab2', key: 'tab2',
label: <span onClick={() => { label: <span onClick={() => {
requestProject() setWhichofits('gongcheng')
}}>工程一览{activeKey === 'tab2'}</span>, }}>工程一览{activeKey === 'tab2'}</span>,
}, },
@ -1796,12 +1797,7 @@ const BrideTable = (props) => {
style={{ width: "100% ", overflow: "auto", height: '760px' }} style={{ width: "100% ", overflow: "auto", height: '760px' }}
rowKey='id' rowKey='id'
onReset={(v) => { onReset={(v) => {
// const { id } = depMessage[0] setSitename('')
// console.log(id)
// setRegionId(id)
// setPlaceType(-1)
// setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])
// setSitename('')
}} }}
rowSelection={{ rowSelection={{
selectedRowKeys: rowSelected, selectedRowKeys: rowSelected,
@ -1813,16 +1809,33 @@ const BrideTable = (props) => {
dataSource={counts || []} dataSource={counts || []}
request={async (params) => { request={async (params) => {
if(whichofits=='qiaoliang'){
const query = { const query = {
bridgeName:sitename
} }
setRowSelected([]); setRowSelected([]);
const res = await dispatch(getBridge(query)); const res = await dispatch(getBridge(query));
// console.log(res)
setCounts(res.payload.data) setCounts(res.payload.data)
return { return {
...res, ...res,
total: res.payload.data ? res.payload.data.count : 0 total: res.payload.data ? res.payload.data.count : 0
} }
}if(whichofits=='gongcheng'){
const query = {
type: 'bridge',
// type:sitename
}
setRowSelected([]);
const res = await dispatch(getProject(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
}} }}
search={{ search={{
defaultCollapsed: false, defaultCollapsed: false,

40
web/client/src/sections/fillion/components/gis/patrolGis.js

@ -5,13 +5,15 @@ import { useState } from 'react';
import { DatePicker } from 'antd'; import { DatePicker } from 'antd';
import Bounds from './bounds'; import Bounds from './bounds';
import moment from 'moment'; import moment from 'moment';
import { getReportList } from '../../actions/patrol'
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
function PatrolGis(props) { function PatrolGis(props) {
const { reportList, userId, dispatch } = props; const { reportList, userId, dispatch } = props;
const [mapComplete, setMapComplete] = useState(false); const [mapComplete, setMapComplete] = useState(false);
const [mapObj, setMapObj] = useState(); const [mapObj, setMapObj] = useState();
const [dateRange, setDateRange] = useState(); const [dateRange, setDateRange] = useState();
let markers = [];
let PATH = [];
useEffect(() => { useEffect(() => {
if (AMap) loadMap(); if (AMap) loadMap();
return () => { return () => {
@ -24,8 +26,23 @@ function PatrolGis(props) {
}, [true]) }, [true])
useEffect(() => { useEffect(() => {
if (mapObj) {
mapObj.remove(markers);
mapObj.remove(PATH);
}
let query = { userId, reportType: 'patrol' }
if (userId) { if (userId) {
if ((dateRange && dateRange instanceof Array)) {
query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss')
query.endTime = moment(dateRange[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss')
} else {
query.startTime = moment().add(-6, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss')
query.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
}
dispatch(getReportList(query));
} else {
query.isTop = true;
dispatch(getReportList(query));
} }
}, [userId, dateRange]) }, [userId, dateRange])
@ -33,9 +50,10 @@ function PatrolGis(props) {
if (reportList && mapObj) { if (reportList && mapObj) {
mapObj.clearMap(); mapObj.clearMap();
renderMarkers(); renderMarkers();
if (userId)
renderPath(); renderPath();
} }
}, [reportList, mapObj]) }, [reportList, mapObj, userId])
const loadMap = () => { const loadMap = () => {
const map = new AMap.Map("amapId", { const map = new AMap.Map("amapId", {
@ -86,11 +104,12 @@ function PatrolGis(props) {
position: new AMap.LngLat(longitude, latitude), position: new AMap.LngLat(longitude, latitude),
icon: icon, icon: icon,
offset: new AMap.Pixel(-12, -12), offset: new AMap.Pixel(-12, -12),
extData: { // extData: {
name: user.name || '', // name: user.name || '',
} // }
}); });
// marker.setTitle(s.name); // marker.setTitle(s.name);
markers.push(marker);
map.add(marker); map.add(marker);
}) })
} }
@ -111,6 +130,7 @@ function PatrolGis(props) {
if (longitude && latitude) if (longitude && latitude)
path.push([item.longitude, item.latitude]) path.push([item.longitude, item.latitude])
}); });
PATH = path;
var polyline1 = new AMap.Polyline({ var polyline1 = new AMap.Polyline({
map: map, map: map,
path: path, // 设置线覆盖物路径 path: path, // 设置线覆盖物路径
@ -122,9 +142,13 @@ function PatrolGis(props) {
} }
return ( return (
<div style={{ width: '100%', backgroundColor: '#101824', height: '100%', minHeight: 700 }}> <div style={{ width: '100%', backgroundColor: '#101824', height: '100%', minHeight: 700, position: 'relative' }}>
<div id='amapId' style={{ width: '100%', height: '100%', background: "#101824", minHeight: 700 }} /> <div id='amapId' style={{ width: '100%', height: '100%', background: "#101824", minHeight: 700 }} />
<RangePicker onChange={(date, dateString) => { setDateRange(dateString) }} /> <div style={{ position: 'absolute', top: 8, left: 20, display: userId ? 'block' : 'none' }}>
<RangePicker
onChange={(date, dateString) => { setDateRange(dateString) }}
/>
</div>
{mapObj ? <Bounds map={mapObj} /> : ''} {mapObj ? <Bounds map={mapObj} /> : ''}
</div > </div >
) )

106
web/client/src/sections/fillion/components/highways/highwaysdata.js

@ -0,0 +1,106 @@
import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import { Form, Spin, Table } from 'antd';
import { ModalForm, ProForm, ProFormText,ProFormSelect } from '@ant-design/pro-form';
import { putOperaTional,putHighways } from "../../actions/infor"
const HightModal = (props) => {
const { visible, onVisibleChange, typecard, rewkeys, recortd, dispatch, setRecortd } = props
const [success,setSuccess]=useState()
useEffect(() => {
return () => {
setRecortd()
}
}, [setRecortd])
// console.log(recortd)
return (
<Spin spinning={false}>
{/* {
newlysay ? */}
<ModalForm
width={'90rem'}
visible={visible}
onVisibleChange={onVisibleChange}
onFinish={(values) => {
if (rewkeys === 'passenger') {
console.log(values)
const query = { ...values, id:recortd?.id }
dispatch(putOperaTional(query)).then((res) => {
setSuccess(res.success)
})
return true
}
if (rewkeys === 'highways') {
console.log(values)
const query = { ...values, id:recortd?.id }
dispatch(putHighways(query)).then((res) => {
setSuccess(res.success)
})
return true
}
}}
initialValues={recortd}
>
{typecard == '111' ?
<ProForm.Group
>
<ProFormText
name='name'
width="md"
label='类型'
tooltip="最长为 24 位"
placeholder="请输入名称"
// value={recortd?.[0]?.value}
disabled
rules={[{ required: true, message: "必填" }]}
/>
<ProFormText
name='count'
width="md"
label='数量'
tooltip="最长为 24 位"
placeholder="请输入名称"
/>
</ProForm.Group>
: <ProForm.Group>
<ProFormText
name={newlys?.[0]?.type}
width="md"
label={newlys?.[0]?.name}
tooltip="最长为 24 位"
placeholder="请输入名称"
/>
</ProForm.Group>}
</ModalForm>
{/* : ''
} */}
</Spin>
)
}
function mapStateToProps(state) {
const { depMessage } = state;
const pakData = (dep) => {
return dep.map((d) => {
return {
title: d.name,
value: d.id,
children: pakData(d.subordinate)
}
})
}
let depData = pakData(depMessage.data || [])
return {
loading: depMessage.isRequesting,
depData,
};
}
export default connect(mapStateToProps)(HightModal);

74
web/client/src/sections/fillion/components/highwaysTable.js

@ -1,27 +1,27 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState,useRef } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Spin, Button, Popconfirm, Badge } from 'antd'; import { Spin, Button, Popconfirm, Badge } from 'antd';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import './protable.less' import './protable.less'
import moment from 'moment'; import { getHighways } from "../actions/infor"
import { getReportStatistic } from "../actions/infor" import HightModal from './highways/highwaysdata';
import UserModal from './infor/details';
const HigwaysTable = (props) => { const HigwaysTable = (props) => {
const { dispatch, user, depData, depMessage, depLoading } = props const { dispatch, user, } = props
const [rowSelected, setRowSelected] = useState([]) const [rowSelected, setRowSelected] = useState([])
const [regionId, setRegionId] = useState()//区域id
const [placeType, setPlaceType] = useState()//场所
const [day, setDay] = useState([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])//日期
const [sitename, setSitename] = useState()//场所名称
const [counts, setCounts] = useState()//shuju const [counts, setCounts] = useState()//shuju
const [modalVisible, setModalVisible] = useState(false); const [modalVisibleyilan, setModalVisibleyilan] = useState(false);
const [modalRecord, setModalRecord] = useState(); const [modalRecord, setModalRecord] = useState();
const [typecard, setTypecard] = useState(); const [typecard, setTypecard] = useState();
const [recortd, setRecortd] = useState()
const [sitename, setSitename] = useState()//桥梁名称
const ref = useRef()
useEffect(() => { ref.current.reload() }, [ modalVisibleyilan])
//打开弹窗 //打开弹窗
const openModal = (type, record) => { const hightModal = (type, record) => {
setModalVisible(true); setModalVisibleyilan(true);
// setModalType(type); // setModalType(type);
if (type == 'edit') { if (type == 'edit') {
setModalRecord(record); setModalRecord(record);
@ -61,6 +61,9 @@ const exports = (ids, counts) => {
placeholder: '请输入类型进行搜索', placeholder: '请输入类型进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
render: (dom, record) => {
return record.name
},
}, },
{ {
title: '数量', title: '数量',
@ -70,7 +73,7 @@ const exports = (ids, counts) => {
fixed: 'left', fixed: 'left',
width: 120, width: 120,
render: (dom, record) => { render: (dom, record) => {
return record.address return record.count
}, },
fieldProps: { fieldProps: {
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
@ -86,8 +89,9 @@ const exports = (ids, counts) => {
render: (dom, record) => { render: (dom, record) => {
return <div><Button type="link" return <div><Button type="link"
onClick={() => { onClick={() => {
openModal('edit', record) hightModal('edit', record)
setTypecard('111') setTypecard('111')
setRecortd(record)
}} }}
>编辑</Button></div> >编辑</Button></div>
@ -99,17 +103,13 @@ const exports = (ids, counts) => {
<Spin spinning={false}> <Spin spinning={false}>
<div className='protable-transpor'> <div className='protable-transpor'>
<ProTable <ProTable
actionRef={ref}
scroll={{ x: 800 }} scroll={{ x: 800 }}
options={false} options={false}
ref={c => { finishedProductTable = c; }} ref={c => { finishedProductTable = c; }}
style={{ width: "100% ", overflow: "auto", height: '760px' }} style={{ width: "100% ", overflow: "auto", height: '760px' }}
rowKey='id' rowKey='id'
onReset={(v) => { onReset={(v) => {
const { id } = depMessage[0]
console.log(id)
setRegionId(id)
setPlaceType(-1)
setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])
setSitename('') setSitename('')
}} }}
rowSelection={{ rowSelection={{
@ -120,46 +120,30 @@ const exports = (ids, counts) => {
}} }}
columns={columns} columns={columns}
dataSource={(counts || {}).rows || []} dataSource={counts || []}
request={async (params) => { request={async (params) => {
const query = { const query = {
startDate: day[0], name:sitename
endDate: day[1],
placeType: placeType,
regionId: regionId,
placeName: sitename,
limit: params.pageSize,
offset: ((params.current ? params.current : 1) - 1) * params.pageSize
} }
setRowSelected([]); setRowSelected([]);
const res = await dispatch(getReportStatistic(query)); const res = await dispatch(getHighways(query));
setCounts(res.payload.data) setCounts(res.payload.data)
return { return {
...res, ...res,
total: res.payload.data ? res.payload.data.count : 0 total: res.payload.data ? res.payload.data.count : 0
} }
}} }}
search={{
defaultCollapsed: false,
optionRender: (searchConfig, formProps, dom) => [
...dom.reverse(),
// <Popconfirm title="确认导出?" onConfirm={() => { props.exports(rowSelected, counts) }}>
// <Button
// >
// 导出
// </Button>
// </Popconfirm>
],
}}
> >
</ProTable></div> </ProTable></div>
<UserModal {modalVisibleyilan ? <HightModal
visible={modalVisible} visible={modalVisibleyilan}
onVisibleChange={setModalVisible} onVisibleChange={setModalVisibleyilan}
modalRecord={modalRecord} modalRecord={modalRecord}
typecard={typecard} typecard={typecard}
/> rewkeys={'highways'}
recortd={recortd}
setRecortd={setRecortd}
/> : ''}
</Spin > </Spin >
) )
} }

204
web/client/src/sections/fillion/components/infor/details.js

@ -1,17 +1,19 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Form, Spin, Table } from 'antd'; import { Form, Spin, Table } from 'antd';
import { DrawerForm, ProForm, ProFormText } from '@ant-design/pro-form'; import { DrawerForm, ProForm, ProFormText, ProFormSelect } from '@ant-design/pro-form';
import { putRoadway } from "../../actions/infor" import { putRoadway, putSpecificVehicle, putHouseholds,putCircuit,putVehicle } from "../../actions/infor"
import { putBridge } from "../../actions/infor" import { putBridge } from "../../actions/infor"
const UserModal = (props) => { const UserModal = (props) => {
const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename, dispatch, date, setRecortd,engineering } = props const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename, dispatch, setRecortd, engineering } = props
const [newlys, setNewlys] = useState() //必填数据 const [newlys, setNewlys] = useState() //必填数据
const [newlysay, setNewlysay] = useState() //处理hou const [newlysay, setNewlysay] = useState() //处理hou
const [records, setRecords] = useState()//处理 const [records, setRecords] = useState()//处理
const [recordsay, setRecordsay] = useState()//必填数据 const [recordsay, setRecordsay] = useState()//必填数据
const [success, setSuccess] = useState() //状态 // const [success, setSuccess] = useState() //状态
// const [establishment, setEstablishment] = useState() //业户类型
console.log(recortd)
useEffect(() => { useEffect(() => {
const array = [] const array = []
if (rewkeys === 'transportation') { if (rewkeys === 'transportation') {
@ -24,7 +26,44 @@ const UserModal = (props) => {
}); });
setNewlys(array?.splice(0, 2)) setNewlys(array?.splice(0, 2))
setNewlysay(array) setNewlysay(array)
console.log(array) // console.log(array)
}
if (rewkeys === 'weihuo') {
_.forIn(data, function (value, key) {
array.push({ name: value, type: key })
});
setNewlys(array?.splice(0, 2))
setNewlysay(array)
// console.log(array)
}
if (rewkeys === 'chuzu') {
_.forIn(data, function (value, key) {
array.push({ name: value, type: key })
});
array?.splice(1, 1)
setNewlys(array?.splice(0, 2))
setNewlysay(array)
}
if (rewkeys === 'yehu') {
_.forIn(data, function (value, key) {
array.push({ name: value, type: key })
});
setNewlys(array?.splice(0, 2))
setNewlysay(array)
// console.log(array)
}if (rewkeys === 'xianlu') {
_.forIn(data, function (value, key) {
array.push({ name: value, type: key })
});
setNewlys(array?.splice(0, 2))
setNewlysay(array)
}if (rewkeys === 'cheliang') {
_.forIn(data, function (value, key) {
array.push({ name: value, type: key })
});
setNewlys(array?.splice(0, 2))
setNewlysay(array)
} }
}, []) }, [])
useEffect(() => { useEffect(() => {
@ -43,12 +82,48 @@ const UserModal = (props) => {
setRecordsay(arr.splice(1, 2)) setRecordsay(arr.splice(1, 2))
setRecords(arr) setRecords(arr)
} }
if (rewkeys === 'weihuo') {
_.forIn(recortd, function (value, key) {
arr.push({ value: value, type: key })
});
setRecordsay(arr.splice(1, 2))
setRecords(arr)
}
if (rewkeys === 'chuzu') {
_.forIn(recortd, function (value, key) {
arr.push({ value: value, type: key })
});
setRecordsay(arr.splice(1, 2))
setRecords(arr)
} if (rewkeys === 'yehu') {
_.forIn(recortd, function (value, key) {
arr.push({ value: value, type: key })
});
setRecordsay(arr.splice(1, 2))
// setEstablishment(arr.splice(-1, 1))
setRecords(arr)
}
if (rewkeys === 'xianlu') {
_.forIn(recortd, function (value, key) {
arr.push({ value: value, type: key })
});
setRecordsay(arr.splice(1, 2))
// setEstablishment(arr.splice(-1, 1))
setRecords(arr)
}if (rewkeys === 'cheliang') {
_.forIn(recortd, function (value, key) {
arr.push({ value: value, type: key })
});
setRecordsay(arr.splice(1, 2))
// setEstablishment(arr.splice(-1, 1))
setRecords(arr)
}
}, [recortd]) }, [recortd])
useEffect(() => { useEffect(() => {
return () => { return () => {
setRecortd() setRecortd()
} }
}, []) }, [setRecortd])
// console.log(recortd) // console.log(recortd)
return ( return (
<Spin spinning={false}> <Spin spinning={false}>
@ -59,20 +134,21 @@ const UserModal = (props) => {
visible={visible} visible={visible}
onVisibleChange={onVisibleChange} onVisibleChange={onVisibleChange}
onFinish={(values) => { onFinish={(values) => {
console.log(values)
if (Object.values(values).length > 0) {
if (rewkeys === 'transportation') { if (rewkeys === 'transportation') {
if (typecard == '111') { if (typecard == '111') {
console.log(values)
const query = { ...values, level: sitename, roadId: records?.[0]?.value || '' } const query = { ...values, level: sitename, roadId: records?.[0]?.value || '' }
dispatch(putRoadway(query)).then((res) => { dispatch(putRoadway(query)).then((res) => {
setSuccess(res.success) setSuccess(res.success)
}) })
return success return true
} else { } else {
const query = { ...values, level: sitename } const query = { ...values, level: sitename }
dispatch(putRoadway(query)).then((res) => { dispatch(putRoadway(query)).then((res) => {
setSuccess(res.success) setSuccess(res.success)
}) })
return success return true
} }
} }
if (rewkeys === 'bridge') { if (rewkeys === 'bridge') {
@ -82,15 +158,80 @@ const UserModal = (props) => {
dispatch(putBridge(query)).then((res) => { dispatch(putBridge(query)).then((res) => {
setSuccess(res.success) setSuccess(res.success)
}) })
return success return true
} else { } else {
const query = { ...values } const query = { ...values }
dispatch(putBridge(query)).then((res) => { dispatch(putBridge(query)).then((res) => {
setSuccess(res.success) setSuccess(res.success)
}) })
return success return true
}
} }
if (rewkeys === 'weihuo' || rewkeys === 'chuzu') {
if (typecard == '111') {
console.log(values)
const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys === 'chuzu' ? '出租车' : '危货' }
dispatch(putSpecificVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
const query = { ...values, type: rewkeys }
dispatch(putSpecificVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
} }
}
if (rewkeys === 'yehu') {
if (typecard == '111') {
console.log(values)
const query = { ...values, businessId: records?.[0]?.value, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
dispatch(putHouseholds(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
const query = { ...values, type: rewkeys === 'chuzu' ? '出租车' : '危货' }
dispatch(putHouseholds(query)).then((res) => {
setSuccess(res.success)
})
return true
}
}if (rewkeys === 'xianlu') {
if (typecard == '111') {
console.log(values)
const query = { ...values, lineId:records?.[0]?.value || '' }
dispatch(putCircuit(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
const query = { ...values }
dispatch(putCircuit(query)).then((res) => {
setSuccess(res.success)
})
return true
}
}
if (rewkeys === 'cheliang') {
if (typecard == '111') {
console.log(values)
const query = { ...values, carId:records?.[0]?.value || '' }
dispatch(putVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
const query = { ...values }
dispatch(putVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
}
}
} else { return false }
}} }}
initialValues={recortd} initialValues={recortd}
> >
@ -104,7 +245,7 @@ const UserModal = (props) => {
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
value={recordsay?.[0]?.value} value={recordsay?.[0]?.value}
rules={[{ required: true, message: "必填" }]} // rules={[{ required: true, message: "必填" }]}
/><ProFormText /><ProFormText
name={newlys?.[1]?.type} name={newlys?.[1]?.type}
width="md" width="md"
@ -112,9 +253,24 @@ const UserModal = (props) => {
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
value={recordsay?.[1]?.value} value={recordsay?.[1]?.value}
rules={[{ required: true, message: "必填" }]} // rules={[{ required: true, message: "必填" }]}
/> />
{rewkeys === 'yehu' ?
<ProFormSelect
rules={[{ required: true, message: "必填" }]}
options={[
{
value: '出租车',
label: '出租车',
}, {
value: '危货',
label: '危险货运',
},
]}
name='type'
label='类型'
/> : null
}
{newlysay?.map((item, index) => { {newlysay?.map((item, index) => {
return <ProFormText width="md" return <ProFormText width="md"
name={item?.type} label={newlysay[index]?.name} placeholder="请输入名称" name={item?.type} label={newlysay[index]?.name} placeholder="请输入名称"
@ -131,7 +287,7 @@ const UserModal = (props) => {
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
// value={recordssy?.[0]?.value} // value={recordssy?.[0]?.value}
rules={[{ required: true, message: "必填" }]} // rules={[{ required: true, message: "必填" }]}
/><ProFormText /><ProFormText
name={newlys?.[1]?.type} name={newlys?.[1]?.type}
width="md" width="md"
@ -139,8 +295,24 @@ const UserModal = (props) => {
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
// value={recordssy?.[1]?.value} // value={recordssy?.[1]?.value}
rules={[{ required: true, message: "必填" }]} // rules={[{ required: true, message: "必填" }]}
/> />
{rewkeys === 'yehu' ?
<ProFormSelect
rules={[{ required: true, message: "必填" }]}
options={[
{
value: '出租车',
label: '出租车',
}, {
value: '危货',
label: '危险货运',
},
]}
name='type'
label='类型'
/> : null
}
{newlysay?.map((item, index) => { {newlysay?.map((item, index) => {
return <ProFormText width="md" return <ProFormText width="md"
name={item?.type} label={newlysay[index]?.name} placeholder="请输入名称" key={index} name={item?.type} label={newlysay[index]?.name} placeholder="请输入名称" key={index}

1345
web/client/src/sections/fillion/components/operationalTable.js

File diff suppressed because it is too large

35
web/client/src/sections/fillion/components/patrolTable.js

@ -126,7 +126,7 @@ const DetailList = (props) => {
dataIndex: 'userName', dataIndex: 'userName',
align: 'center', align: 'center',
render: (text, record) => { render: (text, record) => {
return record.user.name return record?.user?.name || ''
} }
}, { }, {
title: '上报时间', title: '上报时间',
@ -254,6 +254,7 @@ const PatrolTable = (props) => {
const [record, setRecord] = useState(); const [record, setRecord] = useState();
const [dateRange, setDateRange] = useState(); const [dateRange, setDateRange] = useState();
const [detailVisible, setDetailVisible] = useState(false) const [detailVisible, setDetailVisible] = useState(false)
const [activeTabKey1, setActiveTabKey1] = useState('tab1');
const { RangePicker } = DatePicker; const { RangePicker } = DatePicker;
@ -265,6 +266,11 @@ const PatrolTable = (props) => {
useEffect(() => { useEffect(() => {
if (record) { if (record) {
queryData();
}
}, [record, dateRange])
const queryData = () => {
let query = { userId: record.id, reportType: 'patrol' } let query = { userId: record.id, reportType: 'patrol' }
if ((dateRange && dateRange instanceof Array)) { if ((dateRange && dateRange instanceof Array)) {
query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss') query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss')
@ -272,7 +278,14 @@ const PatrolTable = (props) => {
} }
dispatch(getReportList(query)); dispatch(getReportList(query));
} }
}, [record, dateRange])
useEffect(() => {
if (activeTabKey1 && activeTabKey1 == 'tab2') {
setRecord(null);
} else if (activeTabKey1 && activeTabKey1 == 'tab1') {
setRecord(userList[0]);
}
}, [activeTabKey1])
const handelRefresh = () => { const handelRefresh = () => {
let query = { userId: record.id, reportType: 'patrol' } let query = { userId: record.id, reportType: 'patrol' }
@ -301,16 +314,28 @@ const PatrolTable = (props) => {
<DetailList reportList={reportList} record={record} loading={reportListLoading} dispatch={dispatch} handleOpen={handleOpen} handelRefresh={handelRefresh} /> <DetailList reportList={reportList} record={record} loading={reportListLoading} dispatch={dispatch} handleOpen={handleOpen} handelRefresh={handelRefresh} />
</Card> </Card>
</div>], </div>],
tab2: <PatrolGis userId={(record ||{}).id} dispatch={dispatch} /> tab2: <PatrolGis userId={(record || {}).id} dispatch={dispatch} reportList={reportList} />
}; };
const [activeTabKey1, setActiveTabKey1] = useState('tab1');
const onTab1Change = (key) => { const onTab1Change = (key) => {
setActiveTabKey1(key); setActiveTabKey1(key);
}; };
const handleChangeRecord = (newRecord) => {
let target = null;
if (!record || newRecord.id != record.id) {
target = newRecord;
}
setRecord(target);
}
return ( return (
<div className='card-protable'> <div className='card-protable'>
<Card > <Card >
<PatrolNameList onChange={(record) => setRecord(record)} record={record} userList={userList} loading={userLoading} /> <PatrolNameList
onChange={(record) => handleChangeRecord(record)}
record={record}
userList={userList}
loading={userLoading} />
</Card> </Card>
<Card <Card
style={{ flex: 1 }} style={{ flex: 1 }}

4
web/client/src/sections/fillion/components/project/project.js

@ -121,7 +121,7 @@ const ProjectModal = (props) => {
label={newlys?.[0]?.name} label={newlys?.[0]?.name}
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
value={recordsay?.[0]?.value} // value={recordsay?.[0]?.value}
rules={[{ required: true, message: "必填" }]} rules={[{ required: true, message: "必填" }]}
/><ProFormText /><ProFormText
name={newlys?.[1]?.type} name={newlys?.[1]?.type}
@ -129,7 +129,7 @@ const ProjectModal = (props) => {
label={newlys?.[1]?.name} label={newlys?.[1]?.name}
tooltip="最长为 24 位" tooltip="最长为 24 位"
placeholder="请输入名称" placeholder="请输入名称"
value={recordsay?.[1]?.value} // value={recordsay?.[1]?.value}
rules={[{ required: true, message: "必填" }]} rules={[{ required: true, message: "必填" }]}
/> />
<ProFormSelect <ProFormSelect

1044
web/client/src/sections/fillion/components/publicTable.js

File diff suppressed because it is too large

172
web/client/src/sections/fillion/components/transportationTable.js

@ -4,17 +4,14 @@ import { Spin, Button, Popconfirm, Badge } from 'antd';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import './protable.less' import './protable.less'
import moment from 'moment'; import moment from 'moment';
import { getRoadway, getProject, putRoadway } from "../actions/infor" import { getRoadway, getProject, delRoadway, delProject } from "../actions/infor"
import UserModal from './infor/details'; import UserModal from './infor/details';
import ProjectModal from './project/project'; import ProjectModal from './project/project';
const TransporTationTable = (props) => { const TransporTationTable = (props) => {
const { dispatch, user, depData, depMessage, depLoading } = props const { dispatch, user, depData, depMessage, depLoading } = props
const [rowSelected, setRowSelected] = useState([]) const [rowSelected, setRowSelected] = useState([])
// const [regionId, setRegionId] = useState()//区域id const [sitename, setSitename] = useState()//桥梁名称
// const [placeType, setPlaceType] = useState()//场所
// const [day, setDay] = useState([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])//日期
const [sitename, setSitename] = useState()//场所名称
const [counts, setCounts] = useState()//shuju const [counts, setCounts] = useState()//shuju
const [modalVisible, setModalVisible] = useState(false); const [modalVisible, setModalVisible] = useState(false);
const [modalVisibleyilan, setModalVisibleyilan] = useState(false); const [modalVisibleyilan, setModalVisibleyilan] = useState(false);
@ -22,29 +19,10 @@ const TransporTationTable = (props) => {
const [typecard, setTypecard] = useState(); const [typecard, setTypecard] = useState();
const [activeKey, setActiveKey] = useState('tab1'); const [activeKey, setActiveKey] = useState('tab1');
const [recortd, setRecortd] = useState() const [recortd, setRecortd] = useState()
// const ref = useRef() const [whichofits, setWhichofits] = useState('xian')
//请求数据 const [delet, setDelet] = useState()
const requestRoadway = (name) => { const ref = useRef()
const query = { useEffect(() => { ref.current.reload() }, [modalVisible, modalVisibleyilan, whichofits, delet])
level: name
}
setSitename(name)
setRowSelected([]);
dispatch(getRoadway(query)).then((res) => {
setCounts(res.payload.data)
});
}
// useEffect(()=>{ref.current.reload()},[counts])
//工程数据
const requestProject = () => {
const query = {
type: '道路'
}
setRowSelected([]);
dispatch(getProject(query)).then((res) => {
setCounts(res.payload.data)
})
}
//打开弹窗 //打开弹窗
const openModal = (type, record) => { const openModal = (type, record) => {
setModalVisible(true); setModalVisible(true);
@ -91,9 +69,9 @@ const TransporTationTable = (props) => {
options: 1, options: 1,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => { onChange: (value, cs) => {
// setSitename(value.currentTarget.value) setSitename(value.currentTarget.value)
// }, },
placeholder: '请输入道路名称进行搜索', placeholder: '请输入道路名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
@ -1197,11 +1175,17 @@ const TransporTationTable = (props) => {
setRecortd(record) setRecortd(record)
openModal('edit', record) openModal('edit', record)
setTypecard('111') setTypecard('111')
// sessionStorage.setItem('record', JSON.stringify(record))
// sessionStorage.setItem('newly', JSON.stringify(data))
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link"
onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
} }
}, },
@ -1245,9 +1229,9 @@ const TransporTationTable = (props) => {
options: 1, options: 1,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => { onChange: (value, cs) => {
// setSitename(value.currentTarget.value) setSitename(value.currentTarget.value)
// }, },
placeholder: '请输入道路名称进行搜索', placeholder: '请输入道路名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
@ -2353,7 +2337,14 @@ const TransporTationTable = (props) => {
setRecortd(record) setRecortd(record)
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link" onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}>删除</Button></div>
} }
}, },
@ -2398,9 +2389,9 @@ const TransporTationTable = (props) => {
options: 1, options: 1,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => { onChange: (value, cs) => {
// setSitename(value.currentTarget.value) setSitename(value.currentTarget.value)
// }, },
placeholder: '请输入道路名称进行搜索', placeholder: '请输入道路名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
@ -3506,7 +3497,15 @@ const TransporTationTable = (props) => {
setRecortd(record) setRecortd(record)
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link" onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
} }
}, },
@ -3551,9 +3550,9 @@ const TransporTationTable = (props) => {
options: 1, options: 1,
backgroundColor: "#ffffff", backgroundColor: "#ffffff",
fieldProps: { fieldProps: {
// onChange: (value, cs) => { onChange: (value, cs) => {
// setSitename(value.currentTarget.value) setSitename(value.currentTarget.value)
// }, },
placeholder: '请输入项目名称进行搜索', placeholder: '请输入项目名称进行搜索',
getPopupContainer: (triggerNode) => triggerNode.parentNode, getPopupContainer: (triggerNode) => triggerNode.parentNode,
}, },
@ -3689,7 +3688,16 @@ const TransporTationTable = (props) => {
setTypecard('111') setTypecard('111')
setRecortd(record) setRecortd(record)
}} }}
>编辑</Button><Button type="link"></Button></div> >编辑</Button><Button type="link"
onClick={() => {
const query = {
projectId: record.id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
} }
}, },
@ -3729,7 +3737,7 @@ const TransporTationTable = (props) => {
<Spin spinning={false}> <Spin spinning={false}>
<div className='protable-transpor'> <div className='protable-transpor'>
<ProTable <ProTable
// actionRef={ref} actionRef={ref}
toolbar={{ toolbar={{
multipleLine: true, multipleLine: true,
menu: { menu: {
@ -3738,18 +3746,26 @@ const TransporTationTable = (props) => {
items: [ items: [
{ {
key: 'tab1', key: 'tab1',
label: <span onClick={() => requestRoadway('县')}>县道{activeKey === 'tab1'}</span>, label: <span onClick={() => {
setWhichofits('xian')
}}>县道{activeKey === 'tab1'}</span>,
}, },
{ {
key: 'tab2', key: 'tab2',
label: <span onClick={() => requestRoadway('乡')}>乡道{activeKey === 'tab2'}</span>, label: <span onClick={() => {
setWhichofits('xiang')
}}>乡道{activeKey === 'tab2'}</span>,
}, },
{ {
key: 'tab3', key: 'tab3',
label: <span onClick={() => requestRoadway('村')}>村道{activeKey === 'tab3'}</span>, label: <span onClick={() => {
setWhichofits('cun')
}}>村道{activeKey === 'tab3'}</span>,
}, { }, {
key: 'tab4', key: 'tab4',
label: <span onClick={() => requestProject()}>工程一览{activeKey === 'tab4'}</span>, label: <span onClick={() => {
setWhichofits('gongcheng')
}}>工程一览{activeKey === 'tab4'}</span>,
}, },
], ],
}, },
@ -3760,12 +3776,7 @@ const TransporTationTable = (props) => {
style={{ width: "100% ", overflow: "auto", height: '760px' }} style={{ width: "100% ", overflow: "auto", height: '760px' }}
rowKey='id' rowKey='id'
onReset={(v) => { onReset={(v) => {
const { id } = depMessage[0] setSitename('')
// console.log(id)
// setRegionId(id)
// setPlaceType(-1)
// setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])
// setSitename('')
}} }}
rowSelection={{ rowSelection={{
selectedRowKeys: rowSelected, selectedRowKeys: rowSelected,
@ -3774,14 +3785,13 @@ const TransporTationTable = (props) => {
}, },
}} }}
columns={columns[activeKey]} columns={columns[activeKey]}
dataSource={counts || []} dataSource={counts || []}
request={async (params) => { request={async (params) => {
if (whichofits == 'xian') {
const query = { const query = {
level: '县' level: '县',
road: sitename
} }
setSitename('县')
setRowSelected([]); setRowSelected([]);
const res = await dispatch(getRoadway(query)); const res = await dispatch(getRoadway(query));
// console.log(res) // console.log(res)
@ -3791,6 +3801,44 @@ const TransporTationTable = (props) => {
...res, ...res,
total: res.payload.data ? res.payload.data.count : 0 total: res.payload.data ? res.payload.data.count : 0
} }
} if (whichofits == 'xiang') {
const query = {
level: '乡',
road: sitename
}
setRowSelected([]);
const res = await dispatch(getRoadway(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
} if (whichofits == 'cun') {
const query = {
level: '村',
road: sitename
}
setRowSelected([]);
const res = await dispatch(getRoadway(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
if (whichofits == 'gongcheng') {
const query = {
type: 'road',
// type:sitename
}
setRowSelected([]);
const res = await dispatch(getProject(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
}} }}
search={{ search={{
defaultCollapsed: false, defaultCollapsed: false,

4
web/client/src/sections/fillion/nav-item.js

@ -20,9 +20,9 @@ export function getNavItem(user, dispatch) {
<Menu.Item key="fillionoperational"> <Menu.Item key="fillionoperational">
<Link to="/fillion/operational">运政管理</Link> <Link to="/fillion/operational">运政管理</Link>
</Menu.Item> </Menu.Item>
<Menu.Item key="fillionenforce"> {/* <Menu.Item key="fillionenforce">
<Link to="/fillion/enforce">执法管理</Link> <Link to="/fillion/enforce">执法管理</Link>
</Menu.Item> </Menu.Item> */}
<Menu.Item key="fillionmaintenance"> <Menu.Item key="fillionmaintenance">
<Link to="/fillion/maintenance">养护管理</Link> <Link to="/fillion/maintenance">养护管理</Link>
</Menu.Item> </Menu.Item>

53
web/client/src/sections/quanju/containers/example.js

@ -6,12 +6,14 @@ import '../style.less';
import Header from './heand'; import Header from './heand';
import Footer from './footer'; import Footer from './footer';
import ProTable, { TableDropdown } from '@ant-design/pro-table'; import ProTable, { TableDropdown } from '@ant-design/pro-table';
import Gis from './footer/gis/gis';
const MAPID = 'screenGis' const MAPID = 'screenGis'
const Example = (props) => { const Example = (props) => {
const { dispatch, actions, user, loading } = props const { dispatch, actions, user, loading } = props
const [tabKey, setTabKey] = useState('leadership') const [tabKey, setTabKey] = useState('leadership')
const [mapObj, setMapObj] = useState();
// useEffect(() => { // useEffect(() => {
// dispatch(actions.example.getMembers(user.orgId)) // dispatch(actions.example.getMembers(user.orgId))
@ -24,53 +26,6 @@ const Example = (props) => {
} }
// useEffect(() => {
// const map = new AMap.Map(MAPID, {
// //resizeEnable: true,
// center: [115.912663, 28.543149],//地图中心点,初始定位加载显示楼块
// // center: [115.857952, 28.683003],//地图中心点
// zoom: 13,//地图显示的缩放级别
// zooms: [8, 18],
// pitch: 65, // 地图俯仰角度,有效范围 0 度- 83 度
// viewMode: '3D', // 地图模式
// // rotation: 60
// // showLabel: false
// });
// let styleName = 'amap://styles/fb26776387242721c2fc32e2cb1daccc';
// map.setMapStyle(styleName);
// let mapComplete = false;
// let windowOnload = false;
// window.onload = function () {
// windowOnload = true;
// }
// //主题样式
// //主题样式
// return () => {
// const amapKeys = Object.keys(localStorage).filter(key => key.match(/^_AMap_/)) // 销毁地图
// amapKeys.forEach(key => {
// localStorage.removeItem(key)
// })
// map.clearMap();
// if (map) map.destroy();
// clearTimeout(timer)
// }
// }, [])
return ( return (
<Spin tip="biubiubiu~" spinning={loading}> <Spin tip="biubiubiu~" spinning={loading}>
@ -80,11 +35,11 @@ const Example = (props) => {
document.body.clientHeight / 1080 document.body.clientHeight / 1080
)})`, */ )})`, */
}}> }}>
{/* <div id={MAPID} style={{ position: 'absolute', width: "100%", height: "100%" }}></div> */} <Gis />
<div style={{ width: "100%", height: "10%" }}> <div style={{ width: "100%", height: "10%" }}>
<Header tabChange={tabChange} tabKey={tabKey} dispatch={dispatch} /> <Header tabChange={tabChange} tabKey={tabKey} dispatch={dispatch} />
</div> </div>
<div style={{ width: "100%", height: "90%" }}> <div style={{position: 'absolute', width: "100%", height: "90%" }}>
<Footer tabKey={tabKey} dispatch={dispatch} /> <Footer tabKey={tabKey} dispatch={dispatch} />
</div> </div>

189
web/client/src/sections/quanju/containers/footer/gis/bounds.js

@ -0,0 +1,189 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { geoJson } from './mock_data';
export default class Bounds extends Component {
constructor(props) {
super(props);
this.map = props.map;
this.pl = {};
this.textMarker = {};
}
static propTypes = {
prop: PropTypes
}
componentDidMount() {
if (!window.BoundPl) {
this.drawBounds();
}
}
componentWillUnmount() {
if (window.local_)
window.local_.remove(this.pl);
this.textMarker = null;
window.BoundPl = null;
}
drawBounds = () => {
var map = this.map;
var loca = window.local_;
loca.ambLight = {
intensity: 0.3,
color: '#fff',
};
loca.dirLight = {
intensity: 0.6,
color: '#fff',
target: [0, 0, 0],
position: [0, -1, 1],
};
loca.pointLight = {
color: 'rgb(100,100,100)',
position: [120.24289, 30.341335, 20000],
intensity: 3,
// 距离表示从光源到光照强度为 0 的位置,0 就是光不会消失。
distance: 50000,
};
var geo = new Loca.GeoJSONSource({
data: geoJson
});
var colors = ['#04398c', '#04398c', '#0542a5'].reverse();
var height = [500];
var pl = new Loca.PolygonLayer({
// loca,
zIndex: 1,
opacity: 0.6,
// cullface: 'none',
shininess: 10,
hasSide: true,
});
pl.setSource(geo);
pl.setStyle({
topColor: function (index, feature) {
var i = index % 3;
return colors[i];
},
sideColor: function (index, feature) {
return '#023890';
},
borderColor: function () {
return '#24dcf7'
},
height: function (index, feature) {
return index == 0 ? height[0] : height[0] + index * 50;
},
altitude: 0,
});
loca.add(pl);
// 创建纯文本标记
var text = new AMap.Text({
text: '纯文本标记',
anchor: 'center', // 设置文本标记锚点
draggable: true,
cursor: 'pointer',
angle: 0,
visible: false,
offset: [60, 60],
extData: 'bounds_text',
style: {
'padding': '5px 10px',
'margin-bottom': '1rem',
'border-radius': '.25rem',
'background-color': 'rgba(0,0,0,0.5)',
// 'width': '12rem',
'border-width': 0,
'box-shadow': '0 2px 6px 0 rgba(255, 255, 255, .3)',
'text-align': 'center',
'font-size': '16px',
'color': '#fff',
},
});
// text.setMap(map);
if (!this.textMarker)
map.add(text);
this.textMarker = text;
console.log(text)
// 拾取
map.on('mousemove', (e) => {
var feat = pl.queryFeature(e.pixel.toArray());
// if (!text) {
map.add(text);
// text = this.textMarker;
// }
if (feat) {
text.show();
text.setText(feat.properties.NAME);
text.setPosition(e.lnglat);
pl.setStyle({
topColor: (index, feature) => {
if (feature === feat) {
return [19, 43, 77, 1];
}
// var v = feature.properties.health * 100;
var i = index % 3;
return colors[i];
},
sideColor: (index, feature) => {
if (feature === feat) {
return '#023890';
}
return '#023890';
},
borderColor: function () {
return '#24dcf7'
},
height: function (index, feature) {
return index == 0 ? height[0] : height[0] + index * 50;
},
});
} else {
pl.setStyle({
topColor: function (index, feature) {
var i = index % 3;
return colors[i];
},
sideColor: function (index, feature) {
return '#023890';
},
borderColor: function () {
return '#24dcf7'
},
height: function (index, feature) {
return index == 0 ? height[0] : height[0] + index * 50;
},
altitude: 0,
});
text.hide();
map.remove(text);
}
});
map.setZoom(11)
map.setCenter([115.912663,28.543149]);
map.setRotation(-68.7);
map.setPitch(42);
this.pl = pl;
window.BoundPl = pl;
}
render() {
return (
<div>
</div>
)
}
}

53
web/client/src/sections/quanju/containers/footer/gis/gis.js

@ -0,0 +1,53 @@
import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import Bounds from './bounds';
const MAPID = 'screenGis'
const Gis = (props) => {
const [mapObj, setMapObj] = useState();
useEffect(() => {
if (AMap) loadMap();
return () => {
if (window.local_) {
window.local_ = null
}
if (mapObj)
mapObj.clearMap();
}
}, [true])
const loadMap = () => {
const map = new AMap.Map(MAPID, {
resizeEnable: true,
center: [115.912663,28.543149],//地图中心点,初始定位加载显示楼块
zoom: 15,//地图显示的缩放级别
zooms: [10, 12],
pitch: 0, // 地图俯仰角度,有效范围 0 度- 83 度
viewMode: '3D', // 地图模式
mapStyle: 'amap://styles/fb26776387242721c2fc32e2cb1daccc',
});
let windowOnload = false;
map.on('complete', function () {
if (!window.local_) {
window.local_ = new Loca.Container({ map });
setMapObj(map);
}
});
window.onload = function () {
windowOnload = true;
}
};
return (
<div style={{ position: 'absolute', width: '100%', backgroundColor: '#101824', height: '100%', minHeight: 700 }}>
<div id={MAPID} style={{ width: '100%', height: '100%', background: "#101824", minHeight: 700 }} />
{mapObj ? <Bounds map={mapObj} /> : ''}
</div >
)
}
export default Gis

59
web/client/src/sections/quanju/containers/footer/gis/mock_data.js

File diff suppressed because one or more lines are too long

20
web/client/src/sections/quanju/containers/footer/guanli/index.js

@ -11,6 +11,7 @@ const Guanli = (props) => {
const {dispatch} = props const {dispatch} = props
const [leftDatas,setleftDatas] = useState([]) const [leftDatas,setleftDatas] = useState([])
const [rightDatas,setrightDatas] = useState([]) const [rightDatas,setrightDatas] = useState([])
const [rightitemlist,setrightitemlist] = useState()
const requestleftDatas = async()=>{ const requestleftDatas = async()=>{
const res = await dispatch(getjiandmanage()) const res = await dispatch(getjiandmanage())
res.payload.data.sort((a,b)=>{ res.payload.data.sort((a,b)=>{
@ -21,8 +22,19 @@ const Guanli = (props) => {
} }
const requestRightDatas = async()=>{ const requestRightDatas = async()=>{
const res = await dispatch(getjiandetail()) const res = await dispatch(getjiandetail())
// let d = res.payload.data?.overSpeedList.sort((a,b)=>b.processingTime < a.processingTime ?-1:1)
var pattern = /[\u4e00-\u9fa5]*/;
let d = res.payload.data?.overSpeedList?.filter((item,index)=>{
return escape(item.processingTime).indexOf("%u")<0
})
// let d2 = d.sort((a,b)=>b.processingTime < a.processingTime ?-1:1)
let d2 = d.sort((a, b) => b.processingTime.localeCompare(a.processingTime))
setrightDatas(res.payload.data) setrightDatas(res.payload.data)
// console.log(res,'嘿嘿嘿') setrightitemlist(d)
console.log(d,'对比的数据')
console.log(d2,'完美')
console.log(res.payload.data,'嘿嘿嘿')
} }
useEffect(()=>{ useEffect(()=>{
requestleftDatas(); requestleftDatas();
@ -32,7 +44,7 @@ const Guanli = (props) => {
// datalist.fill({licensePlate:"赣A44454",overrunRate:"30%",fine:"200元",processingTime:"2020年4月1日"}) // datalist.fill({licensePlate:"赣A44454",overrunRate:"30%",fine:"200元",processingTime:"2020年4月1日"})
const renderContent = () => { const renderContent = () => {
return <div style={{height:"100%"}}> return <div style={{height:"100%"}}>
{rightDatas && rightDatas.length!==0?rightDatas.overSpeedList.map(({ id, licensePlate, overrunRate,fine,processingTime }, index) => { {rightitemlist && rightitemlist.length!==0?rightitemlist?.map(({ id, licensePlate, overrunRate,fine,processingTime }, index) => {
if(index<30){ if(index<30){
return <div key={index} className='guanli-right-item'> return <div key={index} className='guanli-right-item'>
<span>{licensePlate}</span> <span>{licensePlate}</span>
@ -74,9 +86,9 @@ const Guanli = (props) => {
<span>车牌号</span> <span>车牌号</span>
<span>超限</span> <span>超限</span>
<span>处罚</span> <span>处罚</span>
<span>日期</span> <span>处理日期</span>
</div> </div>
{rightDatas && rightDatas.length!==0?<AutoRollComponent content={renderContent()} {rightitemlist && rightitemlist.length!==0?<AutoRollComponent content={renderContent()}
containerStyle={{ position: "relative", height: "90%", }} containerStyle={{ position: "relative", height: "90%", }}
divHeight={"100%"} divId={"chart-overview-deviceList"} />:<NoData style={{height:"70%"}}/>} divHeight={"100%"} divId={"chart-overview-deviceList"} />:<NoData style={{height:"70%"}}/>}
</Module> </Module>

2
web/client/src/sections/quanju/containers/footer/guanli/style.less

@ -72,7 +72,7 @@
width: 8px; width: 8px;
height: 8px; height: 8px;
background-color: #fff; background-color: #fff;
bottom: 7.0625rem; top:1.5%;
left: 50%; left: 50%;
z-index: 10; z-index: 10;
border-radius: 4px; border-radius: 4px;

22
web/client/src/utils/webapi.js

@ -45,23 +45,24 @@ export const ApiTable = {
//运政管理 //运政管理
getOperaTional: 'vehicle', getOperaTional: 'vehicle',putOperaTional: 'vehicle',
getSpecificVehicle: 'vehicle/specific', getSpecificVehicle: 'vehicle/specific',putSpecificVehicle: 'vehicle/specific',delSpecificVehicle: 'vehicle/{vehicleId}/specific',
getHouseholds: 'vehicle/business', getHouseholds: 'vehicle/business',putHouseholds: 'vehicle/business',delHouseholds: 'vehicle/business/{businessId}',
getRoadway: 'road', getRoadway: 'road',
// 获取运政统计 // 获取运政统计
getYunZheng: "transportation/statistic", getYunZheng: "transportation/statistic",
//桥梁管理 //桥梁管理
getBridge:'bridge', getBridge:'bridge',
//工程数据
getProject: 'project',
//桥梁管理
getBridge: 'bridge',
putBridge:'bridge', putBridge:'bridge',
delBridge:'bridge/{bridgeId}',
//工程数据 //工程数据
getProject:'project', getProject:'project',
putProject:'project', putProject:'project',
delProject:'project/{projectId}',
//道路数据
getRoadway: 'road',
putRoadway: 'road',
delRoadway:'road/{roadId}',
//道路统计 //道路统计
getBgroadstatistics: "build/road_state", getBgroadstatistics: "build/road_state",
@ -79,13 +80,16 @@ export const ApiTable = {
getBusTier: '/operation/car_level', getBusTier: '/operation/car_level',
//获取路政列表 //获取路政列表
getHighways: 'road_manage', getHighways: 'road_manage',putHighways: 'road_manage',
//获取道路养护统计及列表 //获取道路养护统计及列表
getRoadMaintenance: 'conserve/statistic', getRoadMaintenance: 'conserve/statistic',
//获取宣传数据 //获取宣传数据
getpropagata: 'publicity', getpropagata: 'publicity',
//公交信息
getCircuit:'bus/line',putCircuit:'bus/line',delCircuit:'bus/line/{lineId}',
getVehicle:'bus/car',putVehicle:'bus/car',delVehicle:'bus/car/{carId}',
}; };

645
web/log/development.txt

@ -20324,4 +20324,649 @@
' at processTicksAndRejections (internal/process/task_queues.js:84:21)' ' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
} }
>>>>>>> Stashed changes >>>>>>> Stashed changes
<<<<<<< Updated upstream
>>>>>>> 385f017aeac33adc39a31e75faf6254a1a881d16 >>>>>>> 385f017aeac33adc39a31e75faf6254a1a881d16
=======
2022-07-26 10:36:17.862 - debug: [FS-LOGGER] Init.
2022-07-26 14:17:07.892 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/department?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/operational',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:08.280 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/vehicle?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/operational',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:10.564 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/vehicle/specific?token=3de82f98-253d-4ebd-a444-eff69920459b&%E5%87%BA%E7%A7%9F%E8%BD%A6',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/operational',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:12.386 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/bridge?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/bridge',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:33.973 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/department?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/bridge',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:34.427 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/bridge?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/bridge',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:17:37.083 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/road?token=3de82f98-253d-4ebd-a444-eff69920459b&level=%E5%8E%BF',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/transportation',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:19:12.817 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/department?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/transportation',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 14:19:13.254 - error: [FS-ERRHD]
{
message: 'Error: connect ETIMEDOUT 10.8.30.7:14000',
name: 'RequestError',
cause: {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '10.8.30.7',
port: 14000
},
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/road?token=3de82f98-253d-4ebd-a444-eff69920459b&level=%E5%8E%BF',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/transportation',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: connect ETIMEDOUT 10.8.30.7:14000\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 16:47:41.611 - error: [FS-ERRHD]
{
message: 'Error: read ECONNRESET',
name: 'RequestError',
cause: { errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' },
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/road?token=3de82f98-253d-4ebd-a444-eff69920459b&level=%E5%8E%BF',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/transportation',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'GET',
body: '[object Object]',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: read ECONNRESET\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-26 16:47:41.616 - error: [FS-ERRHD]
{
message: 'Error: read ECONNRESET',
name: 'RequestError',
cause: { errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' },
error: { '$ref': '$["cause"]' },
options: {
jar: false,
url: 'http://10.8.30.7:14000/road?token=3de82f98-253d-4ebd-a444-eff69920459b',
headers: {
host: '10.8.30.7:14000',
connection: 'keep-alive',
'content-length': '83',
'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
'content-type': 'application/json',
'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private',
'x-requested-with': 'XMLHttpRequest',
token: '3de82f98-253d-4ebd-a444-eff69920459b',
'sec-ch-ua-platform': '"Windows"',
expires: '-1',
accept: '*/*',
origin: 'http://localhost:5000',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
referer: 'http://localhost:5000/fillion/transportation',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9'
},
encoding: null,
followRedirect: true,
method: 'PUT',
body: '{"routeName":"1","routeCode":"1111","sectionNo":"4444","level":"县","roadId":3275}',
simple: false,
resolveWithFullResponse: true,
callback: [Function: RP$callback],
transform: undefined,
transform2xxOnly: false
},
response: undefined,
stack: 'RequestError: Error: read ECONNRESET\n' +
' at new RequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' +
' at Request.plumbing.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' +
' at Request.RP$callback [as _callback] (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' +
' at self.callback (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' +
' at Request.emit (events.js:314:20)\n' +
' at Request.onRequestError (C:\\Users\\Administrator\\Desktop\\项目\\sihao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' +
' at ClientRequest.emit (events.js:314:20)\n' +
' at Socket.socketErrorListener (_http_client.js:427:9)\n' +
' at Socket.emit (events.js:314:20)\n' +
' at emitErrorNT (internal/streams/destroy.js:92:8)\n' +
' at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n' +
' at processTicksAndRejections (internal/process/task_queues.js:84:21)'
}
2022-07-27 11:00:11.991 - debug: [FS-LOGGER] Init.
>>>>>>> Stashed changes

2
web/package.json

@ -68,7 +68,7 @@
"@antv/g6": "^4.2.5", "@antv/g6": "^4.2.5",
"@fs/attachment": "^1.0.0", "@fs/attachment": "^1.0.0",
"@peace/components": "0.0.35", "@peace/components": "0.0.35",
"@peace/utils": "^0.0.51", "@peace/utils": "0.0.51",
"antd": "^4.19.2", "antd": "^4.19.2",
"antd-theme-generator": "^1.2.8", "antd-theme-generator": "^1.2.8",
"args": "^5.0.1", "args": "^5.0.1",

Loading…
Cancel
Save