Browse Source

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

release_0.0.1
LUCAS 3 years ago
parent
commit
ae42a7fa65
  1. 155
      api/app/lib/controllers/data/bus.js
  2. 493
      api/app/lib/models/bus_car.js
  3. 232
      api/app/lib/models/bus_line.js
  4. 236
      api/app/lib/models/road.js
  5. 21
      api/app/lib/routes/data/index.js
  6. 3
      api/log/development.log
  7. 4
      scripts/0.0.1/data/1_update_user_data.sql
  8. 8
      scripts/0.0.1/data/1_update_user_dep_data.sql
  9. BIN
      scripts/0.0.1/data/工具脚本(无需执行)/data/公交/车辆信息/四公司车辆信息(1).xls
  10. 63
      scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js
  11. 18
      scripts/0.0.1/data/工具脚本(无需执行)/index.js
  12. 54
      scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_字段对应.json
  13. 54
      scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据字段对应.json
  14. 54
      scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据库表对应.json
  15. 58
      scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据脚本对应.sql
  16. 26
      scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json
  17. 26
      scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json
  18. 26
      scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json
  19. 36
      scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql
  20. BIN
      web/client/assets/images/quanju/circle2.png
  21. BIN
      web/client/assets/images/quanju/kelvhua_bdbg.png
  22. 2
      web/client/src/sections/organization/containers/user.js
  23. 47
      web/client/src/sections/quanju/containers/footer/build/Leftbottom.js
  24. 52
      web/client/src/sections/quanju/containers/footer/build/Rightbottom.js
  25. 62
      web/client/src/sections/quanju/containers/footer/build/index.js
  26. 114
      web/client/src/sections/quanju/containers/footer/build/style.less
  27. 3
      web/client/src/sections/quanju/containers/footer/conserve/index.js
  28. 202
      web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js
  29. 52
      web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js
  30. 6
      web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js
  31. 87
      web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js
  32. 6
      web/client/src/sections/quanju/containers/footer/guanli/index.js
  33. 21
      web/client/src/sections/quanju/containers/footer/guanli/style.less

155
api/app/lib/controllers/data/bus.js

@ -0,0 +1,155 @@
'use strict';
async function lineGet (ctx) {
try {
const models = ctx.fs.dc.models;
const { fleet } = ctx.query;
const findOption = {
order: [['id', 'DESC']],
where: {
},
}
if (fleet) {
findOption.where.fleet = { $like: `%${fleet}%` }
}
const roadRes = await models.BusLine.findAll(findOption)
ctx.status = 200;
ctx.body = roadRes
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
async function lineEdit (ctx) {
try {
const models = ctx.fs.dc.models;
const data = ctx.request.body;
if (!data.lineId) {
await models.BusLine.create(data)
} else {
await models.BusLine.update(
data, {
where: {
id: data.lineId
}
})
}
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
async function lineDel (ctx) {
try {
const models = ctx.fs.dc.models;
const { lineId } = ctx.params;
await models.BusLine.destroy({
where: {
id: lineId
}
})
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
async function carGet (ctx) {
try {
const models = ctx.fs.dc.models;
const { fleet } = ctx.query;
const findOption = {
order: [['id', 'DESC']],
where: {
},
}
if (fleet) {
findOption.where.fleet = { $like: `%${fleet}%` }
}
const roadRes = await models.BusCar.findAll(findOption)
ctx.status = 200;
ctx.body = roadRes
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
async function carEdit (ctx) {
try {
const models = ctx.fs.dc.models;
const data = ctx.request.body;
if (!data.carId) {
await models.BusCar.create(data)
} else {
await models.BusCar.update(
data, {
where: {
id: data.carId
}
})
}
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
async function carDel (ctx) {
try {
const models = ctx.fs.dc.models;
const { carId } = ctx.params;
await models.BusCar.destroy({
where: {
id: carId
}
})
ctx.status = 204
} catch (error) {
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
ctx.status = 400;
ctx.body = {
message: typeof error == 'string' ? error : undefined
}
}
}
module.exports = {
lineGet, lineEdit, lineDel,
carGet, carEdit, carDel,
};

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

@ -0,0 +1,493 @@
/* eslint-disable*/
'use strict';
module.exports = dc => {
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const BusCar = sequelize.define("busCar", {
id: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "bus_car_id_uindex"
},
company: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属公司",
primaryKey: false,
field: "company",
autoIncrement: false
},
fleet: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属车队",
primaryKey: false,
field: "fleet",
autoIncrement: false
},
line: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属线路",
primaryKey: false,
field: "line",
autoIncrement: false
},
vehicleNumber: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆编号",
primaryKey: false,
field: "vehicle_number",
autoIncrement: false
},
vehicleLicensePlateNumber: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆牌照号",
primaryKey: false,
field: "vehicle_license_plate_number",
autoIncrement: false
},
operationCategory: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "运营类别",
primaryKey: false,
field: "operation_category",
autoIncrement: false
},
serviceLife: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "已使用年限",
primaryKey: false,
field: "service_life",
autoIncrement: false
},
engineModel: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "发动机型号",
primaryKey: false,
field: "engine_model",
autoIncrement: false
},
vehicleModel: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆型号",
primaryKey: false,
field: "vehicle_model",
autoIncrement: false
},
vehicleCategory: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆类别",
primaryKey: false,
field: "vehicle_category",
autoIncrement: false
},
vehicleStatus: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆状态",
primaryKey: false,
field: "vehicle_status",
autoIncrement: false
},
dateOfEntry: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "入户日期",
primaryKey: false,
field: "date_of_entry",
autoIncrement: false
},
purchaseDate: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "购进日期",
primaryKey: false,
field: "purchase_date",
autoIncrement: false
},
energyConsumptionType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "能耗类型",
primaryKey: false,
field: "energy_consumption_type",
autoIncrement: false
},
numberOfStandardUnits: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "标台数",
primaryKey: false,
field: "number_of_standard_units",
autoIncrement: false
},
maintenanceUnit: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "维保单位",
primaryKey: false,
field: "maintenance_unit",
autoIncrement: false
},
vehicleType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆类型",
primaryKey: false,
field: "vehicle_type",
autoIncrement: false
},
brandAndModel: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "厂牌型号",
primaryKey: false,
field: "brand_and_model",
autoIncrement: false
},
manufacturer: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "生产厂家",
primaryKey: false,
field: "manufacturer",
autoIncrement: false
},
drivingLicenseNo: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "行驶证编号",
primaryKey: false,
field: "driving_license_no",
autoIncrement: false
},
engineNumber: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "发动机编号",
primaryKey: false,
field: "engine_number",
autoIncrement: false
},
mainEnergyConsumption: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "主能耗",
primaryKey: false,
field: "main_energy_consumption",
autoIncrement: false
},
secondaryEnergyConsumption: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "副能耗",
primaryKey: false,
field: "secondary_energy_consumption",
autoIncrement: false
},
emissionStandard: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "排放标准",
primaryKey: false,
field: "emission_standard",
autoIncrement: false
},
startDate: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "启用日期",
primaryKey: false,
field: "start_date",
autoIncrement: false
},
lastTransferDate: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "最近一次调动日期",
primaryKey: false,
field: "last_transfer_date",
autoIncrement: false
},
conductor: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车长",
primaryKey: false,
field: "conductor",
autoIncrement: false
},
vehicleWidth: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车宽",
primaryKey: false,
field: "vehicle_width",
autoIncrement: false
},
carHeight: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车高",
primaryKey: false,
field: "car_height",
autoIncrement: false
},
approvedPassengerCapacity: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "核定载客数",
primaryKey: false,
field: "approved_passenger_capacity",
autoIncrement: false
},
vehicleIdentificationNumber: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆识别号",
primaryKey: false,
field: "vehicle_identification_number",
autoIncrement: false
},
gearboxBrand: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "变速箱品牌",
primaryKey: false,
field: "gearbox_brand",
autoIncrement: false
},
manualCarWashingFee: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "人工洗车费",
primaryKey: false,
field: "manual_car_washing_fee",
autoIncrement: false
},
laborCost: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "劳务费",
primaryKey: false,
field: "labor_cost",
autoIncrement: false
},
curbWeight: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "整备质量",
primaryKey: false,
field: "curb_weight",
autoIncrement: false
},
totalMass: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "总质量",
primaryKey: false,
field: "total_mass",
autoIncrement: false
},
airConditioningTemperature: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "空调温度",
primaryKey: false,
field: "air_conditioning_temperature",
autoIncrement: false
},
airConditionedCarOrNot: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "是否空调车",
primaryKey: false,
field: "air_conditioned_car_or_not",
autoIncrement: false
},
turnOnTheAirConditioningTemperature: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "开空调温度",
primaryKey: false,
field: "turn_on_the_air_conditioning_temperature",
autoIncrement: false
},
power: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "功率",
primaryKey: false,
field: "power",
autoIncrement: false
},
transmission: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "变速器",
primaryKey: false,
field: "transmission",
autoIncrement: false
},
seatingCapacity: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "座位数",
primaryKey: false,
field: "seating_capacity",
autoIncrement: false
},
airConditioningBrand: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "空调品牌",
primaryKey: false,
field: "air_conditioning_brand",
autoIncrement: false
},
seatType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "座椅类型",
primaryKey: false,
field: "seat_type",
autoIncrement: false
},
tireSpecifications: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "轮胎规格",
primaryKey: false,
field: "tire_specifications",
autoIncrement: false
},
roadTransportCertificateNo: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "道路运输证号",
primaryKey: false,
field: "road_transport_certificate_no",
autoIncrement: false
},
parkingPoint: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "停放点",
primaryKey: false,
field: "parking_point",
autoIncrement: false
},
carWashingType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "洗车类型",
primaryKey: false,
field: "car_washing_type",
autoIncrement: false
},
maintenanceFreeWheelEnd: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "免维护轮端",
primaryKey: false,
field: "maintenance_free_wheel_end",
autoIncrement: false
},
firstGuaranteeDate: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "首保日期",
primaryKey: false,
field: "first_guarantee_date",
autoIncrement: false
},
dateOfRenovation: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "整修日期",
primaryKey: false,
field: "date_of_renovation",
autoIncrement: false
},
motorVehicleOwner: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "机动车所有人",
primaryKey: false,
field: "motor_vehicle_owner",
autoIncrement: false
}
}, {
tableName: "bus_car",
comment: "",
indexes: []
});
dc.models.BusCar = BusCar;
return BusCar;
};

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

@ -0,0 +1,232 @@
/* eslint-disable*/
'use strict';
module.exports = dc => {
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const BusLine = sequelize.define("busLine", {
id: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "bus_line_id_uindex"
},
company: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "公司",
primaryKey: false,
field: "company",
autoIncrement: false
},
fleet: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车队",
primaryKey: false,
field: "fleet",
autoIncrement: false
},
carCaptain: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车队长",
primaryKey: false,
field: "car_captain",
autoIncrement: false
},
assistantCarCaptain: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "副车队长",
primaryKey: false,
field: "assistant_car_captain",
autoIncrement: false
},
officeLocation: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "办公地点",
primaryKey: false,
field: "office_location",
autoIncrement: false
},
lineName: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "线路名称",
primaryKey: false,
field: "line_name",
autoIncrement: false
},
lineType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "线路类型",
primaryKey: false,
field: "line_type",
autoIncrement: false
},
lineDivision: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "线路划分",
primaryKey: false,
field: "line_division",
autoIncrement: false
},
gpsNumber: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "GPS编号",
primaryKey: false,
field: "gps_number",
autoIncrement: false
},
startingPointEndPoint: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "起点终点",
primaryKey: false,
field: "starting_point_end_point",
autoIncrement: false
},
numberOfVehicles: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "车辆数",
primaryKey: false,
field: "number_of_vehicles",
autoIncrement: false
},
totalKilometers: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "全程公里数",
primaryKey: false,
field: "total_kilometers",
autoIncrement: false
},
ticketPrice: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "票价",
primaryKey: false,
field: "ticket_price",
autoIncrement: false
},
openingTime: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "开通时间",
primaryKey: false,
field: "opening_time",
autoIncrement: false
},
runningTime: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "运行时间",
primaryKey: false,
field: "running_time",
autoIncrement: false
},
openingTimeSummer: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "开班时间夏令",
primaryKey: false,
field: "opening_time_summer",
autoIncrement: false
},
shiftClosingTimeSummer: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "收班时间夏令",
primaryKey: false,
field: "shift_closing_time_summer",
autoIncrement: false
},
openingTimeWinter: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "开班时间冬令",
primaryKey: false,
field: "opening_time_winter",
autoIncrement: false
},
shiftClosingTimeWinter: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "收班时间冬令",
primaryKey: false,
field: "shift_closing_time_winter",
autoIncrement: false
},
uplinkOfStationsAlongTheWay: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "沿途站点上行",
primaryKey: false,
field: "uplink_of_stations_along_the_way",
autoIncrement: false
},
downlinkOfStationsAlongTheWay: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "沿途站点下行",
primaryKey: false,
field: "downlink_of_stations_along_the_way",
autoIncrement: false
},
area: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属区域",
primaryKey: false,
field: "area",
autoIncrement: false
},
remarks: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "备注",
primaryKey: false,
field: "remarks",
autoIncrement: false
}
}, {
tableName: "bus_line",
comment: "",
indexes: []
});
dc.models.BusLine = BusLine;
return BusLine;
};

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

@ -114,6 +114,51 @@ module.exports = dc => {
field: "section_type",
autoIncrement: false
},
routeCodeBeforeRoadNetworkAdjustment: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "路网调整前路线编码",
primaryKey: false,
field: "route_code_before_road_network_adjustment",
autoIncrement: false
},
serialNumberOfOriginalSection: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "原路段序号",
primaryKey: false,
field: "serial_number_of_original_section",
autoIncrement: false
},
startingStakeNumberOfTheOriginalRoadSection: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "原路段起点桩号",
primaryKey: false,
field: "starting_stake_number_of_the_original_road_section",
autoIncrement: false
},
endingPointStakeNoOfTheOriginalRoadSection: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "原路段止点桩号",
primaryKey: false,
field: "ending_point_stake_no_of_the_original_road_section",
autoIncrement: false
},
routeLevel: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "路线等级",
primaryKey: false,
field: "route_level",
autoIncrement: false
},
natureOfRoadSection: {
type: DataTypes.STRING,
allowNull: true,
@ -132,6 +177,24 @@ module.exports = dc => {
field: "completion_time",
autoIncrement: false
},
reconstructionTime: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "改建时间",
primaryKey: false,
field: "reconstruction_time",
autoIncrement: false
},
natureOfConstruction: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "建设性质",
primaryKey: false,
field: "nature_of_construction",
autoIncrement: false
},
gbmAndCivilizedModelRoad: {
type: DataTypes.STRING,
allowNull: true,
@ -159,6 +222,15 @@ module.exports = dc => {
field: "nature_of_charges",
autoIncrement: false
},
tollStation: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属收费站",
primaryKey: false,
field: "toll_station",
autoIncrement: false
},
numberOfCulverts: {
type: DataTypes.STRING,
allowNull: true,
@ -330,6 +402,159 @@ module.exports = dc => {
field: "repeated_section_route_code",
autoIncrement: false
},
plannedFundCategory: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划资金类别",
primaryKey: false,
field: "planned_fund_category",
autoIncrement: false
},
plannedYear: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划年度",
primaryKey: false,
field: "planned_year",
autoIncrement: false
},
planDocumentNo: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划文号",
primaryKey: false,
field: "plan_document_no",
autoIncrement: false
},
planItemUniqueCode: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目唯一编码",
primaryKey: false,
field: "plan_item_unique_code",
autoIncrement: false
},
plannedProjectRouteCode: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目路线编码",
primaryKey: false,
field: "planned_project_route_code",
autoIncrement: false
},
planProjectName: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目名称",
primaryKey: false,
field: "plan_project_name",
autoIncrement: false
},
plannedProjectType: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目类型",
primaryKey: false,
field: "planned_project_type",
autoIncrement: false
},
completionStatus: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "完工情况",
primaryKey: false,
field: "completion_status",
autoIncrement: false
},
yearOfCompletion: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "完工年度",
primaryKey: false,
field: "year_of_completion",
autoIncrement: false
},
plannedFundCategoryOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划资金类别_1",
primaryKey: false,
field: "planned_fund_category__one",
autoIncrement: false
},
plannedYearOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划年度_1",
primaryKey: false,
field: "planned_year__one",
autoIncrement: false
},
planDocumentNoOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划文号_1",
primaryKey: false,
field: "plan_document_no__one",
autoIncrement: false
},
planItemUniqueCodeOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目唯一编码_1",
primaryKey: false,
field: "plan_item_unique_code__one",
autoIncrement: false
},
planProjectNameOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "计划项目名称_1",
primaryKey: false,
field: "plan_project_name__one",
autoIncrement: false
},
completionStatusOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "完工情况_1",
primaryKey: false,
field: "completion_status__one",
autoIncrement: false
},
yearOfCompletionOne: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "完工年度_1",
primaryKey: false,
field: "year_of_completion__one",
autoIncrement: false
},
stationRange: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "桩号范围",
primaryKey: false,
field: "station_range",
autoIncrement: false
},
reportingUnit: {
type: DataTypes.STRING,
allowNull: true,
@ -357,6 +582,15 @@ module.exports = dc => {
field: "change_time",
autoIncrement: false
},
lastRepairAndMaintenanceYear: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "最近一次修复养护年度",
primaryKey: false,
field: "last_repair_and_maintenance_year",
autoIncrement: false
},
whetherMaintenanceManagedHighway: {
type: DataTypes.STRING,
allowNull: true,
@ -451,7 +685,7 @@ module.exports = dc => {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "县 / 乡 / 村",
comment: null,
primaryKey: false,
field: "level",
autoIncrement: false

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

@ -5,6 +5,7 @@ const road = require('../../controllers/data/road');
const bridge = require('../../controllers/data/bridge');
const project = require('../../controllers/data/project');
const overspeed = require('../../controllers/data/overspeed');
const bus = require('../../controllers/data/bus');
module.exports = function (app, router, opts) {
@ -86,4 +87,24 @@ module.exports = function (app, router, opts) {
app.fs.api.logAttr['DEL/overspeed/:overspeedId'] = { content: '删除治超数据', visible: false };
router.del('/overspeed/:overspeedId', overspeed.overspeedDel);
//overspeed END
//bus
app.fs.api.logAttr['GET/bus/line'] = { content: '获取公交路线数据', visible: true };
router.get('/bus/line', bus.lineGet);
app.fs.api.logAttr['PUT/bus/line'] = { content: '编辑公交路线数据', visible: true };
router.put('/bus/line', bus.lineEdit);
app.fs.api.logAttr['DEL/bus/line/:lineId'] = { content: '删除公交路线数据', visible: false };
router.del('/bus/line/:lineId', bus.lineDel);
app.fs.api.logAttr['GET/bus/car'] = { content: '获取公交车辆数据', visible: true };
router.get('/bus/car', bus.carGet);
app.fs.api.logAttr['PUT/bus/car'] = { content: '编辑公交车辆数据', visible: true };
router.put('/bus/car', bus.carEdit);
app.fs.api.logAttr['DEL/bus/car/:carId'] = { content: '删除公交车辆数据', visible: false };
router.del('/bus/car/:carId', bus.carDel);
//bus END
};

3
api/log/development.log

@ -7158,3 +7158,6 @@
2022-07-22 15:58:39.491 - debug: [FS-LOGGER] Init.
2022-07-22 15:58:39.611 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-22 15:58:39.611 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-23 11:26:40.514 - debug: [FS-LOGGER] Init.
2022-07-23 11:26:40.651 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-23 11:26:40.651 - info: [FS-AUTH] Inject auth and api mv into router.

4
scripts/0.0.1/data/1_update_user_data.sql

@ -1,4 +0,0 @@
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO "public"."user" VALUES (1, '管理员', 'SuperAdmin', 'e10adc3949ba59abbe56e057f20f883e', 1, 'f', NULL, NULL, NULL, TRUE);

8
scripts/0.0.1/data/1_update_user_dep_data.sql

@ -0,0 +1,8 @@
-- ----------------------------
-- Records of DEP
-- ----------------------------
INSERT INTO "department" VALUES (1, '默认部门', NULL, false);
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO "user" VALUES (1, '管理员', 'SuperAdmin', 'e10adc3949ba59abbe56e057f20f883e', 1, 'f', NULL, NULL, NULL, TRUE);

BIN
scripts/0.0.1/data/工具脚本(无需执行)/data/公交/车辆信息/四公司车辆信息(1).xls

Binary file not shown.

63
scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js

@ -16,38 +16,6 @@ try {
port: 5432,
})
let appid = '20200917000567738';
let key = 'xXm4jsuuD38JIkkhEcK6';
const getAnswer = async (query) => {
let start = (new Date()).getTime();
let salt = start;
let str1 = appid + query + salt + key;
let sign = Hex.stringify(MD5(str1));
console.log(`翻译:${query}`);
let answer = await request.get('http://api.fanyi.baidu.com/api/trans/vip/translate').timeout(1000 * 30).query({
q: query,
appid: appid,
salt: salt,
from: 'zh',
to: 'en',
sign: sign
});
if (answer.body.error_code) {
console.warn(answer.body);
throw '百度不给力,快快debug'
}
let rslt = answer.body.trans_result;
// let upperCaseRslt = rslt[0].dst.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()).replace(/ /g, '');
// let upperCaseRslt = rslt[0].dst.toUpperCase().replace(/ /g, '_');
// let upperCaseRslt = rslt[0].dst.toLowerCase().replace(/ /g, '_');
let upperCaseRslt = rslt[0].dst.replace(/\//g, ' ').replace(/'/g, '').replace(/\s{2,}/g, '');
console.log(`翻译结果:${upperCaseRslt}`);
while (((new Date()).getTime() - start) < (1000 / 8)) {//每s只能调用10次
continue;
}
return upperCaseRslt
}
const fun = async () => {
// note: we don't try/catch this because if connecting throws an exception
// we don't need to dispose of the client (it will be undefined)
@ -71,7 +39,7 @@ try {
// defaultValue: ['县'],
// },
// {
// path:[ './data/道路/乡道第三方.xls'],
// path: ['./data/道路/乡道第三方.xls'],
// n: '道路',
// tableName: 'road',
// defaultKey: ['level'],
@ -122,11 +90,16 @@ try {
// n: '治超',
// tableName: 'overspeed',
// },
{
path: ['./data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx'],
n: '公交线路',
tableName: 'bus_line',
},
// {
// path: ['./data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx'],
// n: '公交线路',
// tableName: 'bus_line',
// },
// {
// path: ['./data/公交/车辆信息/四公司车辆信息(1).xls'],
// n: '公交车辆',
// tableName: 'bus_car',
// },
]
for (let f of fileList) {
@ -149,13 +122,25 @@ try {
let v = d[k];
if (v) {
insertKeys.push(keyMap[k]);
insertValues.push(v);
if (f.n == '工程一览') {
if (k == '项目进展情况' && v == '已完工') {
insertValues[0] = true
}
}
if (f.n == '公交车辆') {
if (k == '所属公司') {
insertValues.push(v.split(':')[1]);
continue
}
if (k == '所属车队') {
insertValues.push(v.split(':')[1]);
continue
}
}
insertValues.push(v);
}
}
insertStr += insertKeys.join(',') + ') VALUES (';

18
scripts/0.0.1/data/工具脚本(无需执行)/index.js

@ -43,7 +43,7 @@ try {
let upperCaseRslt = rslt[0].dst
.replace(/\//g, ' ')
.replace(/'/g, '')
.replace(/:/g,'')
.replace(/:/g, '')
.trim()
.replace(/\s{2,}/g, '')
.replace(/-/g, ' ');
@ -61,6 +61,7 @@ try {
try {
await client.query('BEGIN')
// 有手动更改 不要轻易再次执行脚本
const fileList = [
// {
// path: './data/道路/乡道第三方.xls',
@ -92,11 +93,16 @@ try {
// n: '治超',
// tableName: 'overspeed'
// },
{
path: './data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx',
n: '公交线路',
tableName: 'bus_line'
},
// {
// path: './data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx',
// n: '公交线路',
// tableName: 'bus_line'
// },
// {
// path: './data/公交/车辆信息/四公司车辆信息(1).xls',
// n: '公交车辆',
// tableName: 'bus_car'
// },
]
for (let f of fileList) {

54
scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_字段对应.json

@ -0,0 +1,54 @@
{
"所属公司": "company",
"所属车队": "fleet",
"所属线路": "line",
"车辆编号": "vehicleNumber",
"车辆牌照号": "vehicleLicensePlateNumber",
"运营类别": "operationCategory",
"已使用年限": "serviceLife",
"发动机型号": "engineModel",
"车辆型号": "vehicleModel",
"车辆类别": "vehicleCategory",
"车辆状态": "vehicleStatus",
"入户日期": "dateOfEntry",
"购进日期": "purchaseDate",
"能耗类型": "energyConsumptionType",
"标台数": "numberOfStandardUnits",
"维保单位": "maintenanceUnit",
"车辆类型": "vehicleType",
"厂牌型号": "brandAndModel",
"生产厂家": "manufacturer",
"行驶证编号": "drivingLicenseNo",
"发动机编号": "engineNumber",
"主能耗": "mainEnergyConsumption",
"副能耗": "secondaryEnergyConsumption",
"排放标准": "emissionStandard",
"启用日期": "startDate",
"最近一次调动日期": "lastTransferDate",
"车长": "conductor",
"车宽": "vehicleWidth",
"车高": "carHeight",
"核定载客数": "approvedPassengerCapacity",
"车辆识别号": "vehicleIdentificationNumber",
"变速箱品牌": "gearboxBrand",
"人工洗车费": "manualCarWashingFee",
"劳务费": "laborCost",
"整备质量": "curbWeight",
"总质量": "totalMass",
"空调温度": "airConditioningTemperature",
"是否空调车": "airConditionedCarOrNot",
"开空调温度": "turnOnTheAirConditioningTemperature",
"功率": "power",
"变速器": "transmission",
"座位数": "seatingCapacity",
"空调品牌": "airConditioningBrand",
"座椅类型": "seatType",
"轮胎规格": "tireSpecifications",
"道路运输证号": "roadTransportCertificateNo",
"停放点": "parkingPoint",
"洗车类型": "carWashingType",
"免维护轮端": "maintenanceFreeWheelEnd",
"首保日期": "firstGuaranteeDate",
"整修日期": "dateOfRenovation",
"机动车所有人": "motorVehicleOwner"
}

54
scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据字段对应.json

@ -0,0 +1,54 @@
{
"company": "所属公司",
"fleet": "所属车队",
"line": "所属线路",
"vehicleNumber": "车辆编号",
"vehicleLicensePlateNumber": "车辆牌照号",
"operationCategory": "运营类别",
"serviceLife": "已使用年限",
"engineModel": "发动机型号",
"vehicleModel": "车辆型号",
"vehicleCategory": "车辆类别",
"vehicleStatus": "车辆状态",
"dateOfEntry": "入户日期",
"purchaseDate": "购进日期",
"energyConsumptionType": "能耗类型",
"numberOfStandardUnits": "标台数",
"maintenanceUnit": "维保单位",
"vehicleType": "车辆类型",
"brandAndModel": "厂牌型号",
"manufacturer": "生产厂家",
"drivingLicenseNo": "行驶证编号",
"engineNumber": "发动机编号",
"mainEnergyConsumption": "主能耗",
"secondaryEnergyConsumption": "副能耗",
"emissionStandard": "排放标准",
"startDate": "启用日期",
"lastTransferDate": "最近一次调动日期",
"conductor": "车长",
"vehicleWidth": "车宽",
"carHeight": "车高",
"approvedPassengerCapacity": "核定载客数",
"vehicleIdentificationNumber": "车辆识别号",
"gearboxBrand": "变速箱品牌",
"manualCarWashingFee": "人工洗车费",
"laborCost": "劳务费",
"curbWeight": "整备质量",
"totalMass": "总质量",
"airConditioningTemperature": "空调温度",
"airConditionedCarOrNot": "是否空调车",
"turnOnTheAirConditioningTemperature": "开空调温度",
"power": "功率",
"transmission": "变速器",
"seatingCapacity": "座位数",
"airConditioningBrand": "空调品牌",
"seatType": "座椅类型",
"tireSpecifications": "轮胎规格",
"roadTransportCertificateNo": "道路运输证号",
"parkingPoint": "停放点",
"carWashingType": "洗车类型",
"maintenanceFreeWheelEnd": "免维护轮端",
"firstGuaranteeDate": "首保日期",
"dateOfRenovation": "整修日期",
"motorVehicleOwner": "机动车所有人"
}

54
scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据库表对应.json

@ -0,0 +1,54 @@
{
"所属公司": "company",
"所属车队": "fleet",
"所属线路": "line",
"车辆编号": "vehicle_number",
"车辆牌照号": "vehicle_license_plate_number",
"运营类别": "operation_category",
"已使用年限": "service_life",
"发动机型号": "engine_model",
"车辆型号": "vehicle_model",
"车辆类别": "vehicle_category",
"车辆状态": "vehicle_status",
"入户日期": "date_of_entry",
"购进日期": "purchase_date",
"能耗类型": "energy_consumption_type",
"标台数": "number_of_standard_units",
"维保单位": "maintenance_unit",
"车辆类型": "vehicle_type",
"厂牌型号": "brand_and_model",
"生产厂家": "manufacturer",
"行驶证编号": "driving_license_No",
"发动机编号": "engine_number",
"主能耗": "main_energy_consumption",
"副能耗": "secondary_energy_consumption",
"排放标准": "emission_standard",
"启用日期": "start_date",
"最近一次调动日期": "last_transfer_date",
"车长": "conductor",
"车宽": "vehicle_width",
"车高": "car_height",
"核定载客数": "approved_passenger_capacity",
"车辆识别号": "vehicle_identification_number",
"变速箱品牌": "gearbox_brand",
"人工洗车费": "manual_car_washing_fee",
"劳务费": "labor_cost",
"整备质量": "curb_weight",
"总质量": "total_mass",
"空调温度": "air_conditioning_temperature",
"是否空调车": "air_conditioned_car_or_not",
"开空调温度": "turn_on_the_air_conditioning_temperature",
"功率": "power",
"变速器": "transmission",
"座位数": "seating_capacity",
"空调品牌": "air_conditioning_brand",
"座椅类型": "seat_type",
"轮胎规格": "tire_specifications",
"道路运输证号": "road_Transport_Certificate_No",
"停放点": "parking_point",
"洗车类型": "car_washing_type",
"免维护轮端": "maintenance_free_wheel_end",
"首保日期": "first_guarantee_date",
"整修日期": "date_of_renovation",
"机动车所有人": "motor_vehicle_owner"
}

58
scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据脚本对应.sql

@ -0,0 +1,58 @@
-- 公交车辆
CREATE TABLE if not exists "bus_car" ( id serial not null );
CREATE unique index if not exists bus_car_id_uindex
ON bus_car (id); alter TABLE bus_car add constraint bus_car_pk primary key (id); alter TABLE bus_car add Company varchar(1024); comment
ON column bus_car.Company is '所属公司'; alter TABLE bus_car add Fleet varchar(1024); comment
ON column bus_car.Fleet is '所属车队'; alter TABLE bus_car add Line varchar(1024); comment
ON column bus_car.Line is '所属线路'; alter TABLE bus_car add Vehicle_Number varchar(1024); comment
ON column bus_car.Vehicle_Number is '车辆编号'; alter TABLE bus_car add Vehicle_License_Plate_Number varchar(1024); comment
ON column bus_car.Vehicle_License_Plate_Number is '车辆牌照号'; alter TABLE bus_car add Operation_Category varchar(1024); comment
ON column bus_car.Operation_Category is '运营类别'; alter TABLE bus_car add Service_Life varchar(1024); comment
ON column bus_car.Service_Life is '已使用年限'; alter TABLE bus_car add Engine_Model varchar(1024); comment
ON column bus_car.Engine_Model is '发动机型号'; alter TABLE bus_car add Vehicle_Model varchar(1024); comment
ON column bus_car.Vehicle_Model is '车辆型号'; alter TABLE bus_car add Vehicle_Category varchar(1024); comment
ON column bus_car.Vehicle_Category is '车辆类别'; alter TABLE bus_car add Vehicle_Status varchar(1024); comment
ON column bus_car.Vehicle_Status is '车辆状态'; alter TABLE bus_car add Date_Of_Entry varchar(1024); comment
ON column bus_car.Date_Of_Entry is '入户日期'; alter TABLE bus_car add Purchase_Date varchar(1024); comment
ON column bus_car.Purchase_Date is '购进日期'; alter TABLE bus_car add Energy_Consumption_Type varchar(1024); comment
ON column bus_car.Energy_Consumption_Type is '能耗类型'; alter TABLE bus_car add Number_Of_Standard_Units varchar(1024); comment
ON column bus_car.Number_Of_Standard_Units is '标台数'; alter TABLE bus_car add Maintenance_Unit varchar(1024); comment
ON column bus_car.Maintenance_Unit is '维保单位'; alter TABLE bus_car add Vehicle_Type varchar(1024); comment
ON column bus_car.Vehicle_Type is '车辆类型'; alter TABLE bus_car add Brand_And_Model varchar(1024); comment
ON column bus_car.Brand_And_Model is '厂牌型号'; alter TABLE bus_car add Manufacturer varchar(1024); comment
ON column bus_car.Manufacturer is '生产厂家'; alter TABLE bus_car add Driving_License_No varchar(1024); comment
ON column bus_car.Driving_License_No is '行驶证编号'; alter TABLE bus_car add Engine_Number varchar(1024); comment
ON column bus_car.Engine_Number is '发动机编号'; alter TABLE bus_car add Main_Energy_Consumption varchar(1024); comment
ON column bus_car.Main_Energy_Consumption is '主能耗'; alter TABLE bus_car add Secondary_Energy_Consumption varchar(1024); comment
ON column bus_car.Secondary_Energy_Consumption is '副能耗'; alter TABLE bus_car add Emission_Standard varchar(1024); comment
ON column bus_car.Emission_Standard is '排放标准'; alter TABLE bus_car add Start_Date varchar(1024); comment
ON column bus_car.Start_Date is '启用日期'; alter TABLE bus_car add Last_Transfer_Date varchar(1024); comment
ON column bus_car.Last_Transfer_Date is '最近一次调动日期'; alter TABLE bus_car add Conductor varchar(1024); comment
ON column bus_car.Conductor is '车长'; alter TABLE bus_car add Vehicle_Width varchar(1024); comment
ON column bus_car.Vehicle_Width is '车宽'; alter TABLE bus_car add Car_Height varchar(1024); comment
ON column bus_car.Car_Height is '车高'; alter TABLE bus_car add Approved_Passenger_Capacity varchar(1024); comment
ON column bus_car.Approved_Passenger_Capacity is '核定载客数'; alter TABLE bus_car add Vehicle_Identification_Number varchar(1024); comment
ON column bus_car.Vehicle_Identification_Number is '车辆识别号'; alter TABLE bus_car add Gearbox_Brand varchar(1024); comment
ON column bus_car.Gearbox_Brand is '变速箱品牌'; alter TABLE bus_car add Manual_Car_Washing_Fee varchar(1024); comment
ON column bus_car.Manual_Car_Washing_Fee is '人工洗车费'; alter TABLE bus_car add Labor_Cost varchar(1024); comment
ON column bus_car.Labor_Cost is '劳务费'; alter TABLE bus_car add Curb_Weight varchar(1024); comment
ON column bus_car.Curb_Weight is '整备质量'; alter TABLE bus_car add Total_Mass varchar(1024); comment
ON column bus_car.Total_Mass is '总质量'; alter TABLE bus_car add Air_Conditioning_Temperature varchar(1024); comment
ON column bus_car.Air_Conditioning_Temperature is '空调温度'; alter TABLE bus_car add Air_Conditioned_Car_Or_Not varchar(1024); comment
ON column bus_car.Air_Conditioned_Car_Or_Not is '是否空调车'; alter TABLE bus_car add Turn_On_The_Air_Conditioning_Temperature varchar(1024); comment
ON column bus_car.Turn_On_The_Air_Conditioning_Temperature is '开空调温度'; alter TABLE bus_car add Power varchar(1024); comment
ON column bus_car.Power is '功率'; alter TABLE bus_car add Transmission varchar(1024); comment
ON column bus_car.Transmission is '变速器'; alter TABLE bus_car add Seating_Capacity varchar(1024); comment
ON column bus_car.Seating_Capacity is '座位数'; alter TABLE bus_car add Air_Conditioning_Brand varchar(1024); comment
ON column bus_car.Air_Conditioning_Brand is '空调品牌'; alter TABLE bus_car add Seat_Type varchar(1024); comment
ON column bus_car.Seat_Type is '座椅类型'; alter TABLE bus_car add Tire_Specifications varchar(1024); comment
ON column bus_car.Tire_Specifications is '轮胎规格'; alter TABLE bus_car add Road_Transport_Certificate_No varchar(1024); comment
ON column bus_car.Road_Transport_Certificate_No is '道路运输证号'; alter TABLE bus_car add Parking_Point varchar(1024); comment
ON column bus_car.Parking_Point is '停放点'; alter TABLE bus_car add Car_Washing_Type varchar(1024); comment
ON column bus_car.Car_Washing_Type is '洗车类型'; alter TABLE bus_car add Maintenance_Free_Wheel_End varchar(1024); comment
ON column bus_car.Maintenance_Free_Wheel_End is '免维护轮端'; alter TABLE bus_car add First_Guarantee_Date varchar(1024); comment
ON column bus_car.First_Guarantee_Date is '首保日期'; alter TABLE bus_car add Date_Of_Renovation varchar(1024); comment
ON column bus_car.Date_Of_Renovation is '整修日期'; alter TABLE bus_car add Motor_Vehicle_Owner varchar(1024); comment
ON column bus_car.Motor_Vehicle_Owner is '机动车所有人';

26
scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json

@ -10,11 +10,19 @@
"止点分界点类别": "categoryOfDeadCenterAndDividingPoint",
"止点桩号": "stopStation",
"路段类型": "sectionType",
"路网调整前路线编码": "routeCodeBeforeRoadNetworkAdjustment",
"原路段序号": "serialNumberOfOriginalSection",
"原路段起点桩号": "startingStakeNumberOfTheOriginalRoadSection",
"原路段止点桩号": "endingPointStakeNoOfTheOriginalRoadSection",
"路线等级": "routeLevel",
"路段性质": "natureOfRoadSection",
"建成时间": "completionTime",
"改建时间": "reconstructionTime",
"建设性质": "natureOfConstruction",
"GBM及文明样板路": "gBMAndCivilizedModelRoad",
"地貌": "landforms",
"收费性质": "natureOfCharges",
"所属收费站": "tollStation",
"涵洞数量": "numberOfCulverts",
"技术等级": "technicalLevel",
"路面类型": "pavementType",
@ -34,9 +42,27 @@
"重复道路路段类型": "typeOfRepeatedRoadSection",
"重复路段序号": "serialNumberOfRepeatedSection",
"重复路段路线编码": "repeatedSectionRouteCode",
"计划资金类别": "plannedFundCategory",
"计划年度": "plannedYear",
"计划文号": "planDocumentNo",
"计划项目唯一编码": "planItemUniqueCode",
"计划项目路线编码": "plannedProjectRouteCode",
"计划项目名称": "planProjectName",
"计划项目类型": "plannedProjectType",
"完工情况": "completionStatus",
"完工年度": "yearOfCompletion",
"计划资金类别_1": "plannedFundCategoryOne",
"计划年度_1": "plannedYearOne",
"计划文号_1": "planDocumentNoOne",
"计划项目唯一编码_1": "planItemUniqueCodeOne",
"计划项目名称_1": "planProjectNameOne",
"完工情况_1": "completionStatusOne",
"完工年度_1": "yearOfCompletionOne",
"桩号范围": "stationRange",
"填报单位": "reportingUnit",
"变更原因": "reasonForChange",
"变更时间": "changeTime",
"最近一次修复养护年度": "lastRepairAndMaintenanceYear",
"是否按干线公路管理接养": "whetherMaintenanceManagedHighway",
"备注": "remarks",
"上年路线编码": "routeCodeOfLastYear",

26
scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json

@ -10,11 +10,19 @@
"categoryOfDeadCenterAndDividingPoint": "止点分界点类别",
"stopStation": "止点桩号",
"sectionType": "路段类型",
"routeCodeBeforeRoadNetworkAdjustment": "路网调整前路线编码",
"serialNumberOfOriginalSection": "原路段序号",
"startingStakeNumberOfTheOriginalRoadSection": "原路段起点桩号",
"endingPointStakeNoOfTheOriginalRoadSection": "原路段止点桩号",
"routeLevel": "路线等级",
"natureOfRoadSection": "路段性质",
"completionTime": "建成时间",
"reconstructionTime": "改建时间",
"natureOfConstruction": "建设性质",
"gBMAndCivilizedModelRoad": "GBM及文明样板路",
"landforms": "地貌",
"natureOfCharges": "收费性质",
"tollStation": "所属收费站",
"numberOfCulverts": "涵洞数量",
"technicalLevel": "技术等级",
"pavementType": "路面类型",
@ -34,9 +42,27 @@
"typeOfRepeatedRoadSection": "重复道路路段类型",
"serialNumberOfRepeatedSection": "重复路段序号",
"repeatedSectionRouteCode": "重复路段路线编码",
"plannedFundCategory": "计划资金类别",
"plannedYear": "计划年度",
"planDocumentNo": "计划文号",
"planItemUniqueCode": "计划项目唯一编码",
"plannedProjectRouteCode": "计划项目路线编码",
"planProjectName": "计划项目名称",
"plannedProjectType": "计划项目类型",
"completionStatus": "完工情况",
"yearOfCompletion": "完工年度",
"plannedFundCategoryOne": "计划资金类别_1",
"plannedYearOne": "计划年度_1",
"planDocumentNoOne": "计划文号_1",
"planItemUniqueCodeOne": "计划项目唯一编码_1",
"planProjectNameOne": "计划项目名称_1",
"completionStatusOne": "完工情况_1",
"yearOfCompletionOne": "完工年度_1",
"stationRange": "桩号范围",
"reportingUnit": "填报单位",
"reasonForChange": "变更原因",
"changeTime": "变更时间",
"lastRepairAndMaintenanceYear": "最近一次修复养护年度",
"whetherMaintenanceManagedHighway": "是否按干线公路管理接养",
"remarks": "备注",
"routeCodeOfLastYear": "上年路线编码",

26
scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json

@ -10,11 +10,19 @@
"止点分界点类别": "category_of_dead_center_and_dividing_point",
"止点桩号": "stop_station",
"路段类型": "section_type",
"路网调整前路线编码": "route_code_before_road_network_adjustment",
"原路段序号": "serial_number_of_original_section",
"原路段起点桩号": "starting_stake_number_of_the_original_road_section",
"原路段止点桩号": "ending_point_stake_no_of_the_original_road_section",
"路线等级": "route_level",
"路段性质": "nature_of_road_section",
"建成时间": "completion_time",
"改建时间": "reconstruction_time",
"建设性质": "nature_of_construction",
"GBM及文明样板路": "gBM_and_civilized_model_road",
"地貌": "landforms",
"收费性质": "nature_of_charges",
"所属收费站": "toll_station",
"涵洞数量": "number_of_culverts",
"技术等级": "technical_level",
"路面类型": "pavement_type",
@ -34,9 +42,27 @@
"重复道路路段类型": "type_of_repeated_road_section",
"重复路段序号": "serial_number_of_repeated_section",
"重复路段路线编码": "repeated_section_route_code",
"计划资金类别": "planned_fund_category",
"计划年度": "planned_year",
"计划文号": "plan_document_No",
"计划项目唯一编码": "plan_item_unique_code",
"计划项目路线编码": "planned_project_route_code",
"计划项目名称": "plan_project_name",
"计划项目类型": "planned_project_type",
"完工情况": "completion_status",
"完工年度": "year_of_completion",
"计划资金类别_1": "planned_fund_category__one",
"计划年度_1": "planned_year__one",
"计划文号_1": "plan_document_No__one",
"计划项目唯一编码_1": "plan_item_unique_code__one",
"计划项目名称_1": "plan_project_name__one",
"完工情况_1": "completion_status__one",
"完工年度_1": "year_of_completion__one",
"桩号范围": "station_range",
"填报单位": "reporting_unit",
"变更原因": "reason_for_change",
"变更时间": "change_time",
"最近一次修复养护年度": "last_repair_and_maintenance_year",
"是否按干线公路管理接养": "whether_maintenance_managed_highway",
"备注": "remarks",
"上年路线编码": "route_code_of_last_year",

36
scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql

@ -14,12 +14,20 @@ ON column road.Category_Of_Starting_Point_And_Dividing_Point is '起点分界点
ON column road.Stop_Place_Name is '止点地名'; alter TABLE road add Category_Of_Dead_Center_And_Dividing_Point varchar(1024); comment
ON column road.Category_Of_Dead_Center_And_Dividing_Point is '止点分界点类别'; alter TABLE road add Stop_Station varchar(1024); comment
ON column road.Stop_Station is '止点桩号'; alter TABLE road add Section_Type varchar(1024); comment
ON column road.Section_Type is '路段类型'; alter TABLE road add Nature_Of_Road_Section varchar(1024); comment
ON column road.Section_Type is '路段类型'; alter TABLE road add Route_Code_Before_Road_Network_Adjustment varchar(1024); comment
ON column road.Route_Code_Before_Road_Network_Adjustment is '路网调整前路线编码'; alter TABLE road add Serial_Number_Of_Original_Section varchar(1024); comment
ON column road.Serial_Number_Of_Original_Section is '原路段序号'; alter TABLE road add Starting_Stake_Number_Of_The_Original_Road_Section varchar(1024); comment
ON column road.Starting_Stake_Number_Of_The_Original_Road_Section is '原路段起点桩号'; alter TABLE road add Ending_Point_Stake_No_Of_The_Original_Road_Section varchar(1024); comment
ON column road.Ending_Point_Stake_No_Of_The_Original_Road_Section is '原路段止点桩号'; alter TABLE road add Route_Level varchar(1024); comment
ON column road.Route_Level is '路线等级'; alter TABLE road add Nature_Of_Road_Section varchar(1024); comment
ON column road.Nature_Of_Road_Section is '路段性质'; alter TABLE road add Completion_Time varchar(1024); comment
ON column road.Completion_Time is '建成时间'; alter TABLE road add GBM_And_Civilized_Model_Road varchar(1024); comment
ON column road.Completion_Time is '建成时间'; alter TABLE road add Reconstruction_Time varchar(1024); comment
ON column road.Reconstruction_Time is '改建时间'; alter TABLE road add Nature_Of_Construction varchar(1024); comment
ON column road.Nature_Of_Construction is '建设性质'; alter TABLE road add GBM_And_Civilized_Model_Road varchar(1024); comment
ON column road.GBM_And_Civilized_Model_Road is 'GBM及文明样板路'; alter TABLE road add Landforms varchar(1024); comment
ON column road.Landforms is '地貌'; alter TABLE road add Nature_Of_Charges varchar(1024); comment
ON column road.Nature_Of_Charges is '收费性质'; alter TABLE road add Number_Of_Culverts varchar(1024); comment
ON column road.Nature_Of_Charges is '收费性质'; alter TABLE road add Toll_Station varchar(1024); comment
ON column road.Toll_Station is '所属收费站'; alter TABLE road add Number_Of_Culverts varchar(1024); comment
ON column road.Number_Of_Culverts is '涵洞数量'; alter TABLE road add Technical_Level varchar(1024); comment
ON column road.Technical_Level is '技术等级'; alter TABLE road add Pavement_Type varchar(1024); comment
ON column road.Pavement_Type is '路面类型'; alter TABLE road add Pavement_Width varchar(1024); comment
@ -38,10 +46,28 @@ ON column road.Greening_Mileage is '可绿化里程'; alter TABLE road add Green
ON column road.Greening_Mileaged is '已绿化里程'; alter TABLE road add Type_Of_Repeated_Road_Section varchar(1024); comment
ON column road.Type_Of_Repeated_Road_Section is '重复道路路段类型'; alter TABLE road add Serial_Number_Of_Repeated_Section varchar(1024); comment
ON column road.Serial_Number_Of_Repeated_Section is '重复路段序号'; alter TABLE road add Repeated_Section_Route_Code varchar(1024); comment
ON column road.Repeated_Section_Route_Code is '重复路段路线编码'; alter TABLE road add Reporting_Unit varchar(1024); comment
ON column road.Repeated_Section_Route_Code is '重复路段路线编码'; alter TABLE road add Planned_Fund_Category varchar(1024); comment
ON column road.Planned_Fund_Category is '计划资金类别'; alter TABLE road add Planned_Year varchar(1024); comment
ON column road.Planned_Year is '计划年度'; alter TABLE road add Plan_Document_No varchar(1024); comment
ON column road.Plan_Document_No is '计划文号'; alter TABLE road add Plan_Item_Unique_Code varchar(1024); comment
ON column road.Plan_Item_Unique_Code is '计划项目唯一编码'; alter TABLE road add Planned_Project_Route_Code varchar(1024); comment
ON column road.Planned_Project_Route_Code is '计划项目路线编码'; alter TABLE road add Plan_Project_Name varchar(1024); comment
ON column road.Plan_Project_Name is '计划项目名称'; alter TABLE road add Planned_Project_Type varchar(1024); comment
ON column road.Planned_Project_Type is '计划项目类型'; alter TABLE road add Completion_Status varchar(1024); comment
ON column road.Completion_Status is '完工情况'; alter TABLE road add Year_Of_Completion varchar(1024); comment
ON column road.Year_Of_Completion is '完工年度'; alter TABLE road add Planned_Fund_Category__One varchar(1024); comment
ON column road.Planned_Fund_Category__One is '计划资金类别_1'; alter TABLE road add Planned_Year__One varchar(1024); comment
ON column road.Planned_Year__One is '计划年度_1'; alter TABLE road add Plan_Document_No__One varchar(1024); comment
ON column road.Plan_Document_No__One is '计划文号_1'; alter TABLE road add Plan_Item_Unique_Code__One varchar(1024); comment
ON column road.Plan_Item_Unique_Code__One is '计划项目唯一编码_1'; alter TABLE road add Plan_Project_Name__One varchar(1024); comment
ON column road.Plan_Project_Name__One is '计划项目名称_1'; alter TABLE road add Completion_Status__One varchar(1024); comment
ON column road.Completion_Status__One is '完工情况_1'; alter TABLE road add Year_Of_Completion__One varchar(1024); comment
ON column road.Year_Of_Completion__One is '完工年度_1'; alter TABLE road add Station_Range varchar(1024); comment
ON column road.Station_Range is '桩号范围'; alter TABLE road add Reporting_Unit varchar(1024); comment
ON column road.Reporting_Unit is '填报单位'; alter TABLE road add Reason_For_Change varchar(1024); comment
ON column road.Reason_For_Change is '变更原因'; alter TABLE road add Change_Time varchar(1024); comment
ON column road.Change_Time is '变更时间'; alter TABLE road add Whether_Maintenance_Managed_Highway varchar(1024); comment
ON column road.Change_Time is '变更时间'; alter TABLE road add Last_Repair_And_Maintenance_Year varchar(1024); comment
ON column road.Last_Repair_And_Maintenance_Year is '最近一次修复养护年度'; alter TABLE road add Whether_Maintenance_Managed_Highway varchar(1024); comment
ON column road.Whether_Maintenance_Managed_Highway is '是否按干线公路管理接养'; alter TABLE road add Remarks varchar(1024); comment
ON column road.Remarks is '备注'; alter TABLE road add Route_Code_Of_Last_Year varchar(1024); comment
ON column road.Route_Code_Of_Last_Year is '上年路线编码'; alter TABLE road add Route_Name_Of_Last_Year varchar(1024); comment

BIN
web/client/assets/images/quanju/circle2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

BIN
web/client/assets/images/quanju/kelvhua_bdbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

2
web/client/src/sections/organization/containers/user.js

@ -181,7 +181,9 @@ const UserManage = (props) => {
// 删除部门
const delDepartment = (id) => {
dispatch(delDep(id)).then(res => {
if(res.success){
dispatch(getDepMessage())
}
});
}
const renderTree = (item, id) => {

47
web/client/src/sections/quanju/containers/footer/build/Leftbottom.js

@ -1,6 +1,5 @@
import './style.less'
import { Col, Progress, Row } from 'antd';
import React, { useEffect, useRef } from 'react';
// import ReactEcharts from 'echarts-for-react';
import * as echarts from 'echarts';
@ -34,24 +33,26 @@ function Leftbottom() {
},
formatter: (values) => `${values.seriesName}<br /> ${values.marker} ${values.name} <b>${values.value}</b>个(${values.percent}%)`,
},
title: {
text:titleNum,//主标题文本
left:'center',
top:'35%',
subtext:chartTitle,//副标题文本
textStyle:{
fontFamily : "YouSheBiaoTiHei",
fontSize: 20,
color:'#FFFFFF',
// title: {
// text:titleNum,//主标题文本
// left:'10%',
// top:'35%',
// subtext:chartTitle,//副标题文本
// textStyle:{
// fontFamily : "YouSheBiaoTiHei",
// fontSize: 20,
// color:'#FFFFFF',
// marginLeft:'20%',
// align:'center'
},
subtextStyle:{
fontFamily : "PingFangSC-Medium PingFang SC",
fontSize: 12,
fontWeight:500,
color:'#E9F7FF',
}
},
// },
// subtextStyle:{
// fontFamily : "PingFangSC-Medium PingFang SC",
// fontSize: 12,
// fontWeight:500,
// color:'#E9F7FF',
// }
// },
legend: [
{
@ -80,7 +81,8 @@ function Leftbottom() {
{
name: '道路统计',
type: 'pie',
radius: ['50%', '65%'],
radius: ['50%', '63%'],
center: ["30%", "50%"],
// emphasis: { // 设置高亮时显示标签
// label: {
// show: true
@ -157,7 +159,12 @@ function Leftbottom() {
return (
<div className='build-left-bottom'>
<div ref={chartRef} style={{ width: width || 400, height: height || 200 }} id="ech"></div>
<div className='build-left-bottom-title'>
<h2>3234.23</h2>
<span>道路总公里</span>
</div>
<img src='/assets/images/quanju/chart-circle.png'></img>
<div ref={chartRef} style={{ width: width || "70%", height: height || "90%" }} id="ech"></div>
</div>
);
}

52
web/client/src/sections/quanju/containers/footer/build/Rightbottom.js

@ -4,7 +4,7 @@ import { Col, Progress, Row } from 'antd';
import React, { useEffect, useRef } from 'react';
// import ReactEcharts from 'echarts-for-react';
import * as echarts from 'echarts';
function Leftbottom() {
function Rightbottom() {
// const {
// safetyData, chartTitle, title, number, leftLegend, rightLegend, legendColor, width, height,
// } = props;
@ -37,24 +37,24 @@ function Leftbottom() {
},
formatter: (values) => `${values.seriesName}<br /> ${values.marker} ${values.name} <b>${values.value}</b>个(${values.percent}%)`,
},
title: {
text:titleNum,//主标题文本
left:'center',
top:'35%',
subtext:chartTitle,//副标题文本
textStyle:{
fontFamily : "YouSheBiaoTiHei",
fontSize: 20,
color:'#FFFFFF',
// align:'center'
},
subtextStyle:{
fontFamily : "PingFangSC-Medium PingFang SC",
fontSize: 12,
fontWeight:500,
color:'#E9F7FF',
}
},
// title: {
// text:titleNum,//主标题文本
// left:'center',
// top:'35%',
// subtext:chartTitle,//副标题文本
// textStyle:{
// fontFamily : "YouSheBiaoTiHei",
// fontSize: 20,
// color:'#FFFFFF',
// // align:'center'
// },
// subtextStyle:{
// fontFamily : "PingFangSC-Medium PingFang SC",
// fontSize: 12,
// fontWeight:500,
// color:'#E9F7FF',
// }
// },
// graphic: {
// elements: [
// {
@ -119,9 +119,10 @@ function Leftbottom() {
],
series: [
{
name: '道路统计',
name: '公路等级统计',
type: 'pie',
radius: ['50%', '65%'],
radius: ['50%', '63%'],
center:['30%','50%'],
// emphasis: { // 设置高亮时显示标签
// label: {
// show: true
@ -198,8 +199,13 @@ function Leftbottom() {
return (
<div className='build-right-bottom'>
<div ref={chartRef} style={{ width: width || 400, height: height || 200 }} id="ech"></div>
<div className='build-right-bottom-title'>
<h2>3234.23</h2>
<span>道路总公里</span>
</div>
<img src='/assets/images/quanju/chart-circle.png'></img>
<div ref={chartRef} style={{ width: width || "70%", height: height || "90%" }} id="ech"></div>
</div>
);
}
export default Leftbottom
export default Rightbottom

62
web/client/src/sections/quanju/containers/footer/build/index.js

@ -8,14 +8,30 @@ import Rightcenter from './Rightcenter'
import { Carousel } from 'antd'
import Module from '../../public/module'
import RightBottom from './Rightbottom'
import AutoRollComponent from './AutoRollComponent'
import './style.less'
const Build = () => {
const datas = new Array(15)
datas.fill({
name:"东乡镇",
number:"11111",
gongli:'9999'
},0,15)
const rendercontent = ()=>{
return (<div className='build-left-center-content'>
{datas.map(({name,number,gongli},index)=><div className='build-left-center-item' key={index}>
<span>{name}</span>
<span>{number}</span>
<span>{gongli}</span>
</div>)}
</div>)
}
return (
<div className='bgbuild'>
<div className='bgbuild-left'>
<Module title={"各种状态公路数量统计"} style={{ width: "100%",
height:" 33%"
}}>
}} customize = {true}>
<div className='build-left-top'>
<div className='build-left-top-item'>
<div>
@ -38,7 +54,7 @@ const Build = () => {
</Module>
<Module title={"各乡镇道路占比统计"} style={{ width: "100%",
height:" 33%",marginTop:'3%'
}}>
}} customize = {true}>
<div className='build-left-center'>
<div className='build-left-center-top'>
<div>
@ -61,45 +77,13 @@ const Build = () => {
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-content'>
<Carousel dotPosition='left' autoplay={true} dots={false}>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
<div className='build-left-center-item'>
<span>乡镇名称</span>
<span>公路数量/</span>
<span>公里</span>
</div>
</Carousel>
</div>
<AutoRollComponent content = {rendercontent()} containerStyle={{ position: "relative", height: "50%", }}
divHeight={"100%"} divId={"chart"} />
</div>
</Module>
<Module title={"道路统计"} style={{ width: "100%",
height:" 30%",marginTop:'3%'
}}>
}} customize = {true}>
<LeftBottom/>
</Module>
@ -115,12 +99,12 @@ const Build = () => {
</Module>
<Module title={"各乡镇在建公路工程"} style={{ width: "100%",
height:" 33%",marginTop:'3%'
}}>
}} customize = {true}>
<Rightcenter/>
</Module>
<Module title={"公路等级统计"} style={{ width: "100%",
height:" 30%",marginTop:'3%'
}}>
}} customize = {true}>
<RightBottom/>
</Module>
</div>

114
web/client/src/sections/quanju/containers/footer/build/style.less

@ -1,3 +1,8 @@
@media screen and (max-width:1281px){
html{
font-size: 10px;
}
}
.bgbuild{
// box-sizing: border-box;
padding: 0 15px 0 15px;
@ -15,8 +20,8 @@
justify-content: center;
align-items: center;
.build-left-top-center{
width: 174px;
height: 146px;
width: 35%;
height: 50%;
margin: 0 10px;
}
.build-left-top-item{
@ -45,11 +50,11 @@
transform: rotate(134deg);
}
&:nth-child(2){
font-size: 16px;
font-size: 1rem;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #E9F7FF;
line-height: 22px;
// line-height: 22px;
}
}
@ -58,7 +63,7 @@
// width: 80%;
// height: 100%;
// margin: 1% auto 0;
font-size: 38px;
font-size: 2.375rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
text-align: center;
@ -85,8 +90,8 @@
justify-content: center;
align-items: center;
img{
height: 50px;
width: 78px;
// height: 15%;
width: 25%;
}
div{
@ -97,14 +102,14 @@
margin-left: 10px;
span{
&:nth-child(1){
font-size: 12px;
font-size: 0.75rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #C2EEFF;
letter-spacing: 1px;
}
&:nth-child(2){
font-size: 28px;
font-size: 1.75rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
line-height: 36px;
@ -130,12 +135,12 @@
}
}
.build-left-center-content{
width: 100%;
height: 100px!important;
// width: 100%;
// height:40%;
.build-left-center-item{
display: flex !important;
width: 100%!important;
height: 28px!important;
display: flex ;
width: 100%;
height: 28px;
span{
flex:1;
text-align: center;
@ -146,9 +151,9 @@
line-height: 16px;
}
}
.slick-list{
height: 128px !important;
}
// .slick-list{
// height: 128px !important;
// }
}
@ -159,6 +164,35 @@
display: flex;
justify-content: center;
align-items: center;
position: relative;
.build-left-bottom-title{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
left: 27%;
top:38%;
h2{
font-size: 1.25rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
line-height: 1.625rem;
text-shadow: 0px 0px 0.25rem #1C60FE;
}
span{
font-size: 0.75rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #E9F7FF;
}
}
img{
width: 19%;
position: absolute;
left: 26.5%;
top:29%
}
}
}
@ -179,7 +213,7 @@
height: 30%;
width: 100%;
padding-left: 15px;
font-size: 24px;
font-size: 1.5rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
display: flex;
@ -200,23 +234,24 @@
justify-content: space-around;
align-items: center;
img{
width:12% ;
height: 80%;
width:14% ;
// height: 80%;
}
div{
font-size: 16px;
font-size: 1rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #C2EEFF;
line-height: 22px;
letter-spacing: 1px
transform: translateX(-1.5rem);
// line-height: 22px;
letter-spacing: 0.0625rem;
}
h2{
font-size: 28px;
font-size: 1.75rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
margin-bottom : 0!important;
text-shadow: 0px 0px 4px #07B9FE;
text-shadow: 0px 0px 0.25rem #07B9FE;
}
}
}
@ -226,6 +261,35 @@
display: flex;
justify-content: center;
align-items: center;
position: relative;
.build-right-bottom-title{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
left: 27%;
top:38%;
h2{
font-size: 1.25rem;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
line-height: 1.625rem;
text-shadow: 0px 0px 0.25rem #1C60FE;
}
span{
font-size: 0.75rem;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #E9F7FF;
}
}
img{
width: 19%;
position: absolute;
left: 26.5%;
top:29%
}
}
}
}

3
web/client/src/sections/quanju/containers/footer/conserve/index.js

@ -3,8 +3,9 @@ import Left from './left'
import Right from './right'
const Conserve = () => {
return (
<div style={{ display: 'flex', width: '100%',height: '100%',justifyContent: 'space-between' }}>
<div style={{ display: 'flex', width: '100%', height: '100%', justifyContent: 'space-between' }}>
<Left />
<Right />
</div>

202
web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js

@ -1,27 +1,219 @@
import { Col, Row } from 'antd'
import React from 'react'
import { useEffect } from 'react'
import { useEffect, useRef } from 'react'
import Module from '../../../public/module'
import * as echarts from 'echarts';
const LeftCenter = () => {
const style = { height: "31%", marginTop: "3%" }
const chartRef = useRef(null);
useEffect(() => {
let chartInstance = echarts.init(chartRef.current);
let colorArray = [
{
top: "#07B9FE",
bottom: "#10274B",
},
{
top: "#1978E5",
bottom: " #10274B",
},
{
top: "#1978E5",
bottom: "#10274B",
},
];
const option = {
tooltip: {
show: true,
trigger: "axis",
axisPointer: {
type: "none",
},
},
grid: {
left: "5%",
top: "12%",
right: "1%",
bottom: "8%",
containLabel: true,
},
xAxis: {
type: "value",
show: true,
position: "bottom",
axisTick: {
show: true,
lineStyle: {
color: "rgba(176,215,255,0.25)",
// type: "dashed",
},
},
axisLine: {
show: false,
lineStyle: {
color: "rgba(216,240,255,0.8000)",
},
},
splitLine: {
show: true,
lineStyle: {
color: "rgba(176,215,255,0.25)",
type: "dashed",
},
},
},
yAxis: [
{
type: "category",
axisTick: {
show: false,
alignWithLabel: false,
length: 5,
},
splitLine: {
//网格线
show: false,
},
inverse: true, //排序
axisLine: {
show: false,
lineStyle: {
color: "rgba(176,215,255,0.8)",
},
},
zlevel: 100,
data: ["县级可绿化里程", "乡级可绿化里程", "村级可绿化里程"],
},
{
type: "category",
axisTick: {
show: false,
alignWithLabel: false,
length: 5,
},
splitLine: {
//网格线
show: false,
},
axisLabel: {
show: true,
backgroundColor: {
image: 'assets/images/quanju/kelvhua_bdbg.png',
},
width: 50,
height: 20,
color: '#D8F0FF',
margin:40,
verticalAlign: 'middle',
align: 'center'
// formatter:(f) =>{console.log('f:',f);}
},
inverse: true, //排序
axisLine: {
show: false,
lineStyle: {
color: "rgba(176,215,255,0.8)",
},
},
data: [60, 132, 89],
},
],
series: [
{
name: '背景',
type: "bar",
barWidth: 3,
barGap: "100%",
barCategoryGap: "50%",
color: "#15356E",
data: [150, 150, 150, 150],
tooltip: {
show: false,
},
},
{
name: "",
type: "bar",
zlevel: 1,
barWidth: 3,
barGap: "-100%",
barCategoryGap: "50%",
data: [60, 132, 89],
label: {
show: true,
position: 'right', // 位置
fontSize: 12,
lineHeight: 13,
distance: -2,
verticalAlign: "middle",
formatter: [
'{a| }',
].join(''), // 这里是数据展示的时候显示的数据
rich: {
a: {
backgroundColor: {
image: 'assets/images/quanju/circle2.png'
},
width: 15,
height: 15,
align: 'left',
verticalAlign: "center",
}
}
},
itemStyle: {
normal: {
show: true,
color: function (params) {
return {
type: "linear",
colorStops: [
{
offset: 0,
color: colorArray[params.dataIndex].bottom,
},
{
offset: 1,
color: colorArray[params.dataIndex].top,
},
}, [])
],
// globalCoord: false,
};
},
barBorderRadius: 70,
borderWidth: 0,
borderColor: "#333",
},
},
emphasis: {
disabled: true //禁止移入柱子改变颜色
}
},
],
};
chartInstance.setOption(option);
window.onresize = function () {
chartInstance.resize();
}
}, []);
return (
<>
<Module style={style} title={"可绿化里程统计"}>
<Row align='middle' style={{ padding: 10 }}>
<Row align='middle' style={{ padding: '10px 3% 0px 15px' }}>
<Col span={15}>
<img src='assets/images/quanju/kelvhua_icon.png' alt='icon' />
<span style={{ color: '#C2EEFF', marginLeft: 5 }}>可绿化里程总数</span>
</Col>
<Col span={9} style={{ fontSize: 28, fontFamily: 'YouSheBiaoTiHei', color: '#fff' }}>1234.123</Col>
</Row>
<div>图表</div>
<div ref={chartRef} style={{ height: "14.5vh", width: "96%" }}></div>
</Module>
</>

52
web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js

@ -12,6 +12,9 @@ const LeftTop = () => {
useEffect(() => {
let chartInstance = echarts.init(seasonChartRef.current);
const seasonOption = {
tooltip:{
show:true
},
title: [
{
text: "季节性",
@ -37,6 +40,13 @@ const LeftTop = () => {
radius: ["60%", "68%"],
center: ["50%", "50%"],
},
grid: {
left: "5%",
top: "12%",
right: "1%",
bottom: "8%",
containLabel: true,
},
angleAxis: {
max: 100,
show: false,
@ -61,7 +71,7 @@ const LeftTop = () => {
roundCap: true,
barWidth: 30,
showBackground: true,
data: [40],
data: [{value:40,name:'季节性'}],
coordinateSystem: "polar",
itemStyle: {
normal: {
@ -81,11 +91,21 @@ const LeftTop = () => {
],
};
chartInstance.setOption(seasonOption);
window.addEventListener('resize',() =>{
if(chartInstance) {
chartInstance.resize()
}
})
}, [])
useEffect(() => {
let chartInstance = echarts.init(frequentlyChartRef.current);
const frequentlyOption = {
tooltip:{
show:true,
trigger: "item",
},
title: [
{
text: "经常性",
@ -111,6 +131,14 @@ const LeftTop = () => {
radius: ["60%", "68%"],
center: ["50%", "50%"],
},
grid: {
left: "10%",
top: "12%",
right: "1%",
bottom: "8%",
width: '70%',
containLabel: true,
},
angleAxis: {
max: 100,
show: false,
@ -135,7 +163,7 @@ const LeftTop = () => {
roundCap: true,
barWidth: 30,
showBackground: true,
data: [40],
data:[{value:40,name:'经常性'}],
coordinateSystem: "polar",
itemStyle: {
normal: {
@ -157,30 +185,34 @@ const LeftTop = () => {
],
};
chartInstance.setOption(frequentlyOption);
window.addEventListener('resize', () => {
if (chartInstance) {
chartInstance.resize()
}
})
}, [])
const style = { height: "31%", marginTop: "3%" }
return (
<>
<Module style={style} title={"道路养护周期统计"}>
<div style={{ position: 'relative' }}>
<div style={{ width: '100%', display: 'flex' }}>
<div ref={seasonChartRef} style={{ height: "23vh", width: "50%" }}>
<div style={{ position: 'relative', width: '100%', height: '100%' }}>
<div style={{ width: '100%', height: '100%', display: 'flex', padding: '3%' }}>
<div ref={seasonChartRef} style={{ width: "50%" }}>
</div>
<div ref={frequentlyChartRef} style={{ height: "23vh", width: "50%" }}></div>
<div ref={frequentlyChartRef} style={{ width: "50%" }}></div>
</div>
<img src='assets/images/quanju/circle.png' style={{
position: 'absolute',
left: '19%',
top: '70%',
left: '23%',
top: '66%',
zIndex: 999
}} />
<img src='assets/images/quanju/circle.png' style={{
position: 'absolute',
right: '27%',
top: '70%',
top: '66%',
zIndex: 999
}} />
</div>

6
web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js

@ -5,12 +5,12 @@ import Module from '../../../public/module'
const RightTop = () => {
const style = { height: "31%", marginTop: "3%" }
const textStyle = { fontSize: 14, color: '#E9F7FF' }
const numStyle = { color: '#fff', fontSize: 24, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 }
const numStyle = { color: '#fff', fontSize: 20, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 }
return (
<>
<Module style={style} title={"道路设施数量统计"}>
<div style={{ paddingLeft: '8%' }}>
<Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
<Row style={{ marginTop: "5%", justifyContent: 'space-around' }}>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/biaoxian.png' alt='icon' />
<div style={{ marginLeft: 10 }}>
@ -26,7 +26,7 @@ const RightTop = () => {
</span>
</Col>
</Row>
<Row style={{ marginTop: 20, justifyContent: 'space-around' }}>
<Row style={{ justifyContent: 'space-around' }}>
<Col style={{ display: 'flex', width: '50%' }}>
<img src='assets/images/quanju/biaozhi.png' alt='icon' />
<span style={{ marginLeft: 10 }}>

87
web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js

@ -5,82 +5,10 @@ export default function LeftItem() {
const seasonChartRef = useRef(null);
useEffect(() => {
let chartInstance = echarts.init(seasonChartRef.current);
// const seasonOption = {
// title: [
// {
// text: "已处理",
// x: "center",
// top: "55%",
// textStyle: {
// color: "#E9F7FF",
// fontSize: 14,
// },
// },
// {
// text: "2333",
// x: "center",
// y: "35%",
// textStyle: {
// fontSize: "30",
// color: "#FFFFFF",
// fontFamily: "YouSheBiaoTiHei",
// },
// },
// ],
// polar: {
// radius: ["78%", "86%"],
// center: ["50%", "50%"],
// },
// angleAxis: {
// max: 100,
// clockWise:false, //逆时针加载
// show: false,
// },
// radiusAxis: {
// type: "category",
// show: true,
// axisLabel: {
// show: false,
// },
// axisLine: {
// show: false,
// },
// axisTick: {
// show: false,
// },
// },
// series: [
// {
// name: "",
// type: "bar",
// roundCap: true,
// clockWise:false, //逆时针加载
// barWidth: 30,
// showBackground: true,
// data: [40],
// coordinateSystem: "polar",
// itemStyle: {
// normal: {
// color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
// {
// offset: 0,
// color: "#AAC8FF",
// },
// {
// offset: 1,
// color: "#0041BB",
// },
// ]),
// },
// },
// },
// ],
// };
const option = {
title: {
text: '75%',
top:'35%',
textStyle: {
fontSize: 22,
fontFamily: 'PingFangSC-Medium, PingFang SC',
@ -140,17 +68,17 @@ export default function LeftItem() {
series: [{
type: 'bar',
data: [{
name: '作文得分',
name: '已处理',
value: 75,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ {
offset: 0,
color: "#AAC8FF",
color: "#00D5FF",
},
{
offset: 1,
color: "#0041BB",
color: "#1978E5",
}])
}
},
@ -165,7 +93,7 @@ export default function LeftItem() {
data: [{
value: 100,
itemStyle: {
color: '#e2e2e2',
color: '#092B7B ',
shadowColor: 'rgba(0, 0, 0, 0.2)',
shadowBlur: 5,
shadowOffsetY: 2
@ -178,6 +106,9 @@ export default function LeftItem() {
z: 1
}]
}
chartInstance.setOption(option);
}, [])
@ -188,7 +119,9 @@ export default function LeftItem() {
<div>244 <span></span></div>
</div>
<div className='guanli-left-item-right'>
<div ref={seasonChartRef} style={{ height: "100%", width: "100%" }}></div>
<span></span>
<div ref={seasonChartRef} style={{ height: "100%", width: "100%" }}>
</div>
</div>
</div>
)

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

@ -26,18 +26,18 @@ const Guanli = () => {
})}
</div>
}
renderContent()
// renderContent()
return (
<div className='guanli'>
<div className='guanli-left'>
<Module style={{height:"100%"}} title="检测点治超处理占比">
<Module style={{height:"100%"}} title="检测点治超处理占比" customize={true}>
{itemlist.map((item,index)=>
<LeftItem key={index}></LeftItem>
)}
</Module>
</div>
<div className='guanli-right'>
<Module style={{height:"100%"}} title="治超详情">
<Module style={{height:"100%"}} title="治超详情" customize={true}>
<div className = "guanli-right-top">
<img src="/assets/images/quanju/zhicaolog.png"></img>
<span>已处理</span>

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

@ -19,8 +19,8 @@
justify-content: space-between;
border: 2px solid rgba(28,96,254,0.5000);
.guanli-left-item-left{
width: 30%;
height: 70%;
width: 45%;
height: 60%;
display: flex;
flex-direction: column;
align-items: center;
@ -37,7 +37,7 @@
font-size: 34px;
font-family: YouSheBiaoTiHei;
color: #FFFFFF;
height: 60%;
height: 70%;
width: 100%;
background: url('/assets/images/quanju/guanlijiance_1.png') no-repeat;
background-size: 100% 80%;
@ -56,7 +56,20 @@
}
.guanli-left-item-right{
width: 40%;
height: 60%;
height: 50%;
position: relative;
span{
position: absolute;
width: 8px;
height: 8px;
background-color: #fff;
top: 1.5%;
left: 50%;
z-index: 10;
border-radius: 4px;
display: block;
}
// background-color: pink;
}
// background-color: pink;

Loading…
Cancel
Save