Browse Source

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

release_0.0.4
dengyinhuan 3 years ago
parent
commit
07837acebb
  1. 123
      api/app/lib/controllers/data/index.js
  2. 5
      api/app/lib/controllers/data/road.js
  3. 29
      api/app/lib/controllers/organization/department.js
  4. 5
      api/app/lib/controllers/overview/management.js
  5. 4
      api/app/lib/controllers/overview/operation.js
  6. 1884
      api/app/lib/models/bridge.js
  7. 1029
      api/app/lib/models/bus_car.js
  8. 478
      api/app/lib/models/bus_line.js
  9. 592
      api/app/lib/models/municipal_business.js
  10. 801
      api/app/lib/models/municipal_vehicle.js
  11. 383
      api/app/lib/models/overspeed.js
  12. 4
      api/app/lib/routes/data/index.js
  13. 1397
      api/log/development.log
  14. 7
      api/package.json
  15. 4
      api/utils/xlsxDownload.js
  16. 60
      api/yarn.lock
  17. BIN
      scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx
  18. 8
      weapp/src/packages/changePassword/index.jsx
  19. 8
      weapp/src/packages/patrol/index.jsx
  20. 3
      weapp/src/packages/patrolView/index.config.js
  21. 66
      weapp/src/packages/patrolView/index.jsx
  22. 33
      weapp/src/pages/home/index.jsx
  23. 10
      weapp/src/pages/home/index.scss
  24. 2
      weapp/src/pages/user/index.jsx
  25. 88
      weapp/src/static/img/home/video-bg.svg
  26. 34
      web/client/assets/color.less
  27. 75
      web/client/src/sections/quanju/containers/example.js
  28. 4
      web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js
  29. 10
      web/client/src/sections/quanju/containers/footer/leadership/right/left.less

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

@ -1,27 +1,116 @@
'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 { ids } = ctx.query;
const fileList = [
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['村'],
},
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['县'],
},
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['乡'],
},
{
n: '桥梁',
tableName: 'bridge'
},
{
n: '运政车辆',
tableName: 'municipal_vehicle',
defaultKey: ['type'],
defaultValue: ['出租车'],
},
{
n: '运政车辆',
tableName: 'municipal_vehicle',
defaultKey: ['type'],
defaultValue: ['危货'],
},
{
n: '运政业户',
tableName: 'municipal_business',
defaultKey: ['type'],
defaultValue: ['出租车'],
},
{
n: '运政业户',
tableName: 'municipal_business',
defaultKey: ['type'],
defaultValue: ['危货'],
},
{
n: '工程一览',
tableName: 'project',
defaultKey: ['done', 'type'],
defaultValue: [false, 'road'],
},
{
n: '工程一览',
tableName: 'project',
defaultKey: ['done', 'type'],
defaultValue: [false, 'bridge'],
},
{
n: '治超',
tableName: 'overspeed',
},
{
n: '公交线路',
tableName: 'bus_line',
},
{
n: '公交车辆',
tableName: 'bus_car',
},
]
let findOption = {
where: {}
}
if (ids) {
findOption.where.id = { $in: ids.split(',') }
}
// const exportData = await models.BusCar.destroy({ const exportData = await models.BusCar.findAll(findOption)
// where: { const tableAttributes = models.BusCar.tableAttributes
// id: { $in: ids.split(',') } let header = []
// } for (let k in tableAttributes) {
// }) if (k != 'id') {
header.push({
title: tableAttributes[k].comment || '-',
key: k,
index: tableAttributes[k].index,
})
}
}
header.sort((a, b) => { return a.index - b.index })
// const fileName = `摄像头信息列表_${userId}_${moment().format('YYYYMMDDHHmmss')}` + '.csv' const fileName = `摄像头信息列表_${moment().format('YYYYMMDDHHmmss')}` + '.csv'
// const filePath = await simpleExcelDown({ data: exportData, header, fileName: fileName }) const filePath = await xlsxDownload.simpleExcelDown({ data: exportData, header, fileName: fileName })
// const fileData = fs.readFileSync(filePath); const fileData = fs.readFileSync(filePath);
// ctx.status = 200; ctx.status = 200;
// ctx.set('Content-Type', 'application/x-xls'); ctx.set('Content-Type', 'application/x-xls');
// ctx.set('Content-disposition', 'attachment; filename=' + encodeURI(fileName)); ctx.set('Content-disposition', 'attachment; filename=' + encodeURI(fileName));
// ctx.body = fileData; 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'].

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({

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -2,231 +2,255 @@
'use strict'; 'use strict';
module.exports = dc => { module.exports = dc => {
const DataTypes = dc.ORM; const DataTypes = dc.ORM;
const sequelize = dc.orm; const sequelize = dc.orm;
const BusLine = sequelize.define("busLine", { const BusLine = sequelize.define("busLine", {
id: { id: {
type: DataTypes.INTEGER, index: 1,
allowNull: false, type: DataTypes.INTEGER,
defaultValue: null, allowNull: false,
comment: null, defaultValue: null,
primaryKey: true, comment: null,
field: "id", primaryKey: true,
autoIncrement: true, field: "id",
unique: "bus_line_id_uindex" autoIncrement: true,
}, unique: "bus_line_id_uindex"
company: { },
type: DataTypes.STRING, company: {
allowNull: true, index: 2,
defaultValue: null, type: DataTypes.STRING,
comment: "公司", allowNull: true,
primaryKey: false, defaultValue: null,
field: "company", comment: "公司",
autoIncrement: false primaryKey: false,
}, field: "company",
fleet: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, fleet: {
defaultValue: null, index: 3,
comment: "车队", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "fleet", defaultValue: null,
autoIncrement: false comment: "车队",
}, primaryKey: false,
carCaptain: { field: "fleet",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, carCaptain: {
comment: "车队长", index: 4,
primaryKey: false, type: DataTypes.STRING,
field: "car_captain", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "车队长",
assistantCarCaptain: { primaryKey: false,
type: DataTypes.STRING, field: "car_captain",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "副车队长", assistantCarCaptain: {
primaryKey: false, index: 5,
field: "assistant_car_captain", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
officeLocation: { comment: "副车队长",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "assistant_car_captain",
defaultValue: null, autoIncrement: false
comment: "办公地点", },
primaryKey: false, officeLocation: {
field: "office_location", index: 6,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
lineName: { defaultValue: null,
type: DataTypes.STRING, comment: "办公地点",
allowNull: true, primaryKey: false,
defaultValue: null, field: "office_location",
comment: "线路名称", autoIncrement: false
primaryKey: false, },
field: "line_name", lineName: {
autoIncrement: false index: 7,
}, type: DataTypes.STRING,
lineType: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "线路名称",
defaultValue: null, primaryKey: false,
comment: "线路类型", field: "line_name",
primaryKey: false, autoIncrement: false
field: "line_type", },
autoIncrement: false lineType: {
}, index: 8,
lineDivision: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "线路类型",
comment: "线路划分", primaryKey: false,
primaryKey: false, field: "line_type",
field: "line_division", autoIncrement: false
autoIncrement: false },
}, lineDivision: {
gpsNumber: { index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "GPS编号", comment: "线路划分",
primaryKey: false, primaryKey: false,
field: "gps_number", field: "line_division",
autoIncrement: false autoIncrement: false
}, },
startingPointEndPoint: { gpsNumber: {
type: DataTypes.STRING, index: 10,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "起点终点", defaultValue: null,
primaryKey: false, comment: "GPS编号",
field: "starting_point_end_point", primaryKey: false,
autoIncrement: false field: "gps_number",
}, autoIncrement: false
numberOfVehicles: { },
type: DataTypes.STRING, startingPointEndPoint: {
allowNull: true, index: 11,
defaultValue: null, type: DataTypes.STRING,
comment: "车辆数", allowNull: true,
primaryKey: false, defaultValue: null,
field: "number_of_vehicles", comment: "起点终点",
autoIncrement: false primaryKey: false,
}, field: "starting_point_end_point",
totalKilometers: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, numberOfVehicles: {
defaultValue: null, index: 12,
comment: "全程公里数", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "total_kilometers", defaultValue: null,
autoIncrement: false comment: "车辆数",
}, primaryKey: false,
ticketPrice: { field: "number_of_vehicles",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, totalKilometers: {
comment: "票价", index: 13,
primaryKey: false, type: DataTypes.STRING,
field: "ticket_price", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "全程公里数",
openingTime: { primaryKey: false,
type: DataTypes.STRING, field: "total_kilometers",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "开通时间", ticketPrice: {
primaryKey: false, index: 14,
field: "opening_time", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
runningTime: { comment: "票价",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "ticket_price",
defaultValue: null, autoIncrement: false
comment: "运行时间", },
primaryKey: false, openingTime: {
field: "running_time", index: 15,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
openingTimeSummer: { defaultValue: null,
type: DataTypes.STRING, comment: "开通时间",
allowNull: true, primaryKey: false,
defaultValue: null, field: "opening_time",
comment: "开班时间夏令", autoIncrement: false
primaryKey: false, },
field: "opening_time_summer", runningTime: {
autoIncrement: false index: 16,
}, type: DataTypes.STRING,
shiftClosingTimeSummer: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "运行时间",
defaultValue: null, primaryKey: false,
comment: "收班时间夏令", field: "running_time",
primaryKey: false, autoIncrement: false
field: "shift_closing_time_summer", },
autoIncrement: false openingTimeSummer: {
}, index: 17,
openingTimeWinter: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "开班时间夏令",
comment: "开班时间冬令", primaryKey: false,
primaryKey: false, field: "opening_time_summer",
field: "opening_time_winter", autoIncrement: false
autoIncrement: false },
}, shiftClosingTimeSummer: {
shiftClosingTimeWinter: { index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "收班时间冬令", comment: "收班时间夏令",
primaryKey: false, primaryKey: false,
field: "shift_closing_time_winter", field: "shift_closing_time_summer",
autoIncrement: false autoIncrement: false
}, },
uplinkOfStationsAlongTheWay: { openingTimeWinter: {
type: DataTypes.STRING, index: 19,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "沿途站点上行", defaultValue: null,
primaryKey: false, comment: "开班时间冬令",
field: "uplink_of_stations_along_the_way", primaryKey: false,
autoIncrement: false field: "opening_time_winter",
}, autoIncrement: false
downlinkOfStationsAlongTheWay: { },
type: DataTypes.STRING, shiftClosingTimeWinter: {
allowNull: true, index: 20,
defaultValue: null, type: DataTypes.STRING,
comment: "沿途站点下行", allowNull: true,
primaryKey: false, defaultValue: null,
field: "downlink_of_stations_along_the_way", comment: "收班时间冬令",
autoIncrement: false primaryKey: false,
}, field: "shift_closing_time_winter",
area: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, uplinkOfStationsAlongTheWay: {
defaultValue: null, index: 21,
comment: "所属区域", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "area", defaultValue: null,
autoIncrement: false comment: "沿途站点上行",
}, primaryKey: false,
remarks: { field: "uplink_of_stations_along_the_way",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, downlinkOfStationsAlongTheWay: {
comment: "备注", index: 22,
primaryKey: false, type: DataTypes.STRING,
field: "remarks", allowNull: true,
autoIncrement: false defaultValue: null,
} comment: "沿途站点下行",
}, { primaryKey: false,
tableName: "bus_line", field: "downlink_of_stations_along_the_way",
comment: "", autoIncrement: false
indexes: [] },
}); area: {
dc.models.BusLine = BusLine; index: 23,
return BusLine; type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "所属区域",
primaryKey: false,
field: "area",
autoIncrement: false
},
remarks: {
index: 24,
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;
}; };

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

@ -2,285 +2,315 @@
'use strict'; 'use strict';
module.exports = dc => { module.exports = dc => {
const DataTypes = dc.ORM; const DataTypes = dc.ORM;
const sequelize = dc.orm; const sequelize = dc.orm;
const MunicipalBusiness = sequelize.define("municipalBusiness", { const MunicipalBusiness = sequelize.define("municipalBusiness", {
id: { id: {
type: DataTypes.INTEGER, index: 1,
allowNull: false, type: DataTypes.INTEGER,
defaultValue: null, allowNull: false,
comment: null, defaultValue: null,
primaryKey: true, comment: null,
field: "id", primaryKey: true,
autoIncrement: true, field: "id",
unique: "municipal_business_id_uindex" autoIncrement: true,
}, unique: "municipal_business_id_uindex"
nameOfBusinessOwner: { },
type: DataTypes.STRING, nameOfBusinessOwner: {
allowNull: true, index: 2,
defaultValue: null, type: DataTypes.STRING,
comment: "业户名称", allowNull: true,
primaryKey: false, defaultValue: null,
field: "name_of_business_owner", comment: "业户名称",
autoIncrement: false primaryKey: false,
}, field: "name_of_business_owner",
productName: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, productName: {
defaultValue: null, index: 3,
comment: "品名", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "product_name", defaultValue: null,
autoIncrement: false comment: "品名",
}, primaryKey: false,
creditSocialCode: { field: "product_name",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, creditSocialCode: {
comment: "信用社会代码", index: 4,
primaryKey: false, type: DataTypes.STRING,
field: "credit_social_code", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "信用社会代码",
administrativeDivision: { primaryKey: false,
type: DataTypes.STRING, field: "credit_social_code",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "行政区划", administrativeDivision: {
primaryKey: false, index: 5,
field: "administrative_division", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
economicNature: { comment: "行政区划",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "administrative_division",
defaultValue: null, autoIncrement: false
comment: "经济性质", },
primaryKey: false, economicNature: {
field: "economic_nature", index: 6,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
address: { defaultValue: null,
type: DataTypes.STRING, comment: "经济性质",
allowNull: true, primaryKey: false,
defaultValue: null, field: "economic_nature",
comment: "地址", autoIncrement: false
primaryKey: false, },
field: "address", address: {
autoIncrement: false index: 7,
}, type: DataTypes.STRING,
contactNumber: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "地址",
defaultValue: null, primaryKey: false,
comment: "联系电话", field: "address",
primaryKey: false, autoIncrement: false
field: "contact_number", },
autoIncrement: false contactNumber: {
}, index: 8,
email: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "联系电话",
comment: "电子邮箱", primaryKey: false,
primaryKey: false, field: "contact_number",
field: "email", autoIncrement: false
autoIncrement: false },
}, email: {
legalRepresentative: { index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "法定代表人", comment: "电子邮箱",
primaryKey: false, primaryKey: false,
field: "legal_representative", field: "email",
autoIncrement: false autoIncrement: false
}, },
typeOfLegalPersonCertificate: { legalRepresentative: {
type: DataTypes.STRING, index: 10,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "法人证件类型", defaultValue: null,
primaryKey: false, comment: "法定代表人",
field: "type_of_legal_person_certificate", primaryKey: false,
autoIncrement: false field: "legal_representative",
}, autoIncrement: false
natureOfTransportation: { },
type: DataTypes.STRING, typeOfLegalPersonCertificate: {
allowNull: true, index: 11,
defaultValue: null, type: DataTypes.STRING,
comment: "运输性质", allowNull: true,
primaryKey: false, defaultValue: null,
field: "nature_of_transportation", comment: "法人证件类型",
autoIncrement: false primaryKey: false,
}, field: "type_of_legal_person_certificate",
legalPersonCertificateNumber: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, natureOfTransportation: {
defaultValue: null, index: 12,
comment: "法人证件号码", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "legal_person_certificate_number", defaultValue: null,
autoIncrement: false comment: "运输性质",
}, primaryKey: false,
telephoneNumberOfLegalRepresentative: { field: "nature_of_transportation",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, legalPersonCertificateNumber: {
comment: "法定代表人电话", index: 13,
primaryKey: false, type: DataTypes.STRING,
field: "telephone_number_of_legal_representative", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "法人证件号码",
nameOfThePersonInChargeOfTheBusiness: { primaryKey: false,
type: DataTypes.STRING, field: "legal_person_certificate_number",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "经营业户负责人姓名", telephoneNumberOfLegalRepresentative: {
primaryKey: false, index: 14,
field: "name_of_the_person_in_charge_of_the_business", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
telephoneNumberOfThePersonInChargeOfTheBusiness: { comment: "法定代表人电话",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "telephone_number_of_legal_representative",
defaultValue: null, autoIncrement: false
comment: "经营业户负责人电话号码", },
primaryKey: false, nameOfThePersonInChargeOfTheBusiness: {
field: "telephone_number_of_the_person_in_charge_of_the_business", index: 15,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
handledBy: { defaultValue: null,
type: DataTypes.STRING, comment: "经营业户负责人姓名",
allowNull: true, primaryKey: false,
defaultValue: null, field: "name_of_the_person_in_charge_of_the_business",
comment: "经办人", autoIncrement: false
primaryKey: false, },
field: "handled_by", telephoneNumberOfThePersonInChargeOfTheBusiness: {
autoIncrement: false index: 16,
}, type: DataTypes.STRING,
phoneNumberOfHandler: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "经营业户负责人电话号码",
defaultValue: null, primaryKey: false,
comment: "经办人电话", field: "telephone_number_of_the_person_in_charge_of_the_business",
primaryKey: false, autoIncrement: false
field: "phone_number_of_handler", },
autoIncrement: false handledBy: {
}, index: 17,
natureOfBusiness: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "经办人",
comment: "经营范围", primaryKey: false,
primaryKey: false, field: "handled_by",
field: "nature_of_business", autoIncrement: false
autoIncrement: false },
}, phoneNumberOfHandler: {
businessStatus: { index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "经营状态", comment: "经办人电话",
primaryKey: false, primaryKey: false,
field: "business_status", field: "phone_number_of_handler",
autoIncrement: false autoIncrement: false
}, },
businessLicenseNo: { natureOfBusiness: {
type: DataTypes.STRING, index: 19,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "经营许可证号", defaultValue: null,
primaryKey: false, comment: "经营范围",
field: "business_license_no", primaryKey: false,
autoIncrement: false field: "nature_of_business",
}, autoIncrement: false
fromTheExpiryDate: { },
type: DataTypes.STRING, businessStatus: {
allowNull: true, index: 20,
defaultValue: null, type: DataTypes.STRING,
comment: "有效期起", allowNull: true,
primaryKey: false, defaultValue: null,
field: "from_the_expiry_date", comment: "经营状态",
autoIncrement: false primaryKey: false,
}, field: "business_status",
expiryDate: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, businessLicenseNo: {
defaultValue: null, index: 21,
comment: "有效期止", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "expiry_date", defaultValue: null,
autoIncrement: false comment: "经营许可证号",
}, primaryKey: false,
issuingAuthority: { field: "business_license_no",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, fromTheExpiryDate: {
comment: "发证机构", index: 22,
primaryKey: false, type: DataTypes.STRING,
field: "issuing_authority", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "有效期起",
dateOfIssuance: { primaryKey: false,
type: DataTypes.STRING, field: "from_the_expiry_date",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "核发日期", expiryDate: {
primaryKey: false, index: 23,
field: "date_of_issuance", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
licenseCategory: { comment: "有效期止",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "expiry_date",
defaultValue: null, autoIncrement: false
comment: "证照类别", },
primaryKey: false, issuingAuthority: {
field: "license_category", index: 24,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
licenseIssuanceType: { defaultValue: null,
type: DataTypes.STRING, comment: "发证机构",
allowNull: true, primaryKey: false,
defaultValue: null, field: "issuing_authority",
comment: "证照发放类型", autoIncrement: false
primaryKey: false, },
field: "license_issuance_type", dateOfIssuance: {
autoIncrement: false index: 25,
}, type: DataTypes.STRING,
numberOfSharedVehicles: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "核发日期",
defaultValue: null, primaryKey: false,
comment: "共有车辆数", field: "date_of_issuance",
primaryKey: false, autoIncrement: false
field: "number_of_shared_vehicles", },
autoIncrement: false licenseCategory: {
}, index: 26,
creationDate: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "证照类别",
comment: "创建日期", primaryKey: false,
primaryKey: false, field: "license_category",
field: "creation_date", autoIncrement: false
autoIncrement: false },
}, licenseIssuanceType: {
type: { index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "类型 出租车/危货", comment: "证照发放类型",
primaryKey: false, primaryKey: false,
field: "type", field: "license_issuance_type",
autoIncrement: false autoIncrement: false
} },
}, { numberOfSharedVehicles: {
tableName: "municipal_business", index: 28,
comment: "", type: DataTypes.STRING,
indexes: [] allowNull: true,
}); defaultValue: null,
dc.models.MunicipalBusiness = MunicipalBusiness; comment: "共有车辆数",
return MunicipalBusiness; primaryKey: false,
field: "number_of_shared_vehicles",
autoIncrement: false
},
creationDate: {
index: 29,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "创建日期",
primaryKey: false,
field: "creation_date",
autoIncrement: false
},
type: {
index: 30,
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: "类型 出租车/危货",
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "municipal_business",
comment: "",
indexes: []
});
dc.models.MunicipalBusiness = MunicipalBusiness;
return MunicipalBusiness;
}; };

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

@ -2,384 +2,425 @@
'use strict'; 'use strict';
module.exports = dc => { module.exports = dc => {
const DataTypes = dc.ORM; const DataTypes = dc.ORM;
const sequelize = dc.orm; const sequelize = dc.orm;
const MunicipalVehicle = sequelize.define("municipalVehicle", { const MunicipalVehicle = sequelize.define("municipalVehicle", {
id: { id: {
type: DataTypes.INTEGER, index: 1,
allowNull: false, type: DataTypes.INTEGER,
defaultValue: null, allowNull: false,
comment: null, defaultValue: null,
primaryKey: true, comment: null,
field: "id", primaryKey: true,
autoIncrement: true, field: "id",
unique: "municipal_vehicle_id_uindex" autoIncrement: true,
}, unique: "municipal_vehicle_id_uindex"
nameOfBusinessOwner: { },
type: DataTypes.STRING, nameOfBusinessOwner: {
allowNull: true, index: 2,
defaultValue: null, type: DataTypes.STRING,
comment: "业户名称", allowNull: true,
primaryKey: false, defaultValue: null,
field: "name_of_business_owner", comment: "业户名称",
autoIncrement: false primaryKey: false,
}, field: "name_of_business_owner",
productName: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, productName: {
defaultValue: null, index: 3,
comment: "品名", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "product_name", defaultValue: null,
autoIncrement: false comment: "品名",
}, primaryKey: false,
vehicleRegistry: { field: "product_name",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, vehicleRegistry: {
comment: "车籍地", index: 4,
primaryKey: false, type: DataTypes.STRING,
field: "vehicle_registry", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "车籍地",
licensePlateNumber: { primaryKey: false,
type: DataTypes.STRING, field: "vehicle_registry",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "车牌号", licensePlateNumber: {
primaryKey: false, index: 5,
field: "license_plate_number", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
fuelType: { comment: "车牌号",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "license_plate_number",
defaultValue: null, autoIncrement: false
comment: "燃料类型", },
primaryKey: false, fuelType: {
field: "fuel_type", index: 6,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
address: { defaultValue: null,
type: DataTypes.STRING, comment: "燃料类型",
allowNull: true, primaryKey: false,
defaultValue: null, field: "fuel_type",
comment: "住址", autoIncrement: false
primaryKey: false, },
field: "address", address: {
autoIncrement: false index: 7,
}, type: DataTypes.STRING,
economicNature: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "住址",
defaultValue: null, primaryKey: false,
comment: "经济性质", field: "address",
primaryKey: false, autoIncrement: false
field: "economic_nature", },
autoIncrement: false economicNature: {
}, index: 8,
approvedPassengerCapacity: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "经济性质",
comment: "核定载客位数", primaryKey: false,
primaryKey: false, field: "economic_nature",
field: "approved_passenger_capacity", autoIncrement: false
autoIncrement: false },
}, approvedPassengerCapacity: {
approvedLoadMass: { index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "核定载质量", comment: "核定载客位数",
primaryKey: false, primaryKey: false,
field: "approved_load_mass", field: "approved_passenger_capacity",
autoIncrement: false autoIncrement: false
}, },
numberOfVehicleAxles: { approvedLoadMass: {
type: DataTypes.STRING, index: 10,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "车辆车轴数", defaultValue: null,
primaryKey: false, comment: "核定载质量",
field: "number_of_vehicle_axles", primaryKey: false,
autoIncrement: false field: "approved_load_mass",
}, autoIncrement: false
vehicleBrand: { },
type: DataTypes.STRING, numberOfVehicleAxles: {
allowNull: true, index: 11,
defaultValue: null, type: DataTypes.STRING,
comment: "车辆厂牌", allowNull: true,
primaryKey: false, defaultValue: null,
field: "vehicle_brand", comment: "车辆车轴数",
autoIncrement: false primaryKey: false,
}, field: "number_of_vehicle_axles",
natureOfBusiness: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, vehicleBrand: {
defaultValue: null, index: 12,
comment: "经营范围", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "nature_of_business", defaultValue: null,
autoIncrement: false comment: "车辆厂牌",
}, primaryKey: false,
vehicleOperationStatus: { field: "vehicle_brand",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, natureOfBusiness: {
comment: "车辆营运状态", index: 13,
primaryKey: false, type: DataTypes.STRING,
field: "vehicle_operation_status", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "经营范围",
busTypeAndClass: { primaryKey: false,
type: DataTypes.STRING, field: "nature_of_business",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "客车类型与等级", vehicleOperationStatus: {
primaryKey: false, index: 14,
field: "bus_type_and_class", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
annualReviewResults: { comment: "车辆营运状态",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "vehicle_operation_status",
defaultValue: null, autoIncrement: false
comment: "年审结果", },
primaryKey: false, busTypeAndClass: {
field: "annual_review_results", index: 15,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
dateOfThisAnnualReview: { defaultValue: null,
type: DataTypes.STRING, comment: "客车类型与等级",
allowNull: true, primaryKey: false,
defaultValue: null, field: "bus_type_and_class",
comment: "本次年审日期", autoIncrement: false
primaryKey: false, },
field: "date_of_this_annual_review", annualReviewResults: {
autoIncrement: false index: 16,
}, type: DataTypes.STRING,
dateOfNextAnnualReview: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "年审结果",
defaultValue: null, primaryKey: false,
comment: "下次年审日期", field: "annual_review_results",
primaryKey: false, autoIncrement: false
field: "date_of_next_annual_review", },
autoIncrement: false dateOfThisAnnualReview: {
}, index: 17,
dateOfRegistration: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "本次年审日期",
comment: "注册登记日期", primaryKey: false,
primaryKey: false, field: "date_of_this_annual_review",
field: "date_of_registration", autoIncrement: false
autoIncrement: false },
}, dateOfNextAnnualReview: {
sourceOfTransportationCapacity: { index: 18,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "运力来源", comment: "下次年审日期",
primaryKey: false, primaryKey: false,
field: "source_of_transportation_capacity", field: "date_of_next_annual_review",
autoIncrement: false autoIncrement: false
}, },
fromTheExpiryDate: { dateOfRegistration: {
type: DataTypes.STRING, index: 19,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "有效期起", defaultValue: null,
primaryKey: false, comment: "注册登记日期",
field: "from_the_expiry_date", primaryKey: false,
autoIncrement: false field: "date_of_registration",
}, autoIncrement: false
expiryDate: { },
type: DataTypes.STRING, sourceOfTransportationCapacity: {
allowNull: true, index: 20,
defaultValue: null, type: DataTypes.STRING,
comment: "有效期止", allowNull: true,
primaryKey: false, defaultValue: null,
field: "expiry_date", comment: "运力来源",
autoIncrement: false primaryKey: false,
}, field: "source_of_transportation_capacity",
engineDisplacement: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, fromTheExpiryDate: {
defaultValue: null, index: 21,
comment: "发动机排量", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "engine_displacement", defaultValue: null,
autoIncrement: false comment: "有效期起",
}, primaryKey: false,
engineNumber: { field: "from_the_expiry_date",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, expiryDate: {
comment: "发动机号", index: 22,
primaryKey: false, type: DataTypes.STRING,
field: "engine_number", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "有效期止",
vehicleEnginePower: { primaryKey: false,
type: DataTypes.STRING, field: "expiry_date",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "车辆发动机功率", engineDisplacement: {
primaryKey: false, index: 23,
field: "vehicle_engine_power", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
businessLicenseNo: { comment: "发动机排量",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "engine_displacement",
defaultValue: null, autoIncrement: false
comment: "经营许可证号", },
primaryKey: false, engineNumber: {
field: "business_license_no", index: 24,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
licensePlateColor: { defaultValue: null,
type: DataTypes.STRING, comment: "发动机号",
allowNull: true, primaryKey: false,
defaultValue: null, field: "engine_number",
comment: "车牌颜色", autoIncrement: false
primaryKey: false, },
field: "license_plate_color", vehicleEnginePower: {
autoIncrement: false index: 25,
}, type: DataTypes.STRING,
totalVehicleMass: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "车辆发动机功率",
defaultValue: null, primaryKey: false,
comment: "车辆总质量", field: "vehicle_engine_power",
primaryKey: false, autoIncrement: false
field: "total_vehicle_mass", },
autoIncrement: false businessLicenseNo: {
}, index: 26,
totalQuasiTractionMassOfVehicle: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "经营许可证号",
comment: "车辆准牵引总质量", primaryKey: false,
primaryKey: false, field: "business_license_no",
field: "total_quasi_traction_mass_of_vehicle", autoIncrement: false
autoIncrement: false },
}, licensePlateColor: {
roadTransportCertificateNo: { index: 27,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "道路运输证号", comment: "车牌颜色",
primaryKey: false, primaryKey: false,
field: "road_transport_certificate_no", field: "license_plate_color",
autoIncrement: false autoIncrement: false
}, },
vehicleHeight: { totalVehicleMass: {
type: DataTypes.STRING, index: 28,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "车辆车高", defaultValue: null,
primaryKey: false, comment: "车辆总质量",
field: "vehicle_height", primaryKey: false,
autoIncrement: false field: "total_vehicle_mass",
}, autoIncrement: false
vehicleConductor: { },
type: DataTypes.STRING, totalQuasiTractionMassOfVehicle: {
allowNull: true, index: 29,
defaultValue: null, type: DataTypes.STRING,
comment: "车辆车长", allowNull: true,
primaryKey: false, defaultValue: null,
field: "vehicle_conductor", comment: "车辆准牵引总质量",
autoIncrement: false primaryKey: false,
}, field: "total_quasi_traction_mass_of_vehicle",
vehicleWidth: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, roadTransportCertificateNo: {
defaultValue: null, index: 30,
comment: "车辆车宽", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "vehicle_width", defaultValue: null,
autoIncrement: false comment: "道路运输证号",
}, primaryKey: false,
vehicleType: { field: "road_transport_certificate_no",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, vehicleHeight: {
comment: "车辆类型", index: 31,
primaryKey: false, type: DataTypes.STRING,
field: "vehicle_type", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "车辆车高",
vehicleTypeWithDrivingLicense: { primaryKey: false,
type: DataTypes.STRING, field: "vehicle_height",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "行驶证车辆类型", vehicleConductor: {
primaryKey: false, index: 32,
field: "vehicle_type_with_driving_license", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
vehicleWheelbase: { comment: "车辆车长",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "vehicle_conductor",
defaultValue: null, autoIncrement: false
comment: "车辆轴距", },
primaryKey: false, vehicleWidth: {
field: "vehicle_wheelbase", index: 33,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
ratingDate: { defaultValue: null,
type: DataTypes.STRING, comment: "车辆车宽",
allowNull: true, primaryKey: false,
defaultValue: null, field: "vehicle_width",
comment: "等级评定日期", autoIncrement: false
primaryKey: false, },
field: "rating_date", vehicleType: {
autoIncrement: false index: 34,
}, type: DataTypes.STRING,
technicalEvaluationGrade: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "车辆类型",
defaultValue: null, primaryKey: false,
comment: "技术评定等级", field: "vehicle_type",
primaryKey: false, autoIncrement: false
field: "technical_evaluation_grade", },
autoIncrement: false vehicleTypeWithDrivingLicense: {
}, index: 35,
nextRatingDate: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "行驶证车辆类型",
comment: "下次等级评定日期", primaryKey: false,
primaryKey: false, field: "vehicle_type_with_driving_license",
field: "next_rating_date", autoIncrement: false
autoIncrement: false },
}, vehicleWheelbase: {
creationDate: { index: 36,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "创建日期", comment: "车辆轴距",
primaryKey: false, primaryKey: false,
field: "creation_date", field: "vehicle_wheelbase",
autoIncrement: false autoIncrement: false
}, },
type: { ratingDate: {
type: DataTypes.STRING, index: 37,
allowNull: false, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "类型 出租车/危货", defaultValue: null,
primaryKey: false, comment: "等级评定日期",
field: "type", primaryKey: false,
autoIncrement: false field: "rating_date",
} autoIncrement: false
}, { },
tableName: "municipal_vehicle", technicalEvaluationGrade: {
comment: "", index: 38,
indexes: [] type: DataTypes.STRING,
}); allowNull: true,
dc.models.MunicipalVehicle = MunicipalVehicle; defaultValue: null,
return MunicipalVehicle; comment: "技术评定等级",
primaryKey: false,
field: "technical_evaluation_grade",
autoIncrement: false
},
nextRatingDate: {
index: 39,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "下次等级评定日期",
primaryKey: false,
field: "next_rating_date",
autoIncrement: false
},
creationDate: {
index: 40,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "创建日期",
primaryKey: false,
field: "creation_date",
autoIncrement: false
},
type: {
index: 41,
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: "类型 出租车/危货",
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "municipal_vehicle",
comment: "",
indexes: []
});
dc.models.MunicipalVehicle = MunicipalVehicle;
return MunicipalVehicle;
}; };

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

@ -2,186 +2,205 @@
'use strict'; 'use strict';
module.exports = dc => { module.exports = dc => {
const DataTypes = dc.ORM; const DataTypes = dc.ORM;
const sequelize = dc.orm; const sequelize = dc.orm;
const Overspeed = sequelize.define("overspeed", { const Overspeed = sequelize.define("overspeed", {
id: { id: {
type: DataTypes.INTEGER, index: 1,
allowNull: false, type: DataTypes.INTEGER,
defaultValue: null, allowNull: false,
comment: null, defaultValue: null,
primaryKey: true, comment: null,
field: "id", primaryKey: true,
autoIncrement: true, field: "id",
unique: "overspeed_id_uindex" autoIncrement: true,
}, unique: "overspeed_id_uindex"
districtcounty: { },
type: DataTypes.STRING, districtcounty: {
allowNull: true, index: 2,
defaultValue: null, type: DataTypes.STRING,
comment: "区/县", allowNull: true,
primaryKey: false, defaultValue: null,
field: "districtcounty", comment: "区/县",
autoIncrement: false primaryKey: false,
}, field: "districtcounty",
nameOfInspectionPoint: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, nameOfInspectionPoint: {
defaultValue: null, index: 3,
comment: "检测点名称", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "name_of_inspection_point", defaultValue: null,
autoIncrement: false comment: "检测点名称",
}, primaryKey: false,
licensePlate: { field: "name_of_inspection_point",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, licensePlate: {
comment: "车牌号码", index: 4,
primaryKey: false, type: DataTypes.STRING,
field: "license_plate", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "车牌号码",
numberOfAxles: { primaryKey: false,
type: DataTypes.STRING, field: "license_plate",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "车轴数", numberOfAxles: {
primaryKey: false, index: 5,
field: "number_of_axles", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
overrunRate: { comment: "车轴数",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "number_of_axles",
defaultValue: null, autoIncrement: false
comment: "超限率", },
primaryKey: false, overrunRate: {
field: "overrun_rate", index: 6,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
overrunWeight: { defaultValue: null,
type: DataTypes.STRING, comment: "超限率",
allowNull: true, primaryKey: false,
defaultValue: null, field: "overrun_rate",
comment: "超限重量", autoIncrement: false
primaryKey: false, },
field: "overrun_weight", overrunWeight: {
autoIncrement: false index: 7,
}, type: DataTypes.STRING,
grossVehicleWeight: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "超限重量",
defaultValue: null, primaryKey: false,
comment: "车货总重", field: "overrun_weight",
primaryKey: false, autoIncrement: false
field: "gross_vehicle_weight", },
autoIncrement: false grossVehicleWeight: {
}, index: 8,
vehicleCargoWeightLimit: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "车货总重",
comment: "车货限重", primaryKey: false,
primaryKey: false, field: "gross_vehicle_weight",
field: "vehicle_cargo_weight_limit", autoIncrement: false
autoIncrement: false },
}, vehicleCargoWeightLimit: {
testTime: { index: 9,
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: true, allowNull: true,
defaultValue: null, defaultValue: null,
comment: "检测时间", comment: "车货限重",
primaryKey: false, primaryKey: false,
field: "test_time", field: "vehicle_cargo_weight_limit",
autoIncrement: false autoIncrement: false
}, },
nameOfBusinessOwner: { testTime: {
type: DataTypes.STRING, index: 10,
allowNull: true, type: DataTypes.STRING,
defaultValue: null, allowNull: true,
comment: "经营业户名称", defaultValue: null,
primaryKey: false, comment: "检测时间",
field: "name_of_business_owner", primaryKey: false,
autoIncrement: false field: "test_time",
}, autoIncrement: false
businessAddress: { },
type: DataTypes.STRING, nameOfBusinessOwner: {
allowNull: true, index: 11,
defaultValue: null, type: DataTypes.STRING,
comment: "经营业户地址", allowNull: true,
primaryKey: false, defaultValue: null,
field: "business_address", comment: "经营业户名称",
autoIncrement: false primaryKey: false,
}, field: "name_of_business_owner",
notifier: { autoIncrement: false
type: DataTypes.STRING, },
allowNull: true, businessAddress: {
defaultValue: null, index: 12,
comment: "通知人", type: DataTypes.STRING,
primaryKey: false, allowNull: true,
field: "notifier", defaultValue: null,
autoIncrement: false comment: "经营业户地址",
}, primaryKey: false,
notificationMethod: { field: "business_address",
type: DataTypes.STRING, autoIncrement: false
allowNull: true, },
defaultValue: null, notifier: {
comment: "通知方式", index: 13,
primaryKey: false, type: DataTypes.STRING,
field: "notification_method", allowNull: true,
autoIncrement: false defaultValue: null,
}, comment: "通知人",
notificationResults: { primaryKey: false,
type: DataTypes.STRING, field: "notifier",
allowNull: true, autoIncrement: false
defaultValue: null, },
comment: "通知结果", notificationMethod: {
primaryKey: false, index: 14,
field: "notification_results", type: DataTypes.STRING,
autoIncrement: false allowNull: true,
}, defaultValue: null,
processingTime: { comment: "通知方式",
type: DataTypes.STRING, primaryKey: false,
allowNull: true, field: "notification_method",
defaultValue: null, autoIncrement: false
comment: "处理时间", },
primaryKey: false, notificationResults: {
field: "processing_time", index: 15,
autoIncrement: false type: DataTypes.STRING,
}, allowNull: true,
deductPoints: { defaultValue: null,
type: DataTypes.STRING, comment: "通知结果",
allowNull: true, primaryKey: false,
defaultValue: null, field: "notification_results",
comment: "扣分", autoIncrement: false
primaryKey: false, },
field: "deduct_points", processingTime: {
autoIncrement: false index: 16,
}, type: DataTypes.STRING,
fine: { allowNull: true,
type: DataTypes.STRING, defaultValue: null,
allowNull: true, comment: "处理时间",
defaultValue: null, primaryKey: false,
comment: "罚款", field: "processing_time",
primaryKey: false, autoIncrement: false
field: "fine", },
autoIncrement: false deductPoints: {
}, index: 17,
remarks: { type: DataTypes.STRING,
type: DataTypes.STRING, allowNull: true,
allowNull: true, defaultValue: null,
defaultValue: null, comment: "扣分",
comment: "备注", primaryKey: false,
primaryKey: false, field: "deduct_points",
field: "remarks", autoIncrement: false
autoIncrement: false },
} fine: {
}, { index: 18,
tableName: "overspeed", type: DataTypes.STRING,
comment: "", allowNull: true,
indexes: [] defaultValue: null,
}); comment: "罚款",
dc.models.Overspeed = Overspeed; primaryKey: false,
return Overspeed; field: "fine",
autoIncrement: false
},
remarks: {
index: 19,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "备注",
primaryKey: false,
field: "remarks",
autoIncrement: false
}
}, {
tableName: "overspeed",
comment: "",
indexes: []
});
dc.models.Overspeed = Overspeed;
return Overspeed;
}; };

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);
// 运政 // 运政
//客运车 //客运车

1397
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"

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

34
web/client/assets/color.less

@ -174,7 +174,7 @@ button::-moz-focus-inner,
[type='submit']::-moz-focus-inner {border-style: none;} [type='submit']::-moz-focus-inner {border-style: none;}
fieldset {border: 0;} fieldset {border: 0;}
legend {color: inherit;} legend {color: inherit;}
mark {background-color: #feffe6;} mark {background-color: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);}
::selection {color: #fff;background: @primary-color;} ::selection {color: #fff;background: @primary-color;}
.anticon {color: inherit;} .anticon {color: inherit;}
.ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;} .ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;}
@ -1149,11 +1149,18 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte
.ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;}
.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
.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;}
.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("@{modal-header-border-color-split}", 1)`);} .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);}
=======
.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);}
.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: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);}
>>>>>>> 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;}
@ -1723,14 +1730,18 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;}
.ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;}
.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
.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
.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-pink {color: #c41d7f;background: #fff0f6;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;}
.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;} .ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;}
.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;}
<<<<<<< Updated upstream
.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;} .ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;}
.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;}
@ -1739,21 +1750,25 @@ 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;}
.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);border-color: #ffa39e;} .ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);border-color: #ffa39e;}
=======
.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);border-color: #ffa39e;}
>>>>>>> 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;}
.ant-tag-orange {color: #d46b08;background: #fff7e6;border-color: #ffd591;} .ant-tag-orange {color: #d46b08;background: color(~`colorPalette("@{alert-warning-border-color}", 1)`);border-color: #ffd591;}
.ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;} .ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;}
.ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;} .ant-tag-yellow {color: #d4b106;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #fffb8f;}
.ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;}
.ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} .ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;}
.ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;}
.ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;}
.ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;}
.ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;} .ant-tag-lime {color: #7cb305;background: color(~`colorPalette("@{text-color-secondary}", 1)`);border-color: #eaff8f;}
.ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;}
.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
.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;}
@ -1766,6 +1781,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: #f9f0ff;border-color: #d3adf7;} .ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;}
=======
.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("@{dropdown-menu-submenu-disabled-bg}", 3)`);border-color: #adc6ff;}
.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;}
>>>>>>> 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;}
@ -2003,11 +2025,15 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography
.ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;}
.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
.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
.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);}

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

@ -24,44 +24,52 @@ const Example = (props) => {
} }
useEffect(() => { // 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;
// }
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();
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 (
@ -72,20 +80,13 @@ const Example = (props) => {
document.body.clientHeight / 1080 document.body.clientHeight / 1080
)})`, */ )})`, */
}}> }}>
<div id={MAPID} style={{ position: 'absolute', width: "100%", height: "100%" }}></div> {/* <div id={MAPID} style={{ position: 'absolute', width: "100%", height: "100%" }}></div> */}
<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>
{/* <<<<<<< HEAD */}
<div style={{ width: "100%", height: "90%" }}> <div style={{ width: "100%", height: "90%" }}>
<Footer tabKey={tabKey} dispatch={dispatch} /> <Footer tabKey={tabKey} dispatch={dispatch} />
{/* =======
<div style={{ position: 'absolute', width: "100%", height: "90%" }}>
<Footer tabKey={tabKey} />
>>>>>>> 385f017aeac33adc39a31e75faf6254a1a881d16 */}
</div> </div>
{/* </div> */}
</div> </div>
</Spin> </Spin>

4
web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js

@ -96,7 +96,7 @@ class ReactCarousel extends Component {
} }
</ul> */} </ul> */}
<div className="control" style={{ width: "100%", height: "10%", backgroundColor: "red" }}> <div className="control" style={{ width: "100%", height: "10%" }}>
<span className="left" onClick={(e) => { this.previous(e) }}></span> <span className="left" onClick={(e) => { this.previous(e) }}></span>
<span className="right" onClick={(e) => { this.next(e) }}></span> <span className="right" onClick={(e) => { this.next(e) }}></span>
</div> </div>
@ -119,7 +119,7 @@ class ReactCarousel extends Component {
let { timer } = this.state; let { timer } = this.state;
timer = setInterval(() => { timer = setInterval(() => {
this.next(); this.next();
}, 2000); }, 300000);
this.setState({ this.setState({
timer timer
}) })

10
web/client/src/sections/quanju/containers/footer/leadership/right/left.less

@ -9,22 +9,22 @@ li{
font-family: PingFangSC-Regular, PingFang SC !important; font-family: PingFangSC-Regular, PingFang SC !important;
height: 25px !important; height: 25px !important;
// line-height: 25px !important; // line-height: 25px !important;
} }.ant-select-selection-item{
}
.ant-select-selection-item{
line-height: 25px !important; line-height: 25px !important;
} }
.anticon{ .anticon{
color: #fff !important; color: #fff !important;
} }
}
.contain { .contain {
position: relative; position: relative;
top: 5%; top: 5%;
left: 45%; left: 45%;
width: 100%; width: 100%;
height: 100%; height: 100%;
transition: all 2s; transition: all 30s;
transform: translateX(-50%); transform: translateX(-50%);
color: #fff; color: #fff;
overflow: hidden; overflow: hidden;

Loading…
Cancel
Save