Browse Source

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

release_0.0.4
LUCAS 2 years ago
parent
commit
f81f6c4487
  1. 89
      api/app/lib/controllers/data/index.js
  2. 6
      api/app/lib/controllers/data/vehicle.js
  3. 250
      api/app/lib/models/project.js
  4. 4
      api/app/lib/models/publicity.js
  5. 16
      api/app/lib/models/report.js
  6. 1485
      api/app/lib/models/road.js
  7. 98
      api/app/lib/models/statistic.js
  8. 9
      api/log/development.log
  9. 3
      api/sequelize-automate.config.js
  10. 8
      weapp/src/packages/changePassword/index.jsx
  11. 1
      weapp/src/packages/patrolView/index.jsx
  12. 33
      weapp/src/pages/home/index.jsx
  13. 10
      weapp/src/pages/home/index.scss
  14. 88
      weapp/src/static/img/home/video-bg.svg
  15. BIN
      weapp/src/static/img/tabbar/shouye-active.png
  16. BIN
      weapp/src/static/img/tabbar/shouye.png
  17. BIN
      weapp/src/static/img/tabbar/wode-active.png
  18. BIN
      weapp/src/static/img/tabbar/wode.png
  19. 25
      web/client/assets/color.less
  20. 4
      web/client/src/components/index.js
  21. 40
      web/client/src/components/simpleFileDownButton.js
  22. 171
      web/client/src/sections/fillion/actions/infor.js
  23. 121
      web/client/src/sections/fillion/components/bridgeTable.js
  24. 106
      web/client/src/sections/fillion/components/highways/highwaysdata.js
  25. 76
      web/client/src/sections/fillion/components/highwaysTable.js
  26. 260
      web/client/src/sections/fillion/components/infor/details.js
  27. 1347
      web/client/src/sections/fillion/components/operationalTable.js
  28. 4
      web/client/src/sections/fillion/components/project/project.js
  29. 1120
      web/client/src/sections/fillion/components/publicTable.js
  30. 190
      web/client/src/sections/fillion/components/transportationTable.js
  31. 4
      web/client/src/sections/fillion/nav-item.js
  32. 53
      web/client/src/sections/quanju/containers/example.js
  33. 189
      web/client/src/sections/quanju/containers/footer/gis/bounds.js
  34. 53
      web/client/src/sections/quanju/containers/footer/gis/gis.js
  35. 59
      web/client/src/sections/quanju/containers/footer/gis/mock_data.js
  36. 20
      web/client/src/sections/quanju/containers/footer/guanli/index.js
  37. 2
      web/client/src/sections/quanju/containers/footer/guanli/style.less
  38. 38
      web/client/src/utils/webapi.js
  39. 645
      web/log/development.txt
  40. 2
      web/package.json

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

@ -7,93 +7,78 @@ async function dataExport (ctx) {
try {
const models = ctx.fs.dc.models;
const { userId } = ctx.fs.api
const { ids } = ctx.query;
const { exp, ids, roadLevel, municipalType } = ctx.query;
const fileList = [
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['村'],
},
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['县'],
},
if (!exp) {
throw '参数错误';
}
const modalList = [
{
n: '道路',
tableName: 'road',
defaultKey: ['level'],
defaultValue: ['乡'],
k: 'road',
tableName: 'Road',
},
{
n: '桥梁',
tableName: 'bridge'
},
{
n: '运政车辆',
tableName: 'municipal_vehicle',
defaultKey: ['type'],
defaultValue: ['出租车'],
k: 'bridge',
tableName: 'Bridge'
},
{
n: '运政车辆',
tableName: 'municipal_vehicle',
defaultKey: ['type'],
defaultValue: ['危货'],
k: 'vehicle',
tableName: 'MunicipalVehicle',
},
{
n: '运政业户',
tableName: 'municipal_business',
defaultKey: ['type'],
defaultValue: ['出租车'],
},
{
n: '运政业户',
tableName: 'municipal_business',
defaultKey: ['type'],
defaultValue: ['危货'],
},
{
n: '工程一览',
tableName: 'project',
defaultKey: ['done', 'type'],
defaultValue: [false, 'road'],
k: 'business',
tableName: 'MunicipalBusiness',
},
{
n: '工程一览',
tableName: 'project',
defaultKey: ['done', 'type'],
defaultValue: [false, 'bridge'],
k: 'project',
tableName: 'Project',
},
{
n: '治超',
tableName: 'overspeed',
k: 'overspeed',
tableName: 'Overspeed',
},
{
n: '公交线路',
tableName: 'bus_line',
k: 'busLine',
tableName: 'BusLine',
},
{
n: '公交车辆',
tableName: 'bus_car',
k: 'busCar',
tableName: 'BusCar',
},
]
const modalOption = modalList.find(item => item.k == exp);
if (!modalOption) {
throw '参数错误';
}
let findOption = {
where: {}
}
if (ids) {
findOption.where.id = { $in: ids.split(',') }
}
if (roadLevel) {
findOption.where.level = roadLevel
}
if (municipalType) {
findOption.where.type = municipalType
}
const exportData = await models.BusCar.findAll(findOption)
const tableAttributes = models.BusCar.tableAttributes
const exportData = await models[modalOption.tableName].findAll(findOption)
const tableAttributes = models[modalOption.tableName].tableAttributes
let header = []
for (let k in tableAttributes) {
if (k != 'id') {
if (k != 'id' && tableAttributes[k].comment) {
header.push({
title: tableAttributes[k].comment || '-',
key: k,
@ -103,7 +88,7 @@ async function dataExport (ctx) {
}
header.sort((a, b) => { return a.index - b.index })
const fileName = `摄像头信息列表_${moment().format('YYYYMMDDHHmmss')}` + '.csv'
const fileName = `${modalOption.n}_${moment().format('YYYYMMDDHHmmss')}` + '.csv'
const filePath = await xlsxDownload.simpleExcelDown({ data: exportData, header, fileName: fileName })
const fileData = fs.readFileSync(filePath);

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

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

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

@ -2,123 +2,135 @@
'use strict';
module.exports = dc => {
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const Project = sequelize.define("project", {
id: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "project_id_uindex"
},
entryName: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "项目名称",
primaryKey: false,
field: "entry_name",
autoIncrement: false
},
projectMileage: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "工程里程",
primaryKey: false,
field: "project_mileage",
autoIncrement: false
},
investment: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "投资",
primaryKey: false,
field: "investment",
autoIncrement: false
},
buildUnit: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "建设单位",
primaryKey: false,
field: "build_unit",
autoIncrement: false
},
constructionControlUnit: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "监理单位",
primaryKey: false,
field: "construction_control_unit",
autoIncrement: false
},
designUnit: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "设计单位",
primaryKey: false,
field: "design_unit",
autoIncrement: false
},
constructionUnit: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "施工单位",
primaryKey: false,
field: "construction_unit",
autoIncrement: false
},
supervisorAndSupervisor: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "监督负责人及监督人员",
primaryKey: false,
field: "supervisor_and_supervisor",
autoIncrement: false
},
projectProgress: {
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "项目进展情况",
primaryKey: false,
field: "project_progress",
autoIncrement: false
},
done: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "done",
autoIncrement: false
},
type: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: "类型 道路:road / 桥梁:bridge",
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "project",
comment: "",
indexes: []
});
dc.models.Project = Project;
return Project;
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const Project = sequelize.define("project", {
id: {
index: 1,
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "project_id_uindex"
},
entryName: {
index: 2,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "项目名称",
primaryKey: false,
field: "entry_name",
autoIncrement: false
},
projectMileage: {
index: 3,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "工程里程",
primaryKey: false,
field: "project_mileage",
autoIncrement: false
},
investment: {
index: 4,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "投资",
primaryKey: false,
field: "investment",
autoIncrement: false
},
buildUnit: {
index: 5,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "建设单位",
primaryKey: false,
field: "build_unit",
autoIncrement: false
},
constructionControlUnit: {
index: 6,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "监理单位",
primaryKey: false,
field: "construction_control_unit",
autoIncrement: false
},
designUnit: {
index: 7,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "设计单位",
primaryKey: false,
field: "design_unit",
autoIncrement: false
},
constructionUnit: {
index: 8,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "施工单位",
primaryKey: false,
field: "construction_unit",
autoIncrement: false
},
supervisorAndSupervisor: {
index: 9,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "监督负责人及监督人员",
primaryKey: false,
field: "supervisor_and_supervisor",
autoIncrement: false
},
projectProgress: {
index: 10,
type: DataTypes.STRING,
allowNull: true,
defaultValue: null,
comment: "项目进展情况",
primaryKey: false,
field: "project_progress",
autoIncrement: false
},
done: {
index: 11,
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "done",
autoIncrement: false
},
type: {
index: 12,
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: "类型 道路:road / 桥梁:bridge",
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "project",
comment: "",
indexes: []
});
dc.models.Project = Project;
return Project;
};

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

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

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

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

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

File diff suppressed because it is too large

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

@ -2,51 +2,55 @@
'use strict';
module.exports = dc => {
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const Statistic = sequelize.define("statistic", {
id: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "vehicle_id_uindex"
},
name: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "name",
autoIncrement: false
},
count: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: "0",
comment: null,
primaryKey: false,
field: "count",
autoIncrement: false
},
type: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "statistic",
comment: "",
indexes: []
});
dc.models.Statistic = Statistic;
return Statistic;
const DataTypes = dc.ORM;
const sequelize = dc.orm;
const Statistic = sequelize.define("statistic", {
id: {
index: 1,
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: true,
field: "id",
autoIncrement: true,
unique: "vehicle_id_uindex"
},
name: {
index: 2,
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "name",
autoIncrement: false
},
count: {
index: 3,
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: "0",
comment: null,
primaryKey: false,
field: "count",
autoIncrement: false
},
type: {
index: 4,
type: DataTypes.STRING,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "type",
autoIncrement: false
}
}, {
tableName: "statistic",
comment: "",
indexes: []
});
dc.models.Statistic = Statistic;
return Statistic;
};

9
api/log/development.log

@ -9999,3 +9999,12 @@
2022-07-27 14:42:45.566 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-27 14:42:45.566 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-27 14:42:48.376 - error: path: /data/export, error: ReferenceError: fs is not defined
2022-07-27 15:29:53.136 - debug: [FS-LOGGER] Init.
2022-07-27 15:29:53.285 - info: [FS-ATTACHMENT] Inject attachment mw into router.
2022-07-27 15:29:53.285 - info: [FS-AUTH] Inject auth and api mv into router.
2022-07-27 15:47:39.653 - error: path: /vehicle/1/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:47:55.412 - error: path: /vehicle/1/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:48:01.737 - error: path: /vehicle/4/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:49:28.071 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:50:36.847 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined
2022-07-27 15:51:05.608 - error: path: /vehicle/3/specific, error: TypeError: Cannot read property 'destroy' of undefined

3
api/sequelize-automate.config.js

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

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

@ -14,10 +14,10 @@ function Index() {
function confirm() {
if (!password) {
Taro.showToast({ title: '请输入密码' })
Taro.showToast({ title: '请输入密码', icon: 'none' })
return
} else if (password !== password2) {
Taro.showToast({ title: '两次输入的密码不一致' })
Taro.showToast({ title: '两次输入的密码不一致', icon: 'none' })
return
} else {
Taro.showModal({
@ -50,11 +50,11 @@ function Index() {
</View>
<View className='pswd'>
<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 className='pswd'>
<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>
<AtButton className='btn' type='primary' onClick={confirm}>确认</AtButton>
</View>

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

@ -79,7 +79,6 @@ function Index() {
//
useReachBottom(() => {
console.log('onReachBottom')
setPage(page + 1)
setNum(Math.random())
})

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 { View } from '@tarojs/components';
import { useIndustry } from '@/actions/business';
@ -6,8 +6,26 @@ import './index.scss';
const Index = () => {
const userInfo = Taro.getStorageSync('userInfo') || {};
const token = Taro.getStorageSync('token') || null;
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() {
Taro.navigateTo({
url: '/packages/patrol/index?type=edit'
@ -19,14 +37,25 @@ const Index = () => {
})
}
function toVideo() {
}
return (
<View className='page'>
<View className='fill'>
<View className='card fill'>
<View className='title'> </View>
<View className='btn' onClick={isSuperAdmin ? toPatrolView : toPatrol}>
{isSuperAdmin ? '查看' : '填报'}
</View>
</View>
{
isSuperAdmin &&
<View className='card video'>
<View className='title'> </View>
<View className='btn' onClick={toVideo}>查看</View>
</View>
}
</View>
);
}

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

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

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

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

After

Width:  |  Height:  |  Size: 9.4 KiB

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 497 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

After

Width:  |  Height:  |  Size: 429 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 632 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 605 B

25
web/client/assets/color.less

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

File diff suppressed because it is too large

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

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

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

File diff suppressed because it is too large

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

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

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

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

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

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

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

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

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

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

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

File diff suppressed because one or more lines are too long

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

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

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

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

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

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

645
web/log/development.txt

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

2
web/package.json

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

Loading…
Cancel
Save