diff --git a/Highways4Good b/Highways4Good deleted file mode 160000 index cbdfefa3..00000000 --- a/Highways4Good +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cbdfefa311b3a886f44cbc68f55bb6741655312b diff --git a/api/app/lib/controllers/data/bus.js b/api/app/lib/controllers/data/bus.js new file mode 100644 index 00000000..fac8b0e1 --- /dev/null +++ b/api/app/lib/controllers/data/bus.js @@ -0,0 +1,155 @@ +'use strict'; + +async function lineGet (ctx) { + try { + const models = ctx.fs.dc.models; + const { fleet } = ctx.query; + const findOption = { + order: [['id', 'DESC']], + where: { + + }, + } + if (fleet) { + findOption.where.fleet = { $like: `%${fleet}%` } + } + + const roadRes = await models.BusLine.findAll(findOption) + + ctx.status = 200; + ctx.body = roadRes + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +async function lineEdit (ctx) { + try { + const models = ctx.fs.dc.models; + const data = ctx.request.body; + + if (!data.lineId) { + await models.BusLine.create(data) + } else { + await models.BusLine.update( + data, { + where: { + id: data.lineId + } + }) + } + + ctx.status = 204 + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +async function lineDel (ctx) { + try { + const models = ctx.fs.dc.models; + const { lineId } = ctx.params; + + await models.BusLine.destroy({ + where: { + id: lineId + } + }) + + ctx.status = 204 + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + + +async function carGet (ctx) { + try { + const models = ctx.fs.dc.models; + const { fleet } = ctx.query; + const findOption = { + order: [['id', 'DESC']], + where: { + + }, + } + if (fleet) { + findOption.where.fleet = { $like: `%${fleet}%` } + } + + const roadRes = await models.BusCar.findAll(findOption) + + ctx.status = 200; + ctx.body = roadRes + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +async function carEdit (ctx) { + try { + const models = ctx.fs.dc.models; + const data = ctx.request.body; + + if (!data.carId) { + await models.BusCar.create(data) + } else { + await models.BusCar.update( + data, { + where: { + id: data.carId + } + }) + } + + ctx.status = 204 + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +async function carDel (ctx) { + try { + const models = ctx.fs.dc.models; + const { carId } = ctx.params; + + await models.BusCar.destroy({ + where: { + id: carId + } + }) + + ctx.status = 204 + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +module.exports = { + lineGet, lineEdit, lineDel, + carGet, carEdit, carDel, +}; \ No newline at end of file diff --git a/api/app/lib/controllers/data/vehicle.js b/api/app/lib/controllers/data/vehicle.js index 1c8453cf..c8d76eca 100644 --- a/api/app/lib/controllers/data/vehicle.js +++ b/api/app/lib/controllers/data/vehicle.js @@ -3,8 +3,13 @@ async function get (ctx) { try { const models = ctx.fs.dc.models; + const { type } = ctx.request.body; - const vehicleRes = await models.Vehicle.findAll() + const vehicleRes = await models.Statistic.findAll({ + where: { + type + } + }) ctx.status = 200; ctx.body = vehicleRes @@ -20,18 +25,18 @@ async function get (ctx) { async function edit (ctx) { try { const models = ctx.fs.dc.models; - const { vehicleId, name, count } = ctx.request.body; + const { id, name, count, type } = ctx.request.body; - if (!vehicleId) { - const vehicleRes = await models.Vehicle.create({ - name, count + if (!id) { + await models.Statistic.create({ + name, count, type: type }) } else { - const vehicleRes = await models.Vehicle.update({ - name, count + await models.Statistic.update({ + name, count, type: type }, { where: { - id: vehicleId + id: id } }) } @@ -49,11 +54,11 @@ async function edit (ctx) { async function del (ctx) { try { const models = ctx.fs.dc.models; - const { vehicleId } = ctx.params; + const { id } = ctx.params; - const vehicleRes = await models.Vehicle.destroy({ + await models.Statistic.destroy({ where: { - id: vehicleId + id: id } }) diff --git a/api/app/lib/controllers/organization/department.js b/api/app/lib/controllers/organization/department.js index a1824f5f..640a80b7 100644 --- a/api/app/lib/controllers/organization/department.js +++ b/api/app/lib/controllers/organization/department.js @@ -121,6 +121,18 @@ async function delDep (ctx) { getDep(d.dataValues) } + const undeleteUserCount = await models.User.count({ + where: { + departmentId: { + $in: depIds + }, + delete: false + } + }) + if (undeleteUserCount) { + throw '该部门下有用户,不能删除' + } + await models.Department.update({ delete: true, }, { @@ -144,7 +156,9 @@ async function delDep (ctx) { await transaction.rollback(); ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); ctx.status = 400; - ctx.body = {} + ctx.body = { + message: typeof error == 'string' ? error : undefined + } } } diff --git a/api/app/lib/controllers/overview/building.js b/api/app/lib/controllers/overview/building.js new file mode 100644 index 00000000..68611d5e --- /dev/null +++ b/api/app/lib/controllers/overview/building.js @@ -0,0 +1,153 @@ +'use strict'; + +const areaCode = { + "360121100000": "莲塘镇", + "360121101000": "向塘镇", + "360121102000": "三江镇", + "360121103000": "塘南镇", + "360121104000": "幽兰镇", + "360121105000": "蒋巷镇", + "360121106000": "武阳镇", + "360121107000": "冈上镇", + "360121108000": "广福镇", + "360121191000": "昌东镇", + "360121192000": "麻丘镇", + "360121200000": "泾口乡", + "360121201000": "南新乡", + "360121202000": "塔城乡", + "360121203000": "黄马乡", + "360121204000": "富山乡", + "360121205000": "东新乡", + "360121206000": "八一乡", + "360121403000": "小蓝经济开发区", + "360121471000": "银三角管理委员会", + "360121501000": "五星垦殖场", + "360121572000": "良种繁殖场", +} + +async function roadState (ctx) { + try { + const models = ctx.fs.dc.models; + const { userId } = ctx.fs.api; + + const roadRes = await models.Road.findAll({}) + const projectRoadRes = await models.Project.findAll({ + type: 'road', + }) + + const roadState = { + // 在建数量 + buildingRoad: 0, + // 已建数量 + buildedRoad: 0, + // 乡镇统计 + townRoad: { + + }, + // 类型统计 + roadType: { + '县': 0, + '乡': 0, + '村': 0, + }, + // 在建项目统计 + townProject: { + + }, + // 等级统计 + roadLevel: { + + }, + // 养护周期 + curingPeriod: { + frequent: 0, + season: 0, + }, + // 绿化里程 + greenMileage: { + '县': { + canBeGreen: 0, + isGreen: 0, + }, + '乡': { + canBeGreen: 0, + isGreen: 0, + }, + '村': { + canBeGreen: 0, + isGreen: 0, + }, + } + } + + let roadCode = new Set() + + for (let r of roadRes) { + roadCode.add(r.routeCode) + let townName = areaCode[r.townshipCode] || '其他' + if (roadState.townRoad[townName]) { + roadState.townRoad[townName].roadCode.add(r.routeCode) + roadState.townRoad[townName].mileage += Number(r.chainageMileage) || 0 + } else { + roadState.townRoad[townName] = { + roadCode: new Set([r.routeCode]), + mileage: Number(r.chainageMileage) || 0, + } + } + + roadState.roadType[r.level] = (roadState.roadType[r.level] || 0) + (Number(r.chainageMileage) || 0) + + if (roadState.roadLevel[r.technicalLevel]) { + roadState.roadLevel[r.technicalLevel] += 1 + } else { + roadState.roadLevel[r.technicalLevel] = 1 + } + + if (r.curingTime) { + if (r.curingTime.indexOf('经常') > -1) { + roadState.curingPeriod.frequent += 1 + } else if (r.curingTime.indexOf('季节') > -1) { + roadState.curingPeriod.season += 1 + } + } + + roadState.greenMileage[r.level].canBeGreen += (Number(r.greeningMileage) || 0) + roadState.greenMileage[r.level].isGreen += (Number(r.greeningMileaged) || 0) + } + for (let p of projectRoadRes) { + if (p.type == 'road') { + if (p.done) { + roadState.buildedRoad += 1 + } else { + roadState.buildingRoad += 1 + } + } + + let townName = p.buildUnit.replace('人民政府', '').replace('南昌县', '').replace('管委会', '') + if (roadState.townProject[townName]) { + roadState.townProject[townName] += 1 + } else { + roadState.townProject[townName] = 1 + } + } + + roadState.buildedRoad += roadCode.size + for (let t of Object.keys(roadState.townRoad)) { + roadState.townRoad[t].roadCount = roadState.townRoad[t].roadCode.size + delete roadState.townRoad[t].roadCode + } + + ctx.status = 200 + ctx.body = roadState + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +module.exports = { + roadState, +}; \ No newline at end of file diff --git a/api/app/lib/controllers/overview/index.js b/api/app/lib/controllers/overview/index.js new file mode 100644 index 00000000..eb109abb --- /dev/null +++ b/api/app/lib/controllers/overview/index.js @@ -0,0 +1,2 @@ +'use strict'; + diff --git a/api/app/lib/controllers/overview/management.js b/api/app/lib/controllers/overview/management.js new file mode 100644 index 00000000..b3f9819d --- /dev/null +++ b/api/app/lib/controllers/overview/management.js @@ -0,0 +1,68 @@ +'use strict'; + +async function overSpeedList (ctx) { + try { + const models = ctx.fs.dc.models; + const { userId } = ctx.fs.api; + + const overSpeedRes = await models.Overspeed.findAll({ + attributes: ['id', 'licensePlate', 'overrunRate', 'deductPoints', 'fine', 'processingTime'], + order: [['testTime', 'DESC']], + }) + + ctx.status = 200 + ctx.body = { + processed: overSpeedRes.filter(s => s.processingTime).length, + overSpeedList: overSpeedRes, + } + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +async function overSpeedProcessed (ctx) { + try { + const models = ctx.fs.dc.models; + const { userId } = ctx.fs.api; + + const overSpeedCountRes = await models.Overspeed.count({ + attributes: ['nameOfInspectionPoint'], + group: ['nameOfInspectionPoint'], + }) + const overSpeedCountProcessedRes = await models.Overspeed.count({ + attributes: ['nameOfInspectionPoint'], + where: { processingTime: { $ne: null } }, + group: ['nameOfInspectionPoint'], + }) + + let data = [] + for (let c of overSpeedCountRes) { + const corProcessed = overSpeedCountProcessedRes.find(d => d.nameOfInspectionPoint == c.nameOfInspectionPoint) + if (corProcessed) { + data.push({ + name: c.nameOfInspectionPoint, + processed: corProcessed.count, + total: c.count, + }) + } + } + + ctx.status = 200 + ctx.body = data + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +module.exports = { + overSpeedList, + overSpeedProcessed +}; \ No newline at end of file diff --git a/api/app/lib/controllers/overview/operation.js b/api/app/lib/controllers/overview/operation.js new file mode 100644 index 00000000..7744768f --- /dev/null +++ b/api/app/lib/controllers/overview/operation.js @@ -0,0 +1,49 @@ +'use strict'; + +async function busCarLevelList (ctx) { + try { + const models = ctx.fs.dc.models; + const { userId } = ctx.fs.api; + + let data = [] + const busCarRes = await models.BusCar.findAll({ + attributes: ['id', 'company', 'fleet', 'vehicleLicensePlateNumber'], + }) + for (let c of busCarRes) { + const { company, fleet } = c + const corCompany = data.find(d => d.name === company) + if (!corCompany) { + data.push({ + name: company, + child: [{ + name: fleet, + child: [{ ...c.dataValues }] + }] + }) + } else { + const corFleet = corCompany.child.find(d => d.name === fleet) + if (!corFleet) { + corCompany.child.push({ + name: fleet, + child: [{ ...c.dataValues }] + }) + } else { + corFleet.child.push({ ...c.dataValues }) + } + } + } + + ctx.status = 200 + ctx.body = data + } catch (error) { + ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); + ctx.status = 400; + ctx.body = { + message: typeof error == 'string' ? error : undefined + } + } +} + +module.exports = { + busCarLevelList +}; \ No newline at end of file diff --git a/api/app/lib/models/bus_car.js b/api/app/lib/models/bus_car.js new file mode 100644 index 00000000..b338764c --- /dev/null +++ b/api/app/lib/models/bus_car.js @@ -0,0 +1,493 @@ +/* eslint-disable*/ +'use strict'; + +module.exports = dc => { + const DataTypes = dc.ORM; + const sequelize = dc.orm; + const BusCar = sequelize.define("busCar", { + id: { + type: DataTypes.INTEGER, + allowNull: false, + defaultValue: null, + comment: null, + primaryKey: true, + field: "id", + autoIncrement: true, + unique: "bus_car_id_uindex" + }, + company: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "所属公司", + primaryKey: false, + field: "company", + autoIncrement: false + }, + fleet: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "所属车队", + primaryKey: false, + field: "fleet", + autoIncrement: false + }, + line: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "所属线路", + primaryKey: false, + field: "line", + autoIncrement: false + }, + vehicleNumber: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆编号", + primaryKey: false, + field: "vehicle_number", + autoIncrement: false + }, + vehicleLicensePlateNumber: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆牌照号", + primaryKey: false, + field: "vehicle_license_plate_number", + autoIncrement: false + }, + operationCategory: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "运营类别", + primaryKey: false, + field: "operation_category", + autoIncrement: false + }, + serviceLife: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "已使用年限", + primaryKey: false, + field: "service_life", + autoIncrement: false + }, + engineModel: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "发动机型号", + primaryKey: false, + field: "engine_model", + autoIncrement: false + }, + vehicleModel: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆型号", + primaryKey: false, + field: "vehicle_model", + autoIncrement: false + }, + vehicleCategory: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆类别", + primaryKey: false, + field: "vehicle_category", + autoIncrement: false + }, + vehicleStatus: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆状态", + primaryKey: false, + field: "vehicle_status", + autoIncrement: false + }, + dateOfEntry: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "入户日期", + primaryKey: false, + field: "date_of_entry", + autoIncrement: false + }, + purchaseDate: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "购进日期", + primaryKey: false, + field: "purchase_date", + autoIncrement: false + }, + energyConsumptionType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "能耗类型", + primaryKey: false, + field: "energy_consumption_type", + autoIncrement: false + }, + numberOfStandardUnits: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "标台数", + primaryKey: false, + field: "number_of_standard_units", + autoIncrement: false + }, + maintenanceUnit: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "维保单位", + primaryKey: false, + field: "maintenance_unit", + autoIncrement: false + }, + vehicleType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆类型", + primaryKey: false, + field: "vehicle_type", + autoIncrement: false + }, + brandAndModel: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "厂牌型号", + primaryKey: false, + field: "brand_and_model", + autoIncrement: false + }, + manufacturer: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "生产厂家", + primaryKey: false, + field: "manufacturer", + autoIncrement: false + }, + drivingLicenseNo: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "行驶证编号", + primaryKey: false, + field: "driving_license_no", + autoIncrement: false + }, + engineNumber: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "发动机编号", + primaryKey: false, + field: "engine_number", + autoIncrement: false + }, + mainEnergyConsumption: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "主能耗", + primaryKey: false, + field: "main_energy_consumption", + autoIncrement: false + }, + secondaryEnergyConsumption: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "副能耗", + primaryKey: false, + field: "secondary_energy_consumption", + autoIncrement: false + }, + emissionStandard: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "排放标准", + primaryKey: false, + field: "emission_standard", + autoIncrement: false + }, + startDate: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "启用日期", + primaryKey: false, + field: "start_date", + autoIncrement: false + }, + lastTransferDate: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "最近一次调动日期", + primaryKey: false, + field: "last_transfer_date", + autoIncrement: false + }, + conductor: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车长", + primaryKey: false, + field: "conductor", + autoIncrement: false + }, + vehicleWidth: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车宽", + primaryKey: false, + field: "vehicle_width", + autoIncrement: false + }, + carHeight: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车高", + primaryKey: false, + field: "car_height", + autoIncrement: false + }, + approvedPassengerCapacity: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "核定载客数", + primaryKey: false, + field: "approved_passenger_capacity", + autoIncrement: false + }, + vehicleIdentificationNumber: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆识别号", + primaryKey: false, + field: "vehicle_identification_number", + autoIncrement: false + }, + gearboxBrand: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "变速箱品牌", + primaryKey: false, + field: "gearbox_brand", + autoIncrement: false + }, + manualCarWashingFee: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "人工洗车费", + primaryKey: false, + field: "manual_car_washing_fee", + autoIncrement: false + }, + laborCost: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "劳务费", + primaryKey: false, + field: "labor_cost", + autoIncrement: false + }, + curbWeight: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "整备质量", + primaryKey: false, + field: "curb_weight", + autoIncrement: false + }, + totalMass: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "总质量", + primaryKey: false, + field: "total_mass", + autoIncrement: false + }, + airConditioningTemperature: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "空调温度", + primaryKey: false, + field: "air_conditioning_temperature", + autoIncrement: false + }, + airConditionedCarOrNot: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "是否空调车", + primaryKey: false, + field: "air_conditioned_car_or_not", + autoIncrement: false + }, + turnOnTheAirConditioningTemperature: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "开空调温度", + primaryKey: false, + field: "turn_on_the_air_conditioning_temperature", + autoIncrement: false + }, + power: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "功率", + primaryKey: false, + field: "power", + autoIncrement: false + }, + transmission: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "变速器", + primaryKey: false, + field: "transmission", + autoIncrement: false + }, + seatingCapacity: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "座位数", + primaryKey: false, + field: "seating_capacity", + autoIncrement: false + }, + airConditioningBrand: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "空调品牌", + primaryKey: false, + field: "air_conditioning_brand", + autoIncrement: false + }, + seatType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "座椅类型", + primaryKey: false, + field: "seat_type", + autoIncrement: false + }, + tireSpecifications: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "轮胎规格", + primaryKey: false, + field: "tire_specifications", + autoIncrement: false + }, + roadTransportCertificateNo: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "道路运输证号", + primaryKey: false, + field: "road_transport_certificate_no", + autoIncrement: false + }, + parkingPoint: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "停放点", + primaryKey: false, + field: "parking_point", + autoIncrement: false + }, + carWashingType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "洗车类型", + primaryKey: false, + field: "car_washing_type", + autoIncrement: false + }, + maintenanceFreeWheelEnd: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "免维护轮端", + primaryKey: false, + field: "maintenance_free_wheel_end", + autoIncrement: false + }, + firstGuaranteeDate: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "首保日期", + primaryKey: false, + field: "first_guarantee_date", + autoIncrement: false + }, + dateOfRenovation: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "整修日期", + primaryKey: false, + field: "date_of_renovation", + autoIncrement: false + }, + motorVehicleOwner: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "机动车所有人", + primaryKey: false, + field: "motor_vehicle_owner", + autoIncrement: false + } + }, { + tableName: "bus_car", + comment: "", + indexes: [] + }); + dc.models.BusCar = BusCar; + return BusCar; +}; \ No newline at end of file diff --git a/api/app/lib/models/bus_line.js b/api/app/lib/models/bus_line.js new file mode 100644 index 00000000..32aa8c9d --- /dev/null +++ b/api/app/lib/models/bus_line.js @@ -0,0 +1,232 @@ +/* eslint-disable*/ +'use strict'; + +module.exports = dc => { + const DataTypes = dc.ORM; + const sequelize = dc.orm; + const BusLine = sequelize.define("busLine", { + id: { + type: DataTypes.INTEGER, + allowNull: false, + defaultValue: null, + comment: null, + primaryKey: true, + field: "id", + autoIncrement: true, + unique: "bus_line_id_uindex" + }, + company: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "公司", + primaryKey: false, + field: "company", + autoIncrement: false + }, + fleet: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车队", + primaryKey: false, + field: "fleet", + autoIncrement: false + }, + carCaptain: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车队长", + primaryKey: false, + field: "car_captain", + autoIncrement: false + }, + assistantCarCaptain: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "副车队长", + primaryKey: false, + field: "assistant_car_captain", + autoIncrement: false + }, + officeLocation: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "办公地点", + primaryKey: false, + field: "office_location", + autoIncrement: false + }, + lineName: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "线路名称", + primaryKey: false, + field: "line_name", + autoIncrement: false + }, + lineType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "线路类型", + primaryKey: false, + field: "line_type", + autoIncrement: false + }, + lineDivision: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "线路划分", + primaryKey: false, + field: "line_division", + autoIncrement: false + }, + gpsNumber: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "GPS编号", + primaryKey: false, + field: "gps_number", + autoIncrement: false + }, + startingPointEndPoint: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "起点终点", + primaryKey: false, + field: "starting_point_end_point", + autoIncrement: false + }, + numberOfVehicles: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "车辆数", + primaryKey: false, + field: "number_of_vehicles", + autoIncrement: false + }, + totalKilometers: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "全程公里数", + primaryKey: false, + field: "total_kilometers", + autoIncrement: false + }, + ticketPrice: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "票价", + primaryKey: false, + field: "ticket_price", + autoIncrement: false + }, + openingTime: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "开通时间", + primaryKey: false, + field: "opening_time", + autoIncrement: false + }, + runningTime: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "运行时间", + primaryKey: false, + field: "running_time", + autoIncrement: false + }, + openingTimeSummer: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "开班时间夏令", + primaryKey: false, + field: "opening_time_summer", + autoIncrement: false + }, + shiftClosingTimeSummer: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "收班时间夏令", + primaryKey: false, + field: "shift_closing_time_summer", + autoIncrement: false + }, + openingTimeWinter: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "开班时间冬令", + primaryKey: false, + field: "opening_time_winter", + autoIncrement: false + }, + shiftClosingTimeWinter: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "收班时间冬令", + primaryKey: false, + field: "shift_closing_time_winter", + autoIncrement: false + }, + uplinkOfStationsAlongTheWay: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "沿途站点上行", + primaryKey: false, + field: "uplink_of_stations_along_the_way", + autoIncrement: false + }, + downlinkOfStationsAlongTheWay: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "沿途站点下行", + primaryKey: false, + field: "downlink_of_stations_along_the_way", + autoIncrement: false + }, + area: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "所属区域", + primaryKey: false, + field: "area", + autoIncrement: false + }, + remarks: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "备注", + primaryKey: false, + field: "remarks", + autoIncrement: false + } + }, { + tableName: "bus_line", + comment: "", + indexes: [] + }); + dc.models.BusLine = BusLine; + return BusLine; +}; \ No newline at end of file diff --git a/api/app/lib/models/road.js b/api/app/lib/models/road.js index e97addfb..d4dad07e 100644 --- a/api/app/lib/models/road.js +++ b/api/app/lib/models/road.js @@ -114,6 +114,51 @@ module.exports = dc => { field: "section_type", autoIncrement: false }, + routeCodeBeforeRoadNetworkAdjustment: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "路网调整前路线编码", + primaryKey: false, + field: "route_code_before_road_network_adjustment", + autoIncrement: false + }, + serialNumberOfOriginalSection: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "原路段序号", + primaryKey: false, + field: "serial_number_of_original_section", + autoIncrement: false + }, + startingStakeNumberOfTheOriginalRoadSection: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "原路段起点桩号", + primaryKey: false, + field: "starting_stake_number_of_the_original_road_section", + autoIncrement: false + }, + endingPointStakeNoOfTheOriginalRoadSection: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "原路段止点桩号", + primaryKey: false, + field: "ending_point_stake_no_of_the_original_road_section", + autoIncrement: false + }, + routeLevel: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "路线等级", + primaryKey: false, + field: "route_level", + autoIncrement: false + }, natureOfRoadSection: { type: DataTypes.STRING, allowNull: true, @@ -132,6 +177,24 @@ module.exports = dc => { field: "completion_time", autoIncrement: false }, + reconstructionTime: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "改建时间", + primaryKey: false, + field: "reconstruction_time", + autoIncrement: false + }, + natureOfConstruction: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "建设性质", + primaryKey: false, + field: "nature_of_construction", + autoIncrement: false + }, gbmAndCivilizedModelRoad: { type: DataTypes.STRING, allowNull: true, @@ -159,6 +222,15 @@ module.exports = dc => { field: "nature_of_charges", autoIncrement: false }, + tollStation: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "所属收费站", + primaryKey: false, + field: "toll_station", + autoIncrement: false + }, numberOfCulverts: { type: DataTypes.STRING, allowNull: true, @@ -330,6 +402,159 @@ module.exports = dc => { field: "repeated_section_route_code", autoIncrement: false }, + plannedFundCategory: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划资金类别", + primaryKey: false, + field: "planned_fund_category", + autoIncrement: false + }, + plannedYear: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划年度", + primaryKey: false, + field: "planned_year", + autoIncrement: false + }, + planDocumentNo: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划文号", + primaryKey: false, + field: "plan_document_no", + autoIncrement: false + }, + planItemUniqueCode: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目唯一编码", + primaryKey: false, + field: "plan_item_unique_code", + autoIncrement: false + }, + plannedProjectRouteCode: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目路线编码", + primaryKey: false, + field: "planned_project_route_code", + autoIncrement: false + }, + planProjectName: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目名称", + primaryKey: false, + field: "plan_project_name", + autoIncrement: false + }, + plannedProjectType: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目类型", + primaryKey: false, + field: "planned_project_type", + autoIncrement: false + }, + completionStatus: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "完工情况", + primaryKey: false, + field: "completion_status", + autoIncrement: false + }, + yearOfCompletion: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "完工年度", + primaryKey: false, + field: "year_of_completion", + autoIncrement: false + }, + plannedFundCategoryOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划资金类别_1", + primaryKey: false, + field: "planned_fund_category__one", + autoIncrement: false + }, + plannedYearOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划年度_1", + primaryKey: false, + field: "planned_year__one", + autoIncrement: false + }, + planDocumentNoOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划文号_1", + primaryKey: false, + field: "plan_document_no__one", + autoIncrement: false + }, + planItemUniqueCodeOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目唯一编码_1", + primaryKey: false, + field: "plan_item_unique_code__one", + autoIncrement: false + }, + planProjectNameOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "计划项目名称_1", + primaryKey: false, + field: "plan_project_name__one", + autoIncrement: false + }, + completionStatusOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "完工情况_1", + primaryKey: false, + field: "completion_status__one", + autoIncrement: false + }, + yearOfCompletionOne: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "完工年度_1", + primaryKey: false, + field: "year_of_completion__one", + autoIncrement: false + }, + stationRange: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "桩号范围", + primaryKey: false, + field: "station_range", + autoIncrement: false + }, reportingUnit: { type: DataTypes.STRING, allowNull: true, @@ -357,6 +582,15 @@ module.exports = dc => { field: "change_time", autoIncrement: false }, + lastRepairAndMaintenanceYear: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "最近一次修复养护年度", + primaryKey: false, + field: "last_repair_and_maintenance_year", + autoIncrement: false + }, whetherMaintenanceManagedHighway: { type: DataTypes.STRING, allowNull: true, @@ -451,10 +685,19 @@ module.exports = dc => { type: DataTypes.STRING, allowNull: true, defaultValue: null, - comment: "县 / 乡 / 村", + comment: null, primaryKey: false, field: "level", autoIncrement: false + }, + surfaceThickness: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: null, + comment: "面层厚度", + primaryKey: false, + field: "surface_thickness", + autoIncrement: false } }, { tableName: "road", diff --git a/api/app/lib/models/vehicle.js b/api/app/lib/models/statistic.js similarity index 70% rename from api/app/lib/models/vehicle.js rename to api/app/lib/models/statistic.js index 7777ba5a..b7e0b248 100644 --- a/api/app/lib/models/vehicle.js +++ b/api/app/lib/models/statistic.js @@ -4,7 +4,7 @@ module.exports = dc => { const DataTypes = dc.ORM; const sequelize = dc.orm; - const Vehicle = sequelize.define("vehicle", { + const Statistic = sequelize.define("statistic", { id: { type: DataTypes.INTEGER, allowNull: false, @@ -32,12 +32,21 @@ module.exports = dc => { primaryKey: false, field: "count", autoIncrement: false + }, + type: { + type: DataTypes.STRING, + allowNull: false, + defaultValue: null, + comment: null, + primaryKey: false, + field: "type", + autoIncrement: false } }, { - tableName: "vehicle", + tableName: "statistic", comment: "", indexes: [] }); - dc.models.Vehicle = Vehicle; - return Vehicle; + dc.models.Statistic = Statistic; + return Statistic; }; \ No newline at end of file diff --git a/api/app/lib/routes/data/index.js b/api/app/lib/routes/data/index.js index e944a323..e801466d 100644 --- a/api/app/lib/routes/data/index.js +++ b/api/app/lib/routes/data/index.js @@ -5,19 +5,44 @@ const road = require('../../controllers/data/road'); const bridge = require('../../controllers/data/bridge'); const project = require('../../controllers/data/project'); const overspeed = require('../../controllers/data/overspeed'); +const bus = require('../../controllers/data/bus'); module.exports = function (app, router, opts) { // 运政 //客运车 + async function setVehicleType (ctx, next) { + ctx.request.body = { + ...(ctx.request.body || {}), + type: 'vehicle' + } + await next() + } app.fs.api.logAttr['GET/vehicle'] = { content: '获取运政列表', visible: true }; - router.get('/vehicle', vehicle.get); + router.get('/vehicle', setVehicleType, vehicle.get); app.fs.api.logAttr['PUT/vehicle'] = { content: '编辑运政数据', visible: true }; - router.put('/vehicle', vehicle.edit); + router.put('/vehicle', setVehicleType, vehicle.edit); - app.fs.api.logAttr['DEL/vehicle/:vehicleId'] = { content: '删除运政数据', visible: false }; - router.del('/vehicle/:vehicleId', vehicle.del); + app.fs.api.logAttr['DEL/vehicle/:id'] = { content: '删除运政数据', visible: false }; + router.del('/vehicle/:id', setVehicleType, vehicle.del); + + // 路政 + async function setRoadManageType (ctx, next) { + ctx.request.body = { + ...(ctx.request.body || {}), + type: 'road_manage' + } + await next() + } + app.fs.api.logAttr['GET/road_manage'] = { content: '获取路政列表', visible: true }; + router.get('/road_manage', setRoadManageType, vehicle.get); + + app.fs.api.logAttr['PUT/road_manage'] = { content: '编辑路政数据', visible: true }; + router.put('/road_manage', setRoadManageType, vehicle.edit); + + app.fs.api.logAttr['DEL/road_manage/:id'] = { content: '删除路政数据', visible: false }; + router.del('/road_manage/:id', setRoadManageType, vehicle.del); // 出租/危货 app.fs.api.logAttr['GET/vehicle/specific'] = { content: '获取具体车辆列表', visible: true }; @@ -45,7 +70,7 @@ module.exports = function (app, router, opts) { router.post('/road/import', road.importIn); app.fs.api.logAttr['GET/road'] = { content: '获取道路数据', visible: true }; - router.post('/road', road.get); + router.get('/road', road.get); app.fs.api.logAttr['put/road'] = { content: '编辑道路数据', visible: true }; router.put('/road', road.edit); @@ -86,4 +111,24 @@ module.exports = function (app, router, opts) { app.fs.api.logAttr['DEL/overspeed/:overspeedId'] = { content: '删除治超数据', visible: false }; router.del('/overspeed/:overspeedId', overspeed.overspeedDel); //overspeed END + + //bus + app.fs.api.logAttr['GET/bus/line'] = { content: '获取公交路线数据', visible: true }; + router.get('/bus/line', bus.lineGet); + + app.fs.api.logAttr['PUT/bus/line'] = { content: '编辑公交路线数据', visible: true }; + router.put('/bus/line', bus.lineEdit); + + app.fs.api.logAttr['DEL/bus/line/:lineId'] = { content: '删除公交路线数据', visible: false }; + router.del('/bus/line/:lineId', bus.lineDel); + + app.fs.api.logAttr['GET/bus/car'] = { content: '获取公交车辆数据', visible: true }; + router.get('/bus/car', bus.carGet); + + app.fs.api.logAttr['PUT/bus/car'] = { content: '编辑公交车辆数据', visible: true }; + router.put('/bus/car', bus.carEdit); + + app.fs.api.logAttr['DEL/bus/car/:carId'] = { content: '删除公交车辆数据', visible: false }; + router.del('/bus/car/:carId', bus.carDel); + //bus END }; diff --git a/api/app/lib/routes/overview/index.js b/api/app/lib/routes/overview/index.js new file mode 100644 index 00000000..3def0d6a --- /dev/null +++ b/api/app/lib/routes/overview/index.js @@ -0,0 +1,26 @@ +'use strict'; + +const operation = require('../../controllers/overview/operation'); +const management = require('../../controllers/overview/management'); +const build = require('../../controllers/overview/building'); + +module.exports = function (app, router, opts) { + // 运营 + app.fs.api.logAttr['GET/operation/car_level'] = { content: '获取公交车辆层级信息', visible: false }; + router.get('/operation/car_level', operation.busCarLevelList); + + // 管理 + app.fs.api.logAttr['GET/manage/overspeed'] = { content: '获取治超详情列', visible: false }; + router.get('/manage/overspeed', management.overSpeedList); + + app.fs.api.logAttr['GET/manage/overspeed/processed'] = { content: '获取治超监测点处理数据', visible: false }; + router.get('/manage/overspeed/processed', management.overSpeedProcessed); + + // 建设 + app.fs.api.logAttr['GET/build/road_state'] = { content: '获取道路统计', visible: false }; + router.get('/build/road_state', build.roadState); + + // 领导驾驶 + + // 养护 +} \ No newline at end of file diff --git a/api/log/development.log b/api/log/development.log index a260f189..0c8e8e9d 100644 --- a/api/log/development.log +++ b/api/log/development.log @@ -7155,3 +7155,116 @@ 2022-07-22 15:22:09.565 - info: [FS-AUTH] Inject auth and api mv into router. 2022-07-22 15:22:12.241 - error: path: /overspeed, error: ReferenceError: startTime is not defined 2022-07-22 15:22:51.819 - error: path: /overspeed, error: ReferenceError: startTime is not defined +2022-07-22 15:58:39.491 - debug: [FS-LOGGER] Init. +2022-07-22 15:58:39.611 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-22 15:58:39.611 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 11:26:40.514 - debug: [FS-LOGGER] Init. +2022-07-23 11:26:40.651 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 11:26:40.651 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:20:35.342 - debug: [FS-LOGGER] Init. +2022-07-23 14:20:35.455 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:20:35.455 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:20:42.513 - error: path: /bus/car/level, error: SequelizeDatabaseError: 字段 "name" 不存在 +2022-07-23 14:20:49.231 - error: path: /bus/car/level, error: SequelizeDatabaseError: 字段 "name" 不存在 +2022-07-23 14:21:03.178 - debug: [FS-LOGGER] Init. +2022-07-23 14:21:03.288 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:21:03.289 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:21:37.334 - debug: [FS-LOGGER] Init. +2022-07-23 14:21:37.446 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:21:37.447 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:36:46.046 - debug: [FS-LOGGER] Init. +2022-07-23 14:36:46.169 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:36:46.170 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:37:08.363 - error: path: /manage/overSpeed, error: TypeError: Cannot read property 'findAll' of undefined +2022-07-23 14:37:14.419 - error: path: /manage/overSpeed, error: TypeError: Cannot read property 'findAll' of undefined +2022-07-23 14:37:33.317 - debug: [FS-LOGGER] Init. +2022-07-23 14:37:33.436 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:37:33.436 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:38:22.690 - debug: [FS-LOGGER] Init. +2022-07-23 14:38:22.809 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:38:22.809 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:55:36.552 - debug: [FS-LOGGER] Init. +2022-07-23 14:55:36.694 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:55:36.694 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:56:29.460 - debug: [FS-LOGGER] Init. +2022-07-23 14:56:29.596 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:56:29.596 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:57:27.313 - debug: [FS-LOGGER] Init. +2022-07-23 14:57:27.441 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:57:27.442 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:58:18.331 - debug: [FS-LOGGER] Init. +2022-07-23 14:58:18.458 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:58:18.458 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 14:59:38.735 - debug: [FS-LOGGER] Init. +2022-07-23 14:59:38.861 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 14:59:38.862 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:00:10.681 - debug: [FS-LOGGER] Init. +2022-07-23 15:00:10.804 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:00:10.804 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:01:53.734 - debug: [FS-LOGGER] Init. +2022-07-23 15:01:53.857 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:01:53.857 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:01:58.068 - error: path: /manage/overspeed/processed, error: ReferenceError: Op is not defined +2022-07-23 15:02:02.859 - error: path: /manage/overspeed/processed, error: ReferenceError: Op is not defined +2022-07-23 15:02:16.875 - debug: [FS-LOGGER] Init. +2022-07-23 15:02:17.003 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:02:17.003 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:05:17.496 - debug: [FS-LOGGER] Init. +2022-07-23 15:05:17.633 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:05:17.634 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:06:45.506 - error: path: /manage/overspeed/processed, error: TypeError: Cannot read property 'count' of undefined +2022-07-23 15:07:07.567 - debug: [FS-LOGGER] Init. +2022-07-23 15:07:07.696 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:07:07.696 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:07:29.327 - debug: [FS-LOGGER] Init. +2022-07-23 15:07:29.460 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:07:29.460 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 15:33:08.052 - debug: [FS-LOGGER] Init. +2022-07-23 15:33:08.179 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 15:33:08.179 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:09:22.681 - debug: [FS-LOGGER] Init. +2022-07-23 16:09:22.808 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:09:22.808 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:10:03.079 - debug: [FS-LOGGER] Init. +2022-07-23 16:10:03.208 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:10:03.208 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:11:16.662 - debug: [FS-LOGGER] Init. +2022-07-23 16:11:16.790 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:11:16.790 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:13:52.199 - debug: [FS-LOGGER] Init. +2022-07-23 16:13:52.328 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:13:52.329 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:13:54.882 - error: path: /build/road_state, error: TypeError: Cannot read property 'size' of undefined +2022-07-23 16:13:57.027 - error: path: /build/road_state, error: TypeError: Cannot read property 'size' of undefined +2022-07-23 16:14:01.518 - error: path: /build/road_state, error: TypeError: Cannot read property 'size' of undefined +2022-07-23 16:14:48.055 - debug: [FS-LOGGER] Init. +2022-07-23 16:14:48.194 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:14:48.194 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:29:40.725 - debug: [FS-LOGGER] Init. +2022-07-23 16:29:40.862 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:29:40.863 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:39:51.192 - debug: [FS-LOGGER] Init. +2022-07-23 16:39:51.331 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:39:51.331 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 16:41:55.842 - debug: [FS-LOGGER] Init. +2022-07-23 16:41:55.980 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 16:41:55.980 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:14:55.573 - debug: [FS-LOGGER] Init. +2022-07-23 17:14:55.765 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:14:55.765 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:15:03.041 - error: path: /build/road_state, error: TypeError: Cannot read property 'indexOf' of null +2022-07-23 17:15:41.896 - debug: [FS-LOGGER] Init. +2022-07-23 17:15:42.032 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:15:42.032 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:28:33.162 - debug: [FS-LOGGER] Init. +2022-07-23 17:28:33.297 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:28:33.297 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:28:47.388 - debug: [FS-LOGGER] Init. +2022-07-23 17:28:47.535 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:28:47.536 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:43:26.624 - debug: [FS-LOGGER] Init. +2022-07-23 17:43:26.764 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:43:26.765 - info: [FS-AUTH] Inject auth and api mv into router. +2022-07-23 17:44:52.238 - debug: [FS-LOGGER] Init. +2022-07-23 17:44:52.386 - info: [FS-ATTACHMENT] Inject attachment mw into router. +2022-07-23 17:44:52.387 - info: [FS-AUTH] Inject auth and api mv into router. diff --git a/scripts/0.0.1/data/1_update_statistic_data.sql b/scripts/0.0.1/data/1_update_statistic_data.sql new file mode 100644 index 00000000..e69de29b diff --git a/scripts/0.0.1/data/1_update_user_data.sql b/scripts/0.0.1/data/1_update_user_data.sql deleted file mode 100644 index 13b0af55..00000000 --- a/scripts/0.0.1/data/1_update_user_data.sql +++ /dev/null @@ -1,4 +0,0 @@ --- ---------------------------- --- Records of user --- ---------------------------- -INSERT INTO "public"."user" VALUES (1, '管理员', 'SuperAdmin', 'e10adc3949ba59abbe56e057f20f883e', 1, 'f', NULL, NULL, NULL, TRUE); \ No newline at end of file diff --git a/scripts/0.0.1/data/1_update_user_dep_data.sql b/scripts/0.0.1/data/1_update_user_dep_data.sql new file mode 100644 index 00000000..c7f99bc1 --- /dev/null +++ b/scripts/0.0.1/data/1_update_user_dep_data.sql @@ -0,0 +1,8 @@ +-- ---------------------------- +-- Records of DEP +-- ---------------------------- +INSERT INTO "department" VALUES (1, '默认部门', NULL, false); +-- ---------------------------- +-- Records of user +-- ---------------------------- +INSERT INTO "user" VALUES (1, '管理员', 'SuperAdmin', 'e10adc3949ba59abbe56e057f20f883e', 1, 'f', NULL, NULL, NULL, TRUE); \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/车辆信息/四公司车辆信息(1).xls b/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/车辆信息/四公司车辆信息(1).xls new file mode 100644 index 00000000..f297808d Binary files /dev/null and b/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/车辆信息/四公司车辆信息(1).xls differ diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx b/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx new file mode 100644 index 00000000..27580a47 Binary files /dev/null and b/scripts/0.0.1/data/工具脚本(无需执行)/data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx differ diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx b/scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx index 49d9ad16..c2cc10cf 100644 Binary files a/scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx and b/scripts/0.0.1/data/工具脚本(无需执行)/data/治超/非现场处罚总台账更新至2022.7.5(最新).xlsx differ diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js b/scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js index 694a05a2..62a5da80 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js +++ b/scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js @@ -16,38 +16,6 @@ try { port: 5432, }) - let appid = '20200917000567738'; - let key = 'xXm4jsuuD38JIkkhEcK6'; - const getAnswer = async (query) => { - let start = (new Date()).getTime(); - let salt = start; - let str1 = appid + query + salt + key; - let sign = Hex.stringify(MD5(str1)); - console.log(`翻译:${query}`); - let answer = await request.get('http://api.fanyi.baidu.com/api/trans/vip/translate').timeout(1000 * 30).query({ - q: query, - appid: appid, - salt: salt, - from: 'zh', - to: 'en', - sign: sign - }); - if (answer.body.error_code) { - console.warn(answer.body); - throw '百度不给力,快快debug' - } - let rslt = answer.body.trans_result; - // let upperCaseRslt = rslt[0].dst.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()).replace(/ /g, ''); - // let upperCaseRslt = rslt[0].dst.toUpperCase().replace(/ /g, '_'); - // let upperCaseRslt = rslt[0].dst.toLowerCase().replace(/ /g, '_'); - let upperCaseRslt = rslt[0].dst.replace(/\//g, ' ').replace(/'/g, '').replace(/\s{2,}/g, ''); - console.log(`翻译结果:${upperCaseRslt}`); - while (((new Date()).getTime() - start) < (1000 / 8)) {//每s只能调用10次 - continue; - } - return upperCaseRslt - } - const fun = async () => { // note: we don't try/catch this because if connecting throws an exception // we don't need to dispose of the client (it will be undefined) @@ -71,7 +39,7 @@ try { // defaultValue: ['县'], // }, // { - // path:[ './data/道路/乡道第三方.xls'], + // path: ['./data/道路/乡道第三方.xls'], // n: '道路', // tableName: 'road', // defaultKey: ['level'], @@ -122,6 +90,16 @@ try { // n: '治超', // tableName: 'overspeed', // }, + // { + // path: ['./data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx'], + // n: '公交线路', + // tableName: 'bus_line', + // }, + // { + // path: ['./data/公交/车辆信息/四公司车辆信息(1).xls'], + // n: '公交车辆', + // tableName: 'bus_car', + // }, ] for (let f of fileList) { @@ -144,13 +122,25 @@ try { let v = d[k]; if (v) { insertKeys.push(keyMap[k]); - insertValues.push(v); if (f.n == '工程一览') { if (k == '项目进展情况' && v == '已完工') { insertValues[0] = true } } + + if (f.n == '公交车辆') { + if (k == '所属公司') { + insertValues.push(v.split(':')[1]); + continue + } + if (k == '所属车队') { + insertValues.push(v.split(':')[1].replace(/.公司/, '')); + continue + } + } + + insertValues.push(v); } } insertStr += insertKeys.join(',') + ') VALUES ('; diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/index.js b/scripts/0.0.1/data/工具脚本(无需执行)/index.js index 4dbe029a..f4cf143f 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/index.js +++ b/scripts/0.0.1/data/工具脚本(无需执行)/index.js @@ -43,6 +43,7 @@ try { let upperCaseRslt = rslt[0].dst .replace(/\//g, ' ') .replace(/'/g, '') + .replace(/:/g, '') .trim() .replace(/\s{2,}/g, '') .replace(/-/g, ' '); @@ -60,9 +61,10 @@ try { try { await client.query('BEGIN') + // 有手动更改 不要轻易再次执行脚本 const fileList = [ // { - // path: './data/道路/乡道第三方.xls', + // path: './data/道路/县道第三方.xls', // n: '道路', // tableName: 'road' // }, @@ -91,6 +93,16 @@ try { // n: '治超', // tableName: 'overspeed' // }, + // { + // path: './data/公交/运营线路/(四公司)南昌公交运营线路基础信息表2022年6月(总表).xlsx', + // n: '公交线路', + // tableName: 'bus_line' + // }, + // { + // path: './data/公交/车辆信息/四公司车辆信息(1).xls', + // n: '公交车辆', + // tableName: 'bus_car' + // }, ] for (let f of fileList) { diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_字段对应.json new file mode 100644 index 00000000..c0eb487b --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_字段对应.json @@ -0,0 +1,25 @@ +{ + "公司": "company", + "车队": "fleet", + "车队长": "carCaptain", + "副车队长": "assistantCarCaptain", + "办公地点": "officeLocation", + "线路名称": "lineName", + "线路类型": "lineType", + "线路划分": "lineDivision", + "GPS编号": "gPSNumber", + "起点终点": "startingPointEndPoint", + "车辆数": "numberOfVehicles", + "全程公里数": "totalKilometers", + "票价": "ticketPrice", + "开通时间": "openingTime", + "运行时间": "runningTime", + "开班时间夏令": "openingTimeSummer", + "收班时间夏令": "shiftClosingTimeSummer", + "开班时间冬令": "openingTimeWinter", + "收班时间冬令": "shiftClosingTimeWinter", + "沿途站点上行": "uplinkOfStationsAlongTheWay", + "沿途站点下行": "downlinkOfStationsAlongTheWay", + "所属区域": "area", + "备注": "remarks" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据字段对应.json new file mode 100644 index 00000000..fd7a425d --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据字段对应.json @@ -0,0 +1,25 @@ +{ + "company": "公司", + "fleet": "车队", + "carCaptain": "车队长", + "assistantCarCaptain": "副车队长", + "officeLocation": "办公地点", + "lineName": "线路名称", + "lineType": "线路类型", + "lineDivision": "线路划分", + "gPSNumber": "GPS编号", + "startingPointEndPoint": "起点终点", + "numberOfVehicles": "车辆数", + "totalKilometers": "全程公里数", + "ticketPrice": "票价", + "openingTime": "开通时间", + "runningTime": "运行时间", + "openingTimeSummer": "开班时间夏令", + "shiftClosingTimeSummer": "收班时间夏令", + "openingTimeWinter": "开班时间冬令", + "shiftClosingTimeWinter": "收班时间冬令", + "uplinkOfStationsAlongTheWay": "沿途站点上行", + "downlinkOfStationsAlongTheWay": "沿途站点下行", + "area": "所属区域", + "remarks": "备注" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据库表对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据库表对应.json new file mode 100644 index 00000000..113970b6 --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据库表对应.json @@ -0,0 +1,25 @@ +{ + "公司": "company", + "车队": "fleet", + "车队长": "car_Captain", + "副车队长": "assistant_car_Captain", + "办公地点": "office_location", + "线路名称": "line_name", + "线路类型": "line_type", + "线路划分": "line_division", + "GPS编号": "gPS_number", + "起点终点": "starting_point_end_point", + "车辆数": "number_of_vehicles", + "全程公里数": "total_kilometers", + "票价": "ticket_Price", + "开通时间": "opening_time", + "运行时间": "running_time", + "开班时间夏令": "opening_time_summer", + "收班时间夏令": "shift_closing_time_summer", + "开班时间冬令": "opening_time_Winter", + "收班时间冬令": "shift_closing_time_winter", + "沿途站点上行": "uplink_of_stations_along_the_way", + "沿途站点下行": "downlink_of_stations_along_the_way", + "所属区域": "area", + "备注": "remarks" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据脚本对应.sql b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据脚本对应.sql new file mode 100644 index 00000000..f9fd6e7c --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交线路_数据脚本对应.sql @@ -0,0 +1,29 @@ +-- 公交线路 + +CREATE TABLE if not exists "bus_line" ( id serial not null ); + +CREATE unique index if not exists bus_line_id_uindex +ON bus_line (id); alter TABLE bus_line add constraint bus_line_pk primary key (id); alter TABLE bus_line add Company varchar(1024); comment +ON column bus_line.Company is '公司'; alter TABLE bus_line add Fleet varchar(1024); comment +ON column bus_line.Fleet is '车队'; alter TABLE bus_line add Car_Captain varchar(1024); comment +ON column bus_line.Car_Captain is '车队长'; alter TABLE bus_line add Assistant_Car_Captain varchar(1024); comment +ON column bus_line.Assistant_Car_Captain is '副车队长'; alter TABLE bus_line add Office_Location varchar(1024); comment +ON column bus_line.Office_Location is '办公地点'; alter TABLE bus_line add Line_Name varchar(1024); comment +ON column bus_line.Line_Name is '线路名称'; alter TABLE bus_line add Line_Type varchar(1024); comment +ON column bus_line.Line_Type is '线路类型'; alter TABLE bus_line add Line_Division varchar(1024); comment +ON column bus_line.Line_Division is '线路划分'; alter TABLE bus_line add GPS_Number varchar(1024); comment +ON column bus_line.GPS_Number is 'GPS编号'; alter TABLE bus_line add Starting_Point_End_Point varchar(1024); comment +ON column bus_line.Starting_Point_End_Point is '起点终点'; alter TABLE bus_line add Number_Of_Vehicles varchar(1024); comment +ON column bus_line.Number_Of_Vehicles is '车辆数'; alter TABLE bus_line add Total_Kilometers varchar(1024); comment +ON column bus_line.Total_Kilometers is '全程公里数'; alter TABLE bus_line add Ticket_Price varchar(1024); comment +ON column bus_line.Ticket_Price is '票价'; alter TABLE bus_line add Opening_Time varchar(1024); comment +ON column bus_line.Opening_Time is '开通时间'; alter TABLE bus_line add Running_Time varchar(1024); comment +ON column bus_line.Running_Time is '运行时间'; alter TABLE bus_line add Opening_Time_Summer varchar(1024); comment +ON column bus_line.Opening_Time_Summer is '开班时间夏令'; alter TABLE bus_line add Shift_Closing_Time_Summer varchar(1024); comment +ON column bus_line.Shift_Closing_Time_Summer is '收班时间夏令'; alter TABLE bus_line add Opening_Time_Winter varchar(1024); comment +ON column bus_line.Opening_Time_Winter is '开班时间冬令'; alter TABLE bus_line add Shift_Closing_Time_Winter varchar(1024); comment +ON column bus_line.Shift_Closing_Time_Winter is '收班时间冬令'; alter TABLE bus_line add Uplink_Of_Stations_Along_The_Way varchar(1024); comment +ON column bus_line.Uplink_Of_Stations_Along_The_Way is '沿途站点上行'; alter TABLE bus_line add Downlink_Of_Stations_Along_The_Way varchar(1024); comment +ON column bus_line.Downlink_Of_Stations_Along_The_Way is '沿途站点下行'; alter TABLE bus_line add Area varchar(1024); comment +ON column bus_line.Area is '所属区域'; alter TABLE bus_line add Remarks varchar(1024); comment +ON column bus_line.Remarks is '备注'; \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_字段对应.json new file mode 100644 index 00000000..3af61ff6 --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_字段对应.json @@ -0,0 +1,54 @@ +{ + "所属公司": "company", + "所属车队": "fleet", + "所属线路": "line", + "车辆编号": "vehicleNumber", + "车辆牌照号": "vehicleLicensePlateNumber", + "运营类别": "operationCategory", + "已使用年限": "serviceLife", + "发动机型号": "engineModel", + "车辆型号": "vehicleModel", + "车辆类别": "vehicleCategory", + "车辆状态": "vehicleStatus", + "入户日期": "dateOfEntry", + "购进日期": "purchaseDate", + "能耗类型": "energyConsumptionType", + "标台数": "numberOfStandardUnits", + "维保单位": "maintenanceUnit", + "车辆类型": "vehicleType", + "厂牌型号": "brandAndModel", + "生产厂家": "manufacturer", + "行驶证编号": "drivingLicenseNo", + "发动机编号": "engineNumber", + "主能耗": "mainEnergyConsumption", + "副能耗": "secondaryEnergyConsumption", + "排放标准": "emissionStandard", + "启用日期": "startDate", + "最近一次调动日期": "lastTransferDate", + "车长": "conductor", + "车宽": "vehicleWidth", + "车高": "carHeight", + "核定载客数": "approvedPassengerCapacity", + "车辆识别号": "vehicleIdentificationNumber", + "变速箱品牌": "gearboxBrand", + "人工洗车费": "manualCarWashingFee", + "劳务费": "laborCost", + "整备质量": "curbWeight", + "总质量": "totalMass", + "空调温度": "airConditioningTemperature", + "是否空调车": "airConditionedCarOrNot", + "开空调温度": "turnOnTheAirConditioningTemperature", + "功率": "power", + "变速器": "transmission", + "座位数": "seatingCapacity", + "空调品牌": "airConditioningBrand", + "座椅类型": "seatType", + "轮胎规格": "tireSpecifications", + "道路运输证号": "roadTransportCertificateNo", + "停放点": "parkingPoint", + "洗车类型": "carWashingType", + "免维护轮端": "maintenanceFreeWheelEnd", + "首保日期": "firstGuaranteeDate", + "整修日期": "dateOfRenovation", + "机动车所有人": "motorVehicleOwner" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据字段对应.json new file mode 100644 index 00000000..29f2e1ad --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据字段对应.json @@ -0,0 +1,54 @@ +{ + "company": "所属公司", + "fleet": "所属车队", + "line": "所属线路", + "vehicleNumber": "车辆编号", + "vehicleLicensePlateNumber": "车辆牌照号", + "operationCategory": "运营类别", + "serviceLife": "已使用年限", + "engineModel": "发动机型号", + "vehicleModel": "车辆型号", + "vehicleCategory": "车辆类别", + "vehicleStatus": "车辆状态", + "dateOfEntry": "入户日期", + "purchaseDate": "购进日期", + "energyConsumptionType": "能耗类型", + "numberOfStandardUnits": "标台数", + "maintenanceUnit": "维保单位", + "vehicleType": "车辆类型", + "brandAndModel": "厂牌型号", + "manufacturer": "生产厂家", + "drivingLicenseNo": "行驶证编号", + "engineNumber": "发动机编号", + "mainEnergyConsumption": "主能耗", + "secondaryEnergyConsumption": "副能耗", + "emissionStandard": "排放标准", + "startDate": "启用日期", + "lastTransferDate": "最近一次调动日期", + "conductor": "车长", + "vehicleWidth": "车宽", + "carHeight": "车高", + "approvedPassengerCapacity": "核定载客数", + "vehicleIdentificationNumber": "车辆识别号", + "gearboxBrand": "变速箱品牌", + "manualCarWashingFee": "人工洗车费", + "laborCost": "劳务费", + "curbWeight": "整备质量", + "totalMass": "总质量", + "airConditioningTemperature": "空调温度", + "airConditionedCarOrNot": "是否空调车", + "turnOnTheAirConditioningTemperature": "开空调温度", + "power": "功率", + "transmission": "变速器", + "seatingCapacity": "座位数", + "airConditioningBrand": "空调品牌", + "seatType": "座椅类型", + "tireSpecifications": "轮胎规格", + "roadTransportCertificateNo": "道路运输证号", + "parkingPoint": "停放点", + "carWashingType": "洗车类型", + "maintenanceFreeWheelEnd": "免维护轮端", + "firstGuaranteeDate": "首保日期", + "dateOfRenovation": "整修日期", + "motorVehicleOwner": "机动车所有人" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据库表对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据库表对应.json new file mode 100644 index 00000000..f78c88e1 --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据库表对应.json @@ -0,0 +1,54 @@ +{ + "所属公司": "company", + "所属车队": "fleet", + "所属线路": "line", + "车辆编号": "vehicle_number", + "车辆牌照号": "vehicle_license_plate_number", + "运营类别": "operation_category", + "已使用年限": "service_life", + "发动机型号": "engine_model", + "车辆型号": "vehicle_model", + "车辆类别": "vehicle_category", + "车辆状态": "vehicle_status", + "入户日期": "date_of_entry", + "购进日期": "purchase_date", + "能耗类型": "energy_consumption_type", + "标台数": "number_of_standard_units", + "维保单位": "maintenance_unit", + "车辆类型": "vehicle_type", + "厂牌型号": "brand_and_model", + "生产厂家": "manufacturer", + "行驶证编号": "driving_license_No", + "发动机编号": "engine_number", + "主能耗": "main_energy_consumption", + "副能耗": "secondary_energy_consumption", + "排放标准": "emission_standard", + "启用日期": "start_date", + "最近一次调动日期": "last_transfer_date", + "车长": "conductor", + "车宽": "vehicle_width", + "车高": "car_height", + "核定载客数": "approved_passenger_capacity", + "车辆识别号": "vehicle_identification_number", + "变速箱品牌": "gearbox_brand", + "人工洗车费": "manual_car_washing_fee", + "劳务费": "labor_cost", + "整备质量": "curb_weight", + "总质量": "total_mass", + "空调温度": "air_conditioning_temperature", + "是否空调车": "air_conditioned_car_or_not", + "开空调温度": "turn_on_the_air_conditioning_temperature", + "功率": "power", + "变速器": "transmission", + "座位数": "seating_capacity", + "空调品牌": "air_conditioning_brand", + "座椅类型": "seat_type", + "轮胎规格": "tire_specifications", + "道路运输证号": "road_Transport_Certificate_No", + "停放点": "parking_point", + "洗车类型": "car_washing_type", + "免维护轮端": "maintenance_free_wheel_end", + "首保日期": "first_guarantee_date", + "整修日期": "date_of_renovation", + "机动车所有人": "motor_vehicle_owner" +} \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据脚本对应.sql b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据脚本对应.sql new file mode 100644 index 00000000..95c0bab0 --- /dev/null +++ b/scripts/0.0.1/data/工具脚本(无需执行)/公交车辆_数据脚本对应.sql @@ -0,0 +1,58 @@ +-- 公交车辆 + +CREATE TABLE if not exists "bus_car" ( id serial not null ); + +CREATE unique index if not exists bus_car_id_uindex +ON bus_car (id); alter TABLE bus_car add constraint bus_car_pk primary key (id); alter TABLE bus_car add Company varchar(1024); comment +ON column bus_car.Company is '所属公司'; alter TABLE bus_car add Fleet varchar(1024); comment +ON column bus_car.Fleet is '所属车队'; alter TABLE bus_car add Line varchar(1024); comment +ON column bus_car.Line is '所属线路'; alter TABLE bus_car add Vehicle_Number varchar(1024); comment +ON column bus_car.Vehicle_Number is '车辆编号'; alter TABLE bus_car add Vehicle_License_Plate_Number varchar(1024); comment +ON column bus_car.Vehicle_License_Plate_Number is '车辆牌照号'; alter TABLE bus_car add Operation_Category varchar(1024); comment +ON column bus_car.Operation_Category is '运营类别'; alter TABLE bus_car add Service_Life varchar(1024); comment +ON column bus_car.Service_Life is '已使用年限'; alter TABLE bus_car add Engine_Model varchar(1024); comment +ON column bus_car.Engine_Model is '发动机型号'; alter TABLE bus_car add Vehicle_Model varchar(1024); comment +ON column bus_car.Vehicle_Model is '车辆型号'; alter TABLE bus_car add Vehicle_Category varchar(1024); comment +ON column bus_car.Vehicle_Category is '车辆类别'; alter TABLE bus_car add Vehicle_Status varchar(1024); comment +ON column bus_car.Vehicle_Status is '车辆状态'; alter TABLE bus_car add Date_Of_Entry varchar(1024); comment +ON column bus_car.Date_Of_Entry is '入户日期'; alter TABLE bus_car add Purchase_Date varchar(1024); comment +ON column bus_car.Purchase_Date is '购进日期'; alter TABLE bus_car add Energy_Consumption_Type varchar(1024); comment +ON column bus_car.Energy_Consumption_Type is '能耗类型'; alter TABLE bus_car add Number_Of_Standard_Units varchar(1024); comment +ON column bus_car.Number_Of_Standard_Units is '标台数'; alter TABLE bus_car add Maintenance_Unit varchar(1024); comment +ON column bus_car.Maintenance_Unit is '维保单位'; alter TABLE bus_car add Vehicle_Type varchar(1024); comment +ON column bus_car.Vehicle_Type is '车辆类型'; alter TABLE bus_car add Brand_And_Model varchar(1024); comment +ON column bus_car.Brand_And_Model is '厂牌型号'; alter TABLE bus_car add Manufacturer varchar(1024); comment +ON column bus_car.Manufacturer is '生产厂家'; alter TABLE bus_car add Driving_License_No varchar(1024); comment +ON column bus_car.Driving_License_No is '行驶证编号'; alter TABLE bus_car add Engine_Number varchar(1024); comment +ON column bus_car.Engine_Number is '发动机编号'; alter TABLE bus_car add Main_Energy_Consumption varchar(1024); comment +ON column bus_car.Main_Energy_Consumption is '主能耗'; alter TABLE bus_car add Secondary_Energy_Consumption varchar(1024); comment +ON column bus_car.Secondary_Energy_Consumption is '副能耗'; alter TABLE bus_car add Emission_Standard varchar(1024); comment +ON column bus_car.Emission_Standard is '排放标准'; alter TABLE bus_car add Start_Date varchar(1024); comment +ON column bus_car.Start_Date is '启用日期'; alter TABLE bus_car add Last_Transfer_Date varchar(1024); comment +ON column bus_car.Last_Transfer_Date is '最近一次调动日期'; alter TABLE bus_car add Conductor varchar(1024); comment +ON column bus_car.Conductor is '车长'; alter TABLE bus_car add Vehicle_Width varchar(1024); comment +ON column bus_car.Vehicle_Width is '车宽'; alter TABLE bus_car add Car_Height varchar(1024); comment +ON column bus_car.Car_Height is '车高'; alter TABLE bus_car add Approved_Passenger_Capacity varchar(1024); comment +ON column bus_car.Approved_Passenger_Capacity is '核定载客数'; alter TABLE bus_car add Vehicle_Identification_Number varchar(1024); comment +ON column bus_car.Vehicle_Identification_Number is '车辆识别号'; alter TABLE bus_car add Gearbox_Brand varchar(1024); comment +ON column bus_car.Gearbox_Brand is '变速箱品牌'; alter TABLE bus_car add Manual_Car_Washing_Fee varchar(1024); comment +ON column bus_car.Manual_Car_Washing_Fee is '人工洗车费'; alter TABLE bus_car add Labor_Cost varchar(1024); comment +ON column bus_car.Labor_Cost is '劳务费'; alter TABLE bus_car add Curb_Weight varchar(1024); comment +ON column bus_car.Curb_Weight is '整备质量'; alter TABLE bus_car add Total_Mass varchar(1024); comment +ON column bus_car.Total_Mass is '总质量'; alter TABLE bus_car add Air_Conditioning_Temperature varchar(1024); comment +ON column bus_car.Air_Conditioning_Temperature is '空调温度'; alter TABLE bus_car add Air_Conditioned_Car_Or_Not varchar(1024); comment +ON column bus_car.Air_Conditioned_Car_Or_Not is '是否空调车'; alter TABLE bus_car add Turn_On_The_Air_Conditioning_Temperature varchar(1024); comment +ON column bus_car.Turn_On_The_Air_Conditioning_Temperature is '开空调温度'; alter TABLE bus_car add Power varchar(1024); comment +ON column bus_car.Power is '功率'; alter TABLE bus_car add Transmission varchar(1024); comment +ON column bus_car.Transmission is '变速器'; alter TABLE bus_car add Seating_Capacity varchar(1024); comment +ON column bus_car.Seating_Capacity is '座位数'; alter TABLE bus_car add Air_Conditioning_Brand varchar(1024); comment +ON column bus_car.Air_Conditioning_Brand is '空调品牌'; alter TABLE bus_car add Seat_Type varchar(1024); comment +ON column bus_car.Seat_Type is '座椅类型'; alter TABLE bus_car add Tire_Specifications varchar(1024); comment +ON column bus_car.Tire_Specifications is '轮胎规格'; alter TABLE bus_car add Road_Transport_Certificate_No varchar(1024); comment +ON column bus_car.Road_Transport_Certificate_No is '道路运输证号'; alter TABLE bus_car add Parking_Point varchar(1024); comment +ON column bus_car.Parking_Point is '停放点'; alter TABLE bus_car add Car_Washing_Type varchar(1024); comment +ON column bus_car.Car_Washing_Type is '洗车类型'; alter TABLE bus_car add Maintenance_Free_Wheel_End varchar(1024); comment +ON column bus_car.Maintenance_Free_Wheel_End is '免维护轮端'; alter TABLE bus_car add First_Guarantee_Date varchar(1024); comment +ON column bus_car.First_Guarantee_Date is '首保日期'; alter TABLE bus_car add Date_Of_Renovation varchar(1024); comment +ON column bus_car.Date_Of_Renovation is '整修日期'; alter TABLE bus_car add Motor_Vehicle_Owner varchar(1024); comment +ON column bus_car.Motor_Vehicle_Owner is '机动车所有人'; \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json index 0fb97a7f..0037c10a 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json +++ b/scripts/0.0.1/data/工具脚本(无需执行)/道路_字段对应.json @@ -10,11 +10,19 @@ "止点分界点类别": "categoryOfDeadCenterAndDividingPoint", "止点桩号": "stopStation", "路段类型": "sectionType", + "路网调整前路线编码": "routeCodeBeforeRoadNetworkAdjustment", + "原路段序号": "serialNumberOfOriginalSection", + "原路段起点桩号": "startingStakeNumberOfTheOriginalRoadSection", + "原路段止点桩号": "endingPointStakeNoOfTheOriginalRoadSection", + "路线等级": "routeLevel", "路段性质": "natureOfRoadSection", "建成时间": "completionTime", + "改建时间": "reconstructionTime", + "建设性质": "natureOfConstruction", "GBM及文明样板路": "gBMAndCivilizedModelRoad", "地貌": "landforms", "收费性质": "natureOfCharges", + "所属收费站": "tollStation", "涵洞数量": "numberOfCulverts", "技术等级": "technicalLevel", "路面类型": "pavementType", @@ -34,9 +42,27 @@ "重复道路路段类型": "typeOfRepeatedRoadSection", "重复路段序号": "serialNumberOfRepeatedSection", "重复路段路线编码": "repeatedSectionRouteCode", + "计划资金类别": "plannedFundCategory", + "计划年度": "plannedYear", + "计划文号": "planDocumentNo", + "计划项目唯一编码": "planItemUniqueCode", + "计划项目路线编码": "plannedProjectRouteCode", + "计划项目名称": "planProjectName", + "计划项目类型": "plannedProjectType", + "完工情况": "completionStatus", + "完工年度": "yearOfCompletion", + "计划资金类别_1": "plannedFundCategoryOne", + "计划年度_1": "plannedYearOne", + "计划文号_1": "planDocumentNoOne", + "计划项目唯一编码_1": "planItemUniqueCodeOne", + "计划项目名称_1": "planProjectNameOne", + "完工情况_1": "completionStatusOne", + "完工年度_1": "yearOfCompletionOne", + "桩号范围": "stationRange", "填报单位": "reportingUnit", "变更原因": "reasonForChange", "变更时间": "changeTime", + "最近一次修复养护年度": "lastRepairAndMaintenanceYear", "是否按干线公路管理接养": "whetherMaintenanceManagedHighway", "备注": "remarks", "上年路线编码": "routeCodeOfLastYear", @@ -46,5 +72,6 @@ "图形里程": "graphicMileage", "桩号里程": "chainageMileage", "所在区县": "districtcounty", - "所在地市": "locationCity" + "所在地市": "locationCity", + "面层厚度":"surfaceThickness" } \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json index 3ba86fec..db48e92f 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json +++ b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据字段对应.json @@ -10,11 +10,19 @@ "categoryOfDeadCenterAndDividingPoint": "止点分界点类别", "stopStation": "止点桩号", "sectionType": "路段类型", + "routeCodeBeforeRoadNetworkAdjustment": "路网调整前路线编码", + "serialNumberOfOriginalSection": "原路段序号", + "startingStakeNumberOfTheOriginalRoadSection": "原路段起点桩号", + "endingPointStakeNoOfTheOriginalRoadSection": "原路段止点桩号", + "routeLevel": "路线等级", "natureOfRoadSection": "路段性质", "completionTime": "建成时间", + "reconstructionTime": "改建时间", + "natureOfConstruction": "建设性质", "gBMAndCivilizedModelRoad": "GBM及文明样板路", "landforms": "地貌", "natureOfCharges": "收费性质", + "tollStation": "所属收费站", "numberOfCulverts": "涵洞数量", "technicalLevel": "技术等级", "pavementType": "路面类型", @@ -34,9 +42,27 @@ "typeOfRepeatedRoadSection": "重复道路路段类型", "serialNumberOfRepeatedSection": "重复路段序号", "repeatedSectionRouteCode": "重复路段路线编码", + "plannedFundCategory": "计划资金类别", + "plannedYear": "计划年度", + "planDocumentNo": "计划文号", + "planItemUniqueCode": "计划项目唯一编码", + "plannedProjectRouteCode": "计划项目路线编码", + "planProjectName": "计划项目名称", + "plannedProjectType": "计划项目类型", + "completionStatus": "完工情况", + "yearOfCompletion": "完工年度", + "plannedFundCategoryOne": "计划资金类别_1", + "plannedYearOne": "计划年度_1", + "planDocumentNoOne": "计划文号_1", + "planItemUniqueCodeOne": "计划项目唯一编码_1", + "planProjectNameOne": "计划项目名称_1", + "completionStatusOne": "完工情况_1", + "yearOfCompletionOne": "完工年度_1", + "stationRange": "桩号范围", "reportingUnit": "填报单位", "reasonForChange": "变更原因", "changeTime": "变更时间", + "lastRepairAndMaintenanceYear": "最近一次修复养护年度", "whetherMaintenanceManagedHighway": "是否按干线公路管理接养", "remarks": "备注", "routeCodeOfLastYear": "上年路线编码", @@ -46,5 +72,6 @@ "graphicMileage": "图形里程", "chainageMileage": "桩号里程", "districtcounty": "所在区县", - "locationCity": "所在地市" + "locationCity": "所在地市", + "surfaceThickness":"面层厚度" } \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json index 8ee22df0..f3474ba1 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json +++ b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据库表对应.json @@ -10,11 +10,19 @@ "止点分界点类别": "category_of_dead_center_and_dividing_point", "止点桩号": "stop_station", "路段类型": "section_type", + "路网调整前路线编码": "route_code_before_road_network_adjustment", + "原路段序号": "serial_number_of_original_section", + "原路段起点桩号": "starting_stake_number_of_the_original_road_section", + "原路段止点桩号": "ending_point_stake_no_of_the_original_road_section", + "路线等级": "route_level", "路段性质": "nature_of_road_section", "建成时间": "completion_time", + "改建时间": "reconstruction_time", + "建设性质": "nature_of_construction", "GBM及文明样板路": "gBM_and_civilized_model_road", "地貌": "landforms", "收费性质": "nature_of_charges", + "所属收费站": "toll_station", "涵洞数量": "number_of_culverts", "技术等级": "technical_level", "路面类型": "pavement_type", @@ -34,9 +42,27 @@ "重复道路路段类型": "type_of_repeated_road_section", "重复路段序号": "serial_number_of_repeated_section", "重复路段路线编码": "repeated_section_route_code", + "计划资金类别": "planned_fund_category", + "计划年度": "planned_year", + "计划文号": "plan_document_No", + "计划项目唯一编码": "plan_item_unique_code", + "计划项目路线编码": "planned_project_route_code", + "计划项目名称": "plan_project_name", + "计划项目类型": "planned_project_type", + "完工情况": "completion_status", + "完工年度": "year_of_completion", + "计划资金类别_1": "planned_fund_category__one", + "计划年度_1": "planned_year__one", + "计划文号_1": "plan_document_No__one", + "计划项目唯一编码_1": "plan_item_unique_code__one", + "计划项目名称_1": "plan_project_name__one", + "完工情况_1": "completion_status__one", + "完工年度_1": "year_of_completion__one", + "桩号范围": "station_range", "填报单位": "reporting_unit", "变更原因": "reason_for_change", "变更时间": "change_time", + "最近一次修复养护年度": "last_repair_and_maintenance_year", "是否按干线公路管理接养": "whether_maintenance_managed_highway", "备注": "remarks", "上年路线编码": "route_code_of_last_year", @@ -46,5 +72,6 @@ "图形里程": "graphic_mileage", "桩号里程": "chainage_mileage", "所在区县": "districtcounty", - "所在地市": "location_city" + "所在地市": "location_city", + "面层厚度": "surface_thickness" } \ No newline at end of file diff --git a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql index c903d9f1..e386ba6f 100644 --- a/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql +++ b/scripts/0.0.1/data/工具脚本(无需执行)/道路_数据脚本对应.sql @@ -14,12 +14,20 @@ ON column road.Category_Of_Starting_Point_And_Dividing_Point is '起点分界点 ON column road.Stop_Place_Name is '止点地名'; alter TABLE road add Category_Of_Dead_Center_And_Dividing_Point varchar(1024); comment ON column road.Category_Of_Dead_Center_And_Dividing_Point is '止点分界点类别'; alter TABLE road add Stop_Station varchar(1024); comment ON column road.Stop_Station is '止点桩号'; alter TABLE road add Section_Type varchar(1024); comment -ON column road.Section_Type is '路段类型'; alter TABLE road add Nature_Of_Road_Section varchar(1024); comment +ON column road.Section_Type is '路段类型'; alter TABLE road add Route_Code_Before_Road_Network_Adjustment varchar(1024); comment +ON column road.Route_Code_Before_Road_Network_Adjustment is '路网调整前路线编码'; alter TABLE road add Serial_Number_Of_Original_Section varchar(1024); comment +ON column road.Serial_Number_Of_Original_Section is '原路段序号'; alter TABLE road add Starting_Stake_Number_Of_The_Original_Road_Section varchar(1024); comment +ON column road.Starting_Stake_Number_Of_The_Original_Road_Section is '原路段起点桩号'; alter TABLE road add Ending_Point_Stake_No_Of_The_Original_Road_Section varchar(1024); comment +ON column road.Ending_Point_Stake_No_Of_The_Original_Road_Section is '原路段止点桩号'; alter TABLE road add Route_Level varchar(1024); comment +ON column road.Route_Level is '路线等级'; alter TABLE road add Nature_Of_Road_Section varchar(1024); comment ON column road.Nature_Of_Road_Section is '路段性质'; alter TABLE road add Completion_Time varchar(1024); comment -ON column road.Completion_Time is '建成时间'; alter TABLE road add GBM_And_Civilized_Model_Road varchar(1024); comment +ON column road.Completion_Time is '建成时间'; alter TABLE road add Reconstruction_Time varchar(1024); comment +ON column road.Reconstruction_Time is '改建时间'; alter TABLE road add Nature_Of_Construction varchar(1024); comment +ON column road.Nature_Of_Construction is '建设性质'; alter TABLE road add GBM_And_Civilized_Model_Road varchar(1024); comment ON column road.GBM_And_Civilized_Model_Road is 'GBM及文明样板路'; alter TABLE road add Landforms varchar(1024); comment ON column road.Landforms is '地貌'; alter TABLE road add Nature_Of_Charges varchar(1024); comment -ON column road.Nature_Of_Charges is '收费性质'; alter TABLE road add Number_Of_Culverts varchar(1024); comment +ON column road.Nature_Of_Charges is '收费性质'; alter TABLE road add Toll_Station varchar(1024); comment +ON column road.Toll_Station is '所属收费站'; alter TABLE road add Number_Of_Culverts varchar(1024); comment ON column road.Number_Of_Culverts is '涵洞数量'; alter TABLE road add Technical_Level varchar(1024); comment ON column road.Technical_Level is '技术等级'; alter TABLE road add Pavement_Type varchar(1024); comment ON column road.Pavement_Type is '路面类型'; alter TABLE road add Pavement_Width varchar(1024); comment @@ -38,10 +46,28 @@ ON column road.Greening_Mileage is '可绿化里程'; alter TABLE road add Green ON column road.Greening_Mileaged is '已绿化里程'; alter TABLE road add Type_Of_Repeated_Road_Section varchar(1024); comment ON column road.Type_Of_Repeated_Road_Section is '重复道路路段类型'; alter TABLE road add Serial_Number_Of_Repeated_Section varchar(1024); comment ON column road.Serial_Number_Of_Repeated_Section is '重复路段序号'; alter TABLE road add Repeated_Section_Route_Code varchar(1024); comment -ON column road.Repeated_Section_Route_Code is '重复路段路线编码'; alter TABLE road add Reporting_Unit varchar(1024); comment +ON column road.Repeated_Section_Route_Code is '重复路段路线编码'; alter TABLE road add Planned_Fund_Category varchar(1024); comment +ON column road.Planned_Fund_Category is '计划资金类别'; alter TABLE road add Planned_Year varchar(1024); comment +ON column road.Planned_Year is '计划年度'; alter TABLE road add Plan_Document_No varchar(1024); comment +ON column road.Plan_Document_No is '计划文号'; alter TABLE road add Plan_Item_Unique_Code varchar(1024); comment +ON column road.Plan_Item_Unique_Code is '计划项目唯一编码'; alter TABLE road add Planned_Project_Route_Code varchar(1024); comment +ON column road.Planned_Project_Route_Code is '计划项目路线编码'; alter TABLE road add Plan_Project_Name varchar(1024); comment +ON column road.Plan_Project_Name is '计划项目名称'; alter TABLE road add Planned_Project_Type varchar(1024); comment +ON column road.Planned_Project_Type is '计划项目类型'; alter TABLE road add Completion_Status varchar(1024); comment +ON column road.Completion_Status is '完工情况'; alter TABLE road add Year_Of_Completion varchar(1024); comment +ON column road.Year_Of_Completion is '完工年度'; alter TABLE road add Planned_Fund_Category__One varchar(1024); comment +ON column road.Planned_Fund_Category__One is '计划资金类别_1'; alter TABLE road add Planned_Year__One varchar(1024); comment +ON column road.Planned_Year__One is '计划年度_1'; alter TABLE road add Plan_Document_No__One varchar(1024); comment +ON column road.Plan_Document_No__One is '计划文号_1'; alter TABLE road add Plan_Item_Unique_Code__One varchar(1024); comment +ON column road.Plan_Item_Unique_Code__One is '计划项目唯一编码_1'; alter TABLE road add Plan_Project_Name__One varchar(1024); comment +ON column road.Plan_Project_Name__One is '计划项目名称_1'; alter TABLE road add Completion_Status__One varchar(1024); comment +ON column road.Completion_Status__One is '完工情况_1'; alter TABLE road add Year_Of_Completion__One varchar(1024); comment +ON column road.Year_Of_Completion__One is '完工年度_1'; alter TABLE road add Station_Range varchar(1024); comment +ON column road.Station_Range is '桩号范围'; alter TABLE road add Reporting_Unit varchar(1024); comment ON column road.Reporting_Unit is '填报单位'; alter TABLE road add Reason_For_Change varchar(1024); comment ON column road.Reason_For_Change is '变更原因'; alter TABLE road add Change_Time varchar(1024); comment -ON column road.Change_Time is '变更时间'; alter TABLE road add Whether_Maintenance_Managed_Highway varchar(1024); comment +ON column road.Change_Time is '变更时间'; alter TABLE road add Last_Repair_And_Maintenance_Year varchar(1024); comment +ON column road.Last_Repair_And_Maintenance_Year is '最近一次修复养护年度'; alter TABLE road add Whether_Maintenance_Managed_Highway varchar(1024); comment ON column road.Whether_Maintenance_Managed_Highway is '是否按干线公路管理接养'; alter TABLE road add Remarks varchar(1024); comment ON column road.Remarks is '备注'; alter TABLE road add Route_Code_Of_Last_Year varchar(1024); comment ON column road.Route_Code_Of_Last_Year is '上年路线编码'; alter TABLE road add Route_Name_Of_Last_Year varchar(1024); comment @@ -51,4 +77,6 @@ ON column road.Last_Years_Ending_Point_Stake_Number is '上年止点桩号'; alt ON column road.Graphic_Mileage is '图形里程'; alter TABLE road add Chainage_Mileage varchar(1024); comment ON column road.Chainage_Mileage is '桩号里程'; alter TABLE road add Districtcounty varchar(1024); comment ON column road.Districtcounty is '所在区县'; alter TABLE road add Location_City varchar(1024); comment -ON column road.Location_City is '所在地市'; \ No newline at end of file +ON column road.Location_City is '所在地市'; +alter TABLE road add Surface_Thickness varchar(1024); comment +ON column road.Surface_Thickness is '面层厚度'; \ No newline at end of file diff --git a/weapp/package-lock.json b/weapp/package-lock.json index 0d599ce4..8899ef8d 100644 --- a/weapp/package-lock.json +++ b/weapp/package-lock.json @@ -9532,6 +9532,11 @@ "resolved": "http://10.8.30.22:7000/mobile-detect/-/mobile-detect-1.4.5.tgz", "integrity": "sha1-2jk8PEE8oam83ZztZTw4KBwPtq0=" }, + "moment": { + "version": "2.29.1", + "resolved": "http://npm.anxinyun.cn/moment/-/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" + }, "move-concurrently": { "version": "1.0.1", "resolved": "http://10.8.30.22:7000/move-concurrently/-/move-concurrently-1.0.1.tgz", diff --git a/weapp/package.json b/weapp/package.json index 6306c08b..d63a9260 100644 --- a/weapp/package.json +++ b/weapp/package.json @@ -46,6 +46,7 @@ "@tarojs/taro": "3.1.4", "dayjs": "^1.9.8", "deepmerge": "^4.0.0", + "moment": "^2.29.1", "react": "^16.10.0", "react-dom": "^16.10.0", "swr": "^0.5.4", diff --git a/weapp/src/app.config.js b/weapp/src/app.config.js index 18a9b86e..34a44b5a 100644 --- a/weapp/src/app.config.js +++ b/weapp/src/app.config.js @@ -8,6 +8,7 @@ export default { 'root': 'packages/', 'pages': [ 'patrol/index', + 'patrolView/index' ] }], permission: { diff --git a/weapp/src/packages/patrol/index.config.js b/weapp/src/packages/patrol/index.config.js index e69de29b..9b65a793 100644 --- a/weapp/src/packages/patrol/index.config.js +++ b/weapp/src/packages/patrol/index.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: '巡查养护' +} \ No newline at end of file diff --git a/weapp/src/packages/patrol/index.jsx b/weapp/src/packages/patrol/index.jsx index d7d8cfd7..fa27ad47 100644 --- a/weapp/src/packages/patrol/index.jsx +++ b/weapp/src/packages/patrol/index.jsx @@ -1,9 +1,246 @@ -import React from 'react' -import { View } from '@tarojs/components'; +import React, { useState, useEffect } from 'react'; +import Taro from '@tarojs/taro'; +import { + View, + RadioGroup, + Radio, + Button, + Image, + Input, + Textarea, + Picker +} from '@tarojs/components'; +import { AtForm, AtInput, AtButton, AtTextarea, AtImagePicker, AtTimeline } from 'taro-ui'; +// import InputPicker from '../components/inputPicker'; +import './index.scss'; +import arrowIcon from '../../static/img/patrol/arrow-down.svg'; const Index = () => { + const [isPatrol, setIsPatrol] = useState(true) // 巡查 or 养护 + const [prjTypeSelector, setPrjTypeSelector] = useState([]) + const [roadSelector, setRoadSelector] = useState([]) + const [projectType, setProjectType] = useState('') + const [road, setRoad] = useState('') + + const [images, setimages] = useState([]) + + const reportType = [ + { + value: '巡查', + text: '巡查', + checked: true + }, + { + value: '养护', + text: '养护', + checked: false + } + ] + + useEffect(() => { + const prjTypeSelector = ['道路', '桥梁', '涵洞', '其他'] + const roadSelector = ['富山一路', '金沙大道', '玉湖路'] + setPrjTypeSelector(prjTypeSelector) + setRoadSelector(roadSelector) + }, []) + + useEffect(() => { + if (projectType) { + setPrjTypeSelector(prjTypeSelector.filter(s => s.includes(projectType))) + } + }, [projectType]) + // useEffect(() => { + // if (projectType) { + // setPrjTypeSelector(prjTypeSelector.filter(s => s.includes(projectType))) + // } + // }, [projectType]) + + function onTypeChange(e) { + if (e.detail.value === '巡查') { + setIsPatrol(true) + } else { + setIsPatrol(false) + } + } + + function onPrjTypeChange(e) { + setProjectType(selector[e.detail.value]) + } + + function onImgPickerChange(files) { + setimages(files) + } + function onImageClick(index, file) { + Taro.previewImage({ + urls: [file.url] // 需要预览的图片http链接列表 + }) + } + + useEffect(() => { + console.log(images); + }, [images]) + return ( - 巡查养护 + + + 上报类型 + + { + reportType.map((item, i) => { + return ( + + {item.text} + + ) + }) + } + + + + + setProjectType(value)} + /> + + + + + + setRoad(value)} + /> + + + + + + {/* + */} + + + + + + + + + + + + + + + + { + isPatrol ? + + 现场图片: + = 3 ? false : true} + files={images} + onChange={onImgPickerChange} + onImageClick={onImageClick} + /> + : + + 养护图片: + + + 养护前 + + + + + 养护中 + + + + + 养护后 + + + + } + + 上报 + + ) } diff --git a/weapp/src/packages/patrol/index.scss b/weapp/src/packages/patrol/index.scss index e69de29b..b7338b0f 100644 --- a/weapp/src/packages/patrol/index.scss +++ b/weapp/src/packages/patrol/index.scss @@ -0,0 +1,116 @@ +.patrol { + height: 100vh; + width: 100vw; + background-color: #f6f6f6; + padding-top: 20px; + + .report-type { + height: 96px; + background-color: #fff; + margin-bottom: 20px; + display: flex; + justify-content: space-between; + align-items: center; + + .text { + margin-left: 30px; + } + + .radio { + margin-right: 30px; + } + } + + .input-picker { + display: flex; + justify-content: space-between; + align-items: center; + background-color: #fff; + margin-bottom: 5px; + + .img-r { + width: 24px; + height: 14px; + margin-right: 30px; + // margin-left: 10px; + } + .img-l { + width: 24px; + height: 14px; + } + } + + .patrol-picker { + background-color: #fff; + padding: 20px; + + } + + .conserve-picker { + background-color: #fff; + padding: 20px; + + .horizontal-line { + height: 30px; + width: 100%; + display: flex; + justify-content: left; + align-items: center; + + .circle { + margin-left: 4px; + width: 22px; + height: 22px; + background-color: #fff; + border-radius: 50%; + } + + .text { + margin-left: 46px; + font-size: 24px; + } + } + .hl-one { + background-color: #DFDFDF; + + .c-one { + border: solid 4px #999999; + } + + .t-one { + color: #999999; + } + } + .hl-two { + background-color: #f7d3a5; + + .c-two { + border: solid 4px #FE9B1C; + } + + .t-two { + color: #FE9B1C; + } + } + .hl-three { + background-color: #a0f3a4; + + .c-three { + border: solid 4px #08D514; + } + + .t-three { + color: #08D514; + } + } + + .img-picker { + margin: 20px; + } + } + + .sub-btn { + width: 70%; + margin-top: 100px; + } +} \ No newline at end of file diff --git a/weapp/src/packages/patrolView/index.config.js b/weapp/src/packages/patrolView/index.config.js new file mode 100644 index 00000000..e69de29b diff --git a/weapp/src/packages/patrolView/index.jsx b/weapp/src/packages/patrolView/index.jsx new file mode 100644 index 00000000..9dccd266 --- /dev/null +++ b/weapp/src/packages/patrolView/index.jsx @@ -0,0 +1,125 @@ +import React, { useState } from 'react' +import Taro, { useDidShow } from '@tarojs/taro' +import { View, Picker, Input, Image } from '@tarojs/components' +import moment from 'moment' +import './index.scss' +import NoData from '@/components/no-data/noData' +import chevronDown from '../../static/img/patrolView/chevron-down.png' +import searchIcon from '../../static/img/patrolView/search.png' +import cardImg from '../../static/img/patrolView/card-img.png' +import patrolIcon from '../../static/img/patrolView/patrol.svg' +import patrolActiveIcon from '../../static/img/patrolView/patrol-active.svg' +import conserveIcon from '../../static/img/patrolView/conserve.svg' +import conserveActiveIcon from '../../static/img/patrolView/conserve-active.svg' + +function Index() { + const [datePicker, setDatePicker] = useState(moment().format('YYYY-MM-DD')) + const [listData, setListData] = useState([]) + const [inputSite, setInputSite] = useState('') + const [page, setPage] = useState(0) + const [total, setTotal] = useState(0) + const [num, setNum] = useState(Math.random()) + const [systemInfo, setSystemInfo] = useState('') + + const data = [ + { + place: { + name: '飞尚' + }, + user: { + name: '用户1' + }, + time: '2022-7-1' + } + ] + + useDidShow(() => { + let refresh = Taro.getStorageSync('refresh'); // 返回列表需要刷新 + if (refresh) { + setPage(0) + setNum(Math.random()) + Taro.removeStorageSync('refresh'); // 返回列表需要刷新 + } + Taro.getSystemInfo({ + success: (res) => { + // windows | mac为pc端 + // android | ios为手机端 + setSystemInfo(res.platform); + } + }); + }) + + const onDateChange = e => { + setDatePicker(e.detail.value); + } + + const handleConfirm = () => { + setPage(0) + setListData([]); + setTotal(0); + setNum(Math.random()) + } + + const handleInput = e => { + setInputSite(e.detail.value); + if (!e.detail.value) { + setPage(0) + setListData([]); + setTotal(0); + setNum(Math.random()) + } + } + + return ( + + + + + 巡查 + + + + + 养护 + + + + + 日期: + + {datePicker || '请选择'} + + + + + + + + + + + { + data && data.length > 0 ? data && data.map((e, index) => { + return ( + handleDetail(index)}> + + + + {e.place.name} + + 填报人: + {e.user.name} + + {moment(e.time).format('YYYY-MM-DD HH:mm:ss')} + + + + ) + }) : + } + + + ) +} + +export default Index diff --git a/weapp/src/packages/patrolView/index.scss b/weapp/src/packages/patrolView/index.scss new file mode 100644 index 00000000..fc705a70 --- /dev/null +++ b/weapp/src/packages/patrolView/index.scss @@ -0,0 +1,135 @@ +page { + background-color: #f6f6f6; + + .type-box { + background-color: #fff; + height: 80px; + display: flex; + justify-content: space-around; + align-items: center; + + .item { + flex-grow: 1; + display: flex; + justify-content: center; + align-items: center; + + .type-img { + width: 40px; + height: 40px; + margin: 0 10px; + } + } + .line { + + width: 1px; + height: 30px; + background-color: #f6f6f6; + } + } + + .filter-box { + position: fixed; + top: 80px; + display: flex; + width: 100%; + z-index: 100; + background: #fff; + color: #999999; + font-size: 28rpx; + border-top: 2rpx solid #f6f6f6; + + .filter-item { + overflow: hidden; + height: 98rpx; + line-height: 98rpx; + flex: 1; + + .filter-name { + float: left; + // margin-left: 20rpx; + } + + .filter-img { + width: 14px; + height: 8px; + float: left; + margin: 46rpx 20rpx 18rpx 10rpx; + } + } + + .head-search { + width: 400rpx; + display: flex; + background: #fff; + padding: 10rpx 26rpx 15rpx; + box-sizing: border-box; + border-radius: 50rpx; + box-shadow: 0 8rpx 10rpx 0rpx #00000008; + border: 2rpx solid #00000011; + height: 68rpx; + line-height: 68rpx; + margin: 14rpx 30rpx 14rpx 0; + + .search-img { + width: 36rpx; + height: 36rpx; + margin-top: 5rpx; + } + + .heard-search-input { + margin-left: 26rpx; + font-size: 28rpx; + width: 100%; + color: #333; + } + } + } + + .cardBox { + width: 690rpx; + margin: 50rpx auto; + + .card-item { + position: relative; + margin-bottom: 10rpx; + + .card-bg { + width: 100%; + height: 260rpx; + display: block; + + } + + .card-position { + position: absolute; + top: 0; + left: 0; + width: 88%; + padding: 16rpx 0 16rpx 36rpx; + overflow: hidden; + text-align: justify; + + .card-title { + font-size: 28rpx; + color: #333333; + float: left; + margin-bottom: 30rpx; + width: 470rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin-top: 8rpx; + } + + .card-date { + float: left; + font-size: 28rpx; + color: #999999; + margin-top: 30rpx; + width: 100%; + } + } + } + } +} \ No newline at end of file diff --git a/weapp/src/pages/auth/login/login.scss b/weapp/src/pages/auth/login/login.scss index 647103f5..0a033c69 100644 --- a/weapp/src/pages/auth/login/login.scss +++ b/weapp/src/pages/auth/login/login.scss @@ -1,5 +1,3 @@ -@import "~taro-ui/dist/style/components/divider.scss"; - .page { height: 100vh; background: #fff; diff --git a/weapp/src/pages/home/index.jsx b/weapp/src/pages/home/index.jsx index 2ff925f4..95fa024b 100644 --- a/weapp/src/pages/home/index.jsx +++ b/weapp/src/pages/home/index.jsx @@ -12,12 +12,18 @@ const Index = () => { url: '/packages/patrol/index' }) } + function toPatrolView() { + Taro.navigateTo({ + url: '/packages/patrolView/index' + }) + } return ( 巡 查 养 护 - 填报 + {/* 填报 */} + 查看 ); diff --git a/weapp/src/pages/home/index.scss b/weapp/src/pages/home/index.scss index 4761576f..d9f40d1e 100644 --- a/weapp/src/pages/home/index.scss +++ b/weapp/src/pages/home/index.scss @@ -1,29 +1,29 @@ .page { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; - .fill { - margin-top: 30px; - padding: 10px; - width: 94%; - height: 360px; - background: url('../../static/img/patrol//fill-bg.svg') no-repeat; - background-size:100% 100%; - } + .fill { + margin-top: 30px; + padding: 10px; + width: 94%; + height: 360px; + background: url('../../static/img/home/fill-bg.svg') no-repeat; + background-size: 100% 100%; + } - .title { - margin: 50px 0 0 48px; - color: #fff; - font-size: 48px; - } + .title { + margin: 50px 0 0 48px; + color: #fff; + font-size: 48px; + } - .btn { - margin: 20px 0 0 50px; - color: #fff; - text-align: center; - width: 200px; - border: solid 1px #fff; - border-radius: 10px; - } + .btn { + margin: 30px 0 0 50px; + color: #fff; + text-align: center; + width: 200px; + border: solid 1px #fff; + border-radius: 10px; + } } \ No newline at end of file diff --git a/weapp/src/pages/user/index.jsx b/weapp/src/pages/user/index.jsx index 6c34502f..299a8eec 100644 --- a/weapp/src/pages/user/index.jsx +++ b/weapp/src/pages/user/index.jsx @@ -5,16 +5,22 @@ import { logout } from '@/actions/auth'; import { getLogoutUrl } from '@/services/api'; import cfg from '../../config'; import './index.scss'; +import headImg from '../../static/img/my/head.png'; +import moreImg from '../../static/img/my/more.svg'; +import pswdImg from '../../static/img/my/pswd.svg'; +import reportImg from '../../static/img/my/report.svg'; -import Common from '../../components/echartForWx/common'; - +import Common from '../../components/echartForWx/common'; // 如果这行删掉微信小程序编译就一直死循环,待解决 const { webUrl } = cfg; - const Index = ({ ...props }) => { const userInfo = Taro.getStorageSync('userInfo') || {}; + const goRedirect = () => { + + } + const onLogout = () => { logout(getLogoutUrl()).then(() => { Taro.reLaunch({ @@ -23,19 +29,33 @@ const Index = ({ ...props }) => { }); } - + return ( - - - - {userInfo.displayName || '----'} + + + + + {userInfo.displayName} + {userInfo.phone} + - - + goRedirect(1)}> + + 我的填报 + + + + goRedirect(2)} style={{ marginTop: '2rpx' }}> + + 修改密码 + + + 退出登录 + ); } diff --git a/weapp/src/pages/user/index.scss b/weapp/src/pages/user/index.scss index 5414ce90..8273e5a1 100644 --- a/weapp/src/pages/user/index.scss +++ b/weapp/src/pages/user/index.scss @@ -1,45 +1,92 @@ .page { height: 100vh; - background: #F0F2F5; - box-sizing: border-box; - - .personal { - padding: 20px; - - .info { - border-radius: 10px; - background: #fff; - height: 30vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - - .icon { - width: 150px; - height: 150px; - border-radius: 50%; + background: #f6f6f6; + display: flex; + flex-direction: column; + + .myBox { + width: 90%; + height: 300rpx; + margin: 30rpx auto; + background: url('../../static/img/my/card-bg.svg') no-repeat; + background-size: 100%; + border-radius: 8rpx; + + .my-top { + overflow: hidden; + padding: 70rpx 0 28rpx 30rpx; + + .my-portrait { + width: 120rpx; + height: 120rpx; + display: block; + float: left; } - .name { - font-size: 30px; - margin-top: 30px; + .my-item { + float: left; + margin-left: 32rpx; + width: 70%; + + .my-username { + font-size: 32rpx; + color: #FFFFFF; + margin-bottom: 24rpx; + margin-top: 6rpx; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + } + + .my-phone { + font-size: 28rpx; + font-weight: bold; + color: #FFFFFF; + } } } + } + + .box { + overflow: hidden; + background-color: #fff; + width: 100%; + height: 92rpx; + line-height: 92rpx; + + .box-img { + width: 52rpx; + height: 52rpx; + display: block; + float: left; + padding: 20rpx 20rpx 20rpx 30rpx; + } + .box-txt { + float: left; + font-size: 28rpx; + color: #333333; + } + .img { + width: 52rpx; + height: 52rpx; + display: block; + float: right; + padding: 20rpx 30rpx 20rpx 0; + } } .logout { - box-sizing: border-box; - width: 100vw; - margin-top: 50px; - padding: 0 20px; - - .btn { - background: #fff; - font-size: 28px; - padding: 8px 0; - } + width: 550rpx; + height: 80rpx; + line-height: 80rpx; + background: #346FC2; + border-radius: 8rpx; + font-size: 28rpx; + color: #FFFFFF; + margin: 98rpx auto 0; + text-align: center; } } \ No newline at end of file diff --git a/weapp/src/static/img/patrol/fill-bg.svg b/weapp/src/static/img/home/fill-bg.svg similarity index 100% rename from weapp/src/static/img/patrol/fill-bg.svg rename to weapp/src/static/img/home/fill-bg.svg diff --git a/weapp/src/static/img/my/card-bg.svg b/weapp/src/static/img/my/card-bg.svg new file mode 100644 index 00000000..914f3279 --- /dev/null +++ b/weapp/src/static/img/my/card-bg.svg @@ -0,0 +1,23 @@ + + + 形状结合 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/my/head.png b/weapp/src/static/img/my/head.png new file mode 100644 index 00000000..a354ae1a Binary files /dev/null and b/weapp/src/static/img/my/head.png differ diff --git a/weapp/src/static/img/my/more.svg b/weapp/src/static/img/my/more.svg new file mode 100644 index 00000000..fda19b75 --- /dev/null +++ b/weapp/src/static/img/my/more.svg @@ -0,0 +1,13 @@ + + + 切片 + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/my/pswd.svg b/weapp/src/static/img/my/pswd.svg new file mode 100644 index 00000000..31bbe81b --- /dev/null +++ b/weapp/src/static/img/my/pswd.svg @@ -0,0 +1,18 @@ + + + 切片 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/my/report.svg b/weapp/src/static/img/my/report.svg new file mode 100644 index 00000000..c4cdfc7c --- /dev/null +++ b/weapp/src/static/img/my/report.svg @@ -0,0 +1,14 @@ + + + 切片 + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrol/arrow-down.svg b/weapp/src/static/img/patrol/arrow-down.svg new file mode 100644 index 00000000..d543f363 --- /dev/null +++ b/weapp/src/static/img/patrol/arrow-down.svg @@ -0,0 +1,15 @@ + + + chevron-down + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/card-img.png b/weapp/src/static/img/patrolView/card-img.png new file mode 100644 index 00000000..9027dfbb Binary files /dev/null and b/weapp/src/static/img/patrolView/card-img.png differ diff --git a/weapp/src/static/img/patrolView/chevron-down.png b/weapp/src/static/img/patrolView/chevron-down.png new file mode 100644 index 00000000..abbb78ae Binary files /dev/null and b/weapp/src/static/img/patrolView/chevron-down.png differ diff --git a/weapp/src/static/img/patrolView/conserve-active.svg b/weapp/src/static/img/patrolView/conserve-active.svg new file mode 100644 index 00000000..9af62b14 --- /dev/null +++ b/weapp/src/static/img/patrolView/conserve-active.svg @@ -0,0 +1,30 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/conserve.svg b/weapp/src/static/img/patrolView/conserve.svg new file mode 100644 index 00000000..4025c704 --- /dev/null +++ b/weapp/src/static/img/patrolView/conserve.svg @@ -0,0 +1,32 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/patrol-active.svg b/weapp/src/static/img/patrolView/patrol-active.svg new file mode 100644 index 00000000..5d9003d9 --- /dev/null +++ b/weapp/src/static/img/patrolView/patrol-active.svg @@ -0,0 +1,29 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/patrol.svg b/weapp/src/static/img/patrolView/patrol.svg new file mode 100644 index 00000000..b77af261 --- /dev/null +++ b/weapp/src/static/img/patrolView/patrol.svg @@ -0,0 +1,27 @@ + + + 切片 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/weapp/src/static/img/patrolView/search.png b/weapp/src/static/img/patrolView/search.png new file mode 100644 index 00000000..15db47f2 Binary files /dev/null and b/weapp/src/static/img/patrolView/search.png differ diff --git a/web/client/assets/color.less b/web/client/assets/color.less index f684d0bc..83d90140 100644 --- a/web/client/assets/color.less +++ b/web/client/assets/color.less @@ -174,7 +174,7 @@ button::-moz-focus-inner, [type='submit']::-moz-focus-inner {border-style: none;} fieldset {border: 0;} legend {color: inherit;} -mark {background-color: color(~`colorPalette("@{table-fixed-header-sort-active-bg}", 1)`);} +mark {background-color: #feffe6;} ::selection {color: #fff;background: @primary-color;} .anticon {color: inherit;} .ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;} @@ -555,18 +555,6 @@ html {--antd-wave-shadow-color: @primary-color;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled], .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active {color: @disabled-color;border-color: @border-color-base;background: @disabled-bg;box-shadow: none;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child {color: currentcolor;} .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled] > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus > a:only-child::after, .ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active > a:only-child::after {background: transparent;} -a.ant-btn-disabled, -a.ant-btn-disabled:hover, -a.ant-btn-disabled:focus, -a.ant-btn-disabled:active {color: @disabled-color;border-color: transparent;background: transparent;box-shadow: none;} -a.ant-btn-disabled > a:only-child, -a.ant-btn-disabled:hover > a:only-child, -a.ant-btn-disabled:focus > a:only-child, -a.ant-btn-disabled:active > a:only-child {color: currentcolor;} -a.ant-btn-disabled > a:only-child::after, -a.ant-btn-disabled:hover > a:only-child::after, -a.ant-btn-disabled:focus > a:only-child::after, -a.ant-btn-disabled:active > a:only-child::after {background: transparent;} .ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child), .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary {border-right-color: color(~`colorPalette("@{primary-color}", 5)`);border-left-color: @border-color-base;} .ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled], .ant-btn-group-rtl.ant-btn-group .ant-btn-primary + .ant-btn-primary[disabled] {border-right-color: @border-color-base;border-left-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-picker-calendar {color: @text-color;background: @calendar-full-bg;} @@ -601,6 +589,7 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;} .ant-card-type-inner .ant-card-head {background: @background-color-light;} .ant-card-meta-title {color: @heading-color;} .ant-card-meta-description {color: @text-color-secondary;} +.ant-card-loading-block {background: linear-gradient(90deg, fade(@card-skeleton-bg, 20%), fade(@card-skeleton-bg, 40%), fade(@card-skeleton-bg, 20%));background-size: 600% 600%;border-radius: 2px;} .ant-carousel {color: @text-color;} .ant-carousel .slick-slider {-webkit-tap-highlight-color: transparent;} .ant-carousel .slick-prev, .ant-carousel .slick-next {color: transparent;background: transparent;border: 0;} @@ -674,10 +663,8 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;} .ant-comment-actions > li > span:hover {color: @comment-action-hover-color;} .ant-picker-status-error.ant-picker, .ant-picker-status-error.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #ff4d4f;} .ant-picker-status-error.ant-picker-focused, .ant-picker-status-error.ant-picker:focus {border-color: #ff7875;box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2);border-right-width: 1px;} -.ant-picker-status-error.ant-picker .ant-picker-active-bar {background: #ff7875;} .ant-picker-status-warning.ant-picker, .ant-picker-status-warning.ant-picker:not([disabled]):hover {background-color: @input-bg;border-color: #faad14;} .ant-picker-status-warning.ant-picker-focused, .ant-picker-status-warning.ant-picker:focus {border-color: #ffc53d;box-shadow: 0 0 0 2px rgba(250, 173, 20, 0.2);border-right-width: 1px;} -.ant-picker-status-warning.ant-picker .ant-picker-active-bar {background: #ffc53d;} .ant-picker {color: @text-color;background: @picker-bg;border: 1px solid @border-color-base;border-radius: 2px;} .ant-picker:hover, .ant-picker-focused {border-color: color(~`colorPalette("@{primary-color}", 5)`);border-right-width: 1px;} .ant-input-rtl .ant-picker:hover, .ant-input-rtl .ant-picker-focused {border-right-width: 0;border-left-width: 1px !important;} @@ -708,7 +695,7 @@ a.ant-btn-disabled:active > a:only-child::after {background: transparent;} .ant-picker-range .ant-picker-active-bar {background: @primary-color;} .ant-picker-dropdown {color: @text-color;} .ant-picker-ranges .ant-picker-preset > .ant-tag-blue {color: @primary-color;background: color(~`colorPalette("@{primary-color}", 1)`);border-color: color(~`colorPalette("@{primary-color}", 3)`);} -.ant-picker-range-arrow {box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);border-radius: 0 0 2px;} +.ant-picker-range-arrow {background: linear-gradient(135deg, transparent 40%, @calendar-bg 40%);box-shadow: 2px 2px 6px -2px rgba(0, 0, 0, 0.1);border-radius: 0 0 2px;} .ant-picker-range-arrow::before {background: @calendar-bg;background-repeat: no-repeat;background-position: -10px -10px;} .ant-picker-panel-container {background: @calendar-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);} .ant-picker-panel-container .ant-picker-panel {background: transparent;border-width: 0 0 1px 0;border-radius: 0;} @@ -814,7 +801,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-dropdown-menu-item.ant-dropdown-menu-item-danger {color: #ff4d4f;} .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover {color: #fff;background-color: #ff4d4f;} .ant-dropdown {color: @text-color;} -.ant-dropdown-arrow {border-radius: 0 0 2px;} +.ant-dropdown-arrow {background: linear-gradient(135deg, transparent 40%, @popover-bg 40%);border-radius: 0 0 2px;} .ant-dropdown-arrow::before {background: @popover-bg;background-repeat: no-repeat;background-position: -10px -10px;} .ant-dropdown-placement-top > .ant-dropdown-arrow, .ant-dropdown-placement-topLeft > .ant-dropdown-arrow, .ant-dropdown-placement-topRight > .ant-dropdown-arrow {box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.1);} .ant-dropdown-placement-bottom > .ant-dropdown-arrow, .ant-dropdown-placement-bottomLeft > .ant-dropdown-arrow, .ant-dropdown-placement-bottomRight > .ant-dropdown-arrow {box-shadow: 2px 2px 5px -2px rgba(0, 0, 0, 0.1);} @@ -949,7 +936,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;} .ant-input-group > .ant-input-rtl:first-child, .ant-input-group-rtl .ant-input-group-addon:first-child {border-radius: 0 2px 2px 0;} .ant-input-group-rtl .ant-input-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;} -.ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} +.ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;} .ant-input-group-rtl.ant-input-group > .ant-input:last-child, .ant-input-group-rtl.ant-input-group-addon:last-child {border-radius: 2px 0 0 2px;} .ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;} .ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;} @@ -957,10 +944,6 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:first-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;} .ant-input-group-rtl.ant-input-group.ant-input-group-compact > *:last-child, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-group-rtl.ant-input-group.ant-input-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;} .ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;} -.ant-input-group > .ant-input-rtl:first-child {border-radius: 0 2px 2px 0;} -.ant-input-group > .ant-input-rtl:last-child {border-radius: 2px 0 0 2px;} -.ant-input-group-rtl .ant-input-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;border-radius: 0 2px 2px 0;} -.ant-input-group-rtl .ant-input-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} .ant-input-password-icon.anticon {color: @text-color-secondary;} .ant-input-password-icon.anticon:hover {color: @input-icon-hover-color;} .ant-input-textarea-show-count::after {color: @text-color-secondary;} @@ -1046,7 +1029,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 2px 0 0 2px;} .ant-input-number-group > .ant-input-number-rtl:first-child, .ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-radius: 0 2px 2px 0;} .ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;} -.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} +.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;} .ant-input-number-group-rtl.ant-input-number-group > .ant-input-number:last-child, .ant-input-number-group-rtl.ant-input-number-group-addon:last-child {border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child) {border-radius: 2px 0 0 2px;} .ant-input-number-group-rtl.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child) {border-radius: 0 2px 2px 0;} @@ -1054,10 +1037,6 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:first-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:first-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:first-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:first-child .ant-input {border-radius: 0 2px 2px 0;} .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > *:last-child, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select:last-child > .ant-select-selector, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-select-auto-complete:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker:last-child .ant-input, .ant-input-number-group-rtl.ant-input-number-group.ant-input-number-group-compact > .ant-cascader-picker-focused:last-child .ant-input {border-left-width: 1px;border-radius: 2px 0 0 2px;} .ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search > .ant-input-group > .ant-input {border-radius: 0 2px 2px 0;} -.ant-input-number-group > .ant-input-number-rtl:first-child {border-radius: 0 2px 2px 0;} -.ant-input-number-group > .ant-input-number-rtl:last-child {border-radius: 2px 0 0 2px;} -.ant-input-number-group-rtl .ant-input-number-group-addon:first-child {border-right: 1px solid @border-color-base;border-left: 0;border-radius: 0 2px 2px 0;} -.ant-input-number-group-rtl .ant-input-number-group-addon:last-child {border-right: 0;border-left: 1px solid @border-color-base;border-radius: 2px 0 0 2px;} .ant-input-number-handler {color: @text-color-secondary;border-left: 1px solid @border-color-base;} .ant-input-number-handler:active {background: @input-number-handler-active-bg;} .ant-input-number-handler:hover .ant-input-number-handler-up-inner, .ant-input-number-handler:hover .ant-input-number-handler-down-inner {color: color(~`colorPalette("@{primary-color}", 5)`);} @@ -1149,10 +1128,10 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} -.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{radio-dot-disabled-color}", 1)`);} +.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{menu-popup-bg}", 2)`);} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{radio-dot-disabled-color}", 1)`);} +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{menu-popup-bg}", 2)`);} .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;} @@ -1313,8 +1292,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-pagination-simple .ant-pagination-simple-pager input:hover {border-color: @primary-color;} .ant-pagination-simple .ant-pagination-simple-pager input:focus {border-color: color(~`colorPalette("@{primary-color}", 5)`);box-shadow: 0 0 0 2px fade(@primary-color, 20%);} .ant-pagination-simple .ant-pagination-simple-pager input[disabled] {color: @disabled-color;background: @disabled-bg;border-color: @border-color-base;} -.ant-pagination.ant-pagination-mini .ant-pagination-item:not(.ant-pagination-item-active) {background: transparent;border-color: transparent;} -.ant-pagination.ant-pagination-mini .ant-pagination-prev .ant-pagination-item-link, .ant-pagination.ant-pagination-mini .ant-pagination-next .ant-pagination-item-link {background: transparent;border-color: transparent;} +.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active) {background: transparent;border-color: transparent;} +.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link, .ant-pagination.mini .ant-pagination-next .ant-pagination-item-link {background: transparent;border-color: transparent;} .ant-pagination.ant-pagination-disabled .ant-pagination-item {background: @disabled-bg;border-color: @border-color-base;} .ant-pagination.ant-pagination-disabled .ant-pagination-item a {color: @disabled-color;background: transparent;border: none;} .ant-pagination.ant-pagination-disabled .ant-pagination-item-active {background: @pagination-item-disabled-bg-active;} @@ -1330,8 +1309,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-popover-message {color: @text-color;} .ant-popover-message > .anticon {color: #faad14;} .ant-popover-arrow {background: transparent;} -.ant-popover-arrow-content {--antd-arrow-background-color: @popover-bg;border-radius: 0 0 2px;} -.ant-popover-arrow-content::before {background: var(--antd-arrow-background-color);background-repeat: no-repeat;background-position: -10px -10px;} +.ant-popover-arrow-content {background-color: @popover-bg;border-radius: 0 0 2px;} +.ant-popover-arrow-content::before {background: @popover-bg;background-repeat: no-repeat;background-position: -10px -10px;} .ant-popover-placement-top .ant-popover-arrow-content, .ant-popover-placement-topLeft .ant-popover-arrow-content, .ant-popover-placement-topRight .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-popover-placement-right .ant-popover-arrow-content, .ant-popover-placement-rightTop .ant-popover-arrow-content, .ant-popover-placement-rightBottom .ant-popover-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-popover-placement-bottom .ant-popover-arrow-content, .ant-popover-placement-bottomLeft .ant-popover-arrow-content, .ant-popover-placement-bottomRight .ant-popover-arrow-content {box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.06);} @@ -1387,13 +1366,12 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-radio-wrapper {color: @text-color;} .ant-radio {color: @text-color;} .ant-radio-wrapper:hover .ant-radio, .ant-radio:hover .ant-radio-inner, .ant-radio-input:focus + .ant-radio-inner {border-color: @primary-color;} -.ant-radio-input:focus + .ant-radio-inner {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} +.ant-radio-input:focus + .ant-radio-inner {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);} .ant-radio-checked::after {border: 1px solid @primary-color;border-radius: 50%;animation-fill-mode: both;} .ant-radio-inner {background-color: @btn-default-bg;border-color: @border-color-base;border-style: solid;border-width: 1px;border-radius: 50%;} .ant-radio-inner::after {background-color: @primary-color;border-top: 0;border-left: 0;border-radius: 16px;} -.ant-radio.ant-radio-disabled .ant-radio-inner {border-color: @border-color-base;} .ant-radio-checked .ant-radio-inner {border-color: @primary-color;} -.ant-radio-disabled .ant-radio-inner {background-color: @disabled-bg;} +.ant-radio-disabled .ant-radio-inner {background-color: @disabled-bg;border-color: @border-color-base !important;} .ant-radio-disabled .ant-radio-inner::after {background-color: @radio-dot-disabled-color;} .ant-radio-disabled + span {color: @disabled-color;} .ant-radio-button-wrapper {color: @text-color;background: @btn-default-bg;border: 1px solid @border-color-base;border-top-width: 1.02px;border-left-width: 0;} @@ -1403,7 +1381,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-radio-button-wrapper:last-child {border-radius: 0 2px 2px 0;} .ant-radio-button-wrapper:first-child:last-child {border-radius: 2px;} .ant-radio-button-wrapper:hover {color: @primary-color;} -.ant-radio-button-wrapper:focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} +.ant-radio-button-wrapper:focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @primary-color;background: @btn-default-bg;border-color: @primary-color;} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {background-color: @primary-color;} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child {border-color: @primary-color;} @@ -1411,11 +1389,11 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover::before {background-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);} .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active::before {background-color: color(~`colorPalette("@{primary-color}", 7)`);} -.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} +.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {color: @radio-solid-checked-color;background: @primary-color;border-color: @primary-color;} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 5)`);border-color: color(~`colorPalette("@{primary-color}", 5)`);} .ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active {color: @radio-solid-checked-color;background: color(~`colorPalette("@{primary-color}", 7)`);border-color: color(~`colorPalette("@{primary-color}", 7)`);} -.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px fade(@primary-color, 12%);} +.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {box-shadow: 0 0 0 3px color(~`colorPalette("@{primary-color}", 1)`);} .ant-radio-button-wrapper-disabled {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;} .ant-radio-button-wrapper-disabled:first-child, .ant-radio-button-wrapper-disabled:hover {color: @disabled-color;background-color: @disabled-bg;border-color: @border-color-base;} .ant-radio-button-wrapper-disabled:first-child {border-left-color: @border-color-base;} @@ -1482,11 +1460,14 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle {border-radius: 50%;} .ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle {border-radius: 50%;} .ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle {border-radius: 50%;} -.ant-skeleton-content .ant-skeleton-title {background: @skeleton-color;border-radius: 2px;} -.ant-skeleton-content .ant-skeleton-paragraph > li {background: @skeleton-color;border-radius: 2px;} +.ant-skeleton-content .ant-skeleton-title {background: @skeleton-color;border-radius: 4px;} +.ant-skeleton-content .ant-skeleton-paragraph > li {background: @skeleton-color;border-radius: 4px;} .ant-skeleton-round .ant-skeleton-content .ant-skeleton-title, .ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph > li {border-radius: 100px;} -.ant-skeleton-active .ant-skeleton-title, .ant-skeleton-active .ant-skeleton-paragraph > li, .ant-skeleton-active .ant-skeleton-avatar, .ant-skeleton-active .ant-skeleton-button, .ant-skeleton-active .ant-skeleton-input, .ant-skeleton-active .ant-skeleton-image {background: transparent;} -.ant-skeleton-active .ant-skeleton-title::after, .ant-skeleton-active .ant-skeleton-paragraph > li::after, .ant-skeleton-active .ant-skeleton-avatar::after, .ant-skeleton-active .ant-skeleton-button::after, .ant-skeleton-active .ant-skeleton-input::after, .ant-skeleton-active .ant-skeleton-image::after {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);} +.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title, .ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph > li {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;} +.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;} +.ant-skeleton.ant-skeleton-active .ant-skeleton-button {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;} +.ant-skeleton.ant-skeleton-active .ant-skeleton-input {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;} +.ant-skeleton.ant-skeleton-active .ant-skeleton-image {background: linear-gradient(90deg, @skeleton-color 25%, @skeleton-to-color 37%, @skeleton-color 63%);background-size: 400% 100%;} .ant-skeleton-element .ant-skeleton-button {background: @skeleton-color;border-radius: 2px;} .ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle {border-radius: 50%;} .ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round {border-radius: 32px;} @@ -1603,7 +1584,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-expanded-row > td, .ant-table.ant-table-bordered.ant-table-scroll-horizontal > .ant-table-container > .ant-table-body > table > tbody > tr.ant-table-placeholder > td {border-right: 0;} .ant-table.ant-table-bordered > .ant-table-footer {border: 1px solid @border-color-split;border-top: 0;} .ant-table-cell .ant-table-container:first-child {border-top: 0;} -.ant-table-cell-scrollbar:not([rowspan]) {box-shadow: 0 1px 0 1px @table-header-bg;} +.ant-table-cell-scrollbar {box-shadow: 0 1px 0 1px @table-header-bg;} .ant-table {color: @text-color;background: @component-background;border-radius: 2px;} .ant-table table {border-radius: 2px 2px 0 0;border-collapse: separate;border-spacing: 0;} .ant-table-footer {color: @heading-color;background: @background-color-light;} @@ -1654,10 +1635,10 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-table-empty .ant-table-tbody > tr.ant-table-placeholder {color: @disabled-color;} .ant-table-tbody > tr.ant-table-placeholder:hover > td {background: @component-background;} .ant-table-cell-fix-left, .ant-table-cell-fix-right {background: @component-background;} -.ant-table-ping-left:not(.ant-table-has-fix-left) > .ant-table-container::before {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);} +.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container::before {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-left .ant-table-cell-fix-left-first::after, .ant-table-ping-left .ant-table-cell-fix-left-last::after {box-shadow: inset 10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-left .ant-table-cell-fix-left-last::before {background-color: transparent !important;} -.ant-table-ping-right:not(.ant-table-has-fix-right) > .ant-table-container::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);} +.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-ping-right .ant-table-cell-fix-right-first::after, .ant-table-ping-right .ant-table-cell-fix-right-last::after {box-shadow: inset -10px 0 8px -8px darken(@shadow-color, 5%);} .ant-table-sticky-holder {background: @component-background;} .ant-table-sticky-scroll {background: lighten(@table-border-color, 80%);border-top: 1px solid @border-color-split;} @@ -1666,7 +1647,6 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-table-sticky-scroll-bar-active {background-color: fade(@table-sticky-scroll-bar-bg, 80%);} .ant-table-title {border-radius: 2px 2px 0 0;} .ant-table-title + .ant-table-container {border-top-left-radius: 0;border-top-right-radius: 0;} -.ant-table-title + .ant-table-container table {border-radius: 0;} .ant-table-title + .ant-table-container table > thead > tr:first-child th:first-child {border-radius: 0;} .ant-table-title + .ant-table-container table > thead > tr:first-child th:last-child {border-radius: 0;} .ant-table-container {border-top-left-radius: 2px;border-top-right-radius: 2px;} @@ -1722,31 +1702,43 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} -.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{alert-info-bg-color}", 1)`);border-color: #ffadd2;} +<<<<<<< HEAD +.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #ffadd2;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{alert-info-bg-color}", 1)`);border-color: #ffadd2;} +.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #ffadd2;} +======= +.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{timeline-color}", 4)`);border-color: #ffadd2;} +.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} +.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{timeline-color}", 4)`);border-color: #ffadd2;} +>>>>>>> 65cf2722eec21e1d07ce958f4298eec7ae620c85 .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{radio-dot-disabled-color}", 1)`);border-color: #ffa39e;} +.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{menu-popup-bg}", 2)`);border-color: #ffa39e;} .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;} .ant-tag-orange {color: #d46b08;background: #fff7e6;border-color: #ffd591;} .ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;} -.ant-tag-yellow {color: #d4b106;background: color(~`colorPalette("@{table-fixed-header-sort-active-bg}", 1)`);border-color: #fffb8f;} +.ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} -.ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} +.ant-tag-gold {color: #d48806;background: color(~`colorPalette("@{skeleton-color}", 1)`);border-color: #ffe58f;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} -.ant-tag-cyan {color: #08979c;background: color(~`colorPalette("@{avatar-bg}", 1)`);border-color: #87e8de;} +.ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} .ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} -.ant-tag-blue {color: #096dd9;background: color(~`colorPalette("@{radio-dot-disabled-color}", 1)`);border-color: #91d5ff;} +.ant-tag-blue {color: #096dd9;background: color(~`colorPalette("@{progress-steps-item-bg}", 1)`);border-color: #91d5ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{descriptions-bg}", 2)`);border-color: #adc6ff;} +<<<<<<< HEAD +.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{success-color-deprecated-border}", 1)`);border-color: #adc6ff;} +.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} +.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{progress-steps-item-bg}", 3)`);border-color: #d3adf7;} +======= +.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{popover-background}", 3)`);border-color: #adc6ff;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{calendar-bg}", 1)`);border-color: #d3adf7;} +.ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;} +>>>>>>> 65cf2722eec21e1d07ce958f4298eec7ae620c85 .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;} @@ -1769,7 +1761,7 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tooltip {color: @text-color;} .ant-tooltip-inner {color: #fff;background-color: @tooltip-bg;border-radius: 2px;box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);} .ant-tooltip-arrow {background: transparent;} -.ant-tooltip-arrow-content {--antd-arrow-background-color: linear-gradient(to right bottom, fadeout(@tooltip-bg, 10%), @tooltip-bg);border-radius: 0 0 2px;} +.ant-tooltip-arrow-content {--antd-arrow-background-color: linear-gradient(to right bottom, fadeout(@tooltip-bg, 10%), @tooltip-bg);background-color: transparent;border-radius: 0 0 2px;} .ant-tooltip-arrow-content::before {background: var(--antd-arrow-background-color);background-repeat: no-repeat;background-position: -10px -10px;} .ant-tooltip-placement-top .ant-tooltip-arrow-content, .ant-tooltip-placement-topLeft .ant-tooltip-arrow-content, .ant-tooltip-placement-topRight .ant-tooltip-arrow-content {box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.07);} .ant-tooltip-placement-right .ant-tooltip-arrow-content, .ant-tooltip-placement-rightTop .ant-tooltip-arrow-content, .ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content {box-shadow: -3px 3px 7px rgba(0, 0, 0, 0.07);} @@ -1959,7 +1951,6 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography .ant-typography pre code {background: transparent;border: 0;} .ant-typography blockquote {border-left: 4px solid rgba(100, 100, 100, 0.2);} .ant-upload {color: @text-color;} -.ant-upload.ant-upload-disabled {color: @disabled-color;} .ant-upload.ant-upload-select-picture-card {background-color: @background-color-light;border: 1px dashed @border-color-base;border-radius: 2px;} .ant-upload.ant-upload-select-picture-card:hover {border-color: @primary-color;} .ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover {border-color: @border-color-base;} @@ -1984,12 +1975,13 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography .ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;} .ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;} -.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{radio-dot-disabled-color}", 1)`)'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{radio-dot-disabled-color}", 1)`)'] {fill: @error-color-deprecated-bg;} +.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{progress-steps-item-bg}", 1)`)'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='color(~`colorPalette("@{progress-steps-item-bg}", 1)`)'] {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);} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {color: #fff;} .ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {background-color: @background-color-light;} +.ant-upload-list .ant-upload-animate-inline-appear, .ant-upload-list .ant-upload-animate-inline-enter, .ant-upload-list .ant-upload-animate-inline-leave {animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);} .ant-pro-table-search {background-color: @component-background !important;} .bezierEasingMixin() { @functions: ~`(function() {var NEWTON_ITERATIONS = 4;var NEWTON_MIN_SLOPE = 0.001;var SUBDIVISION_PRECISION = 0.0000001;var SUBDIVISION_MAX_ITERATIONS = 10;var kSplineTableSize = 11;var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);var float32ArraySupported = typeof Float32Array === 'function';function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } @@ -2439,8 +2431,7 @@ this.tinycolor = tinycolor;})()`;} .colorPaletteMixin() { @functions: ~`(function() {var hueStep = 2;var saturationStep = 0.16;var saturationStep2 = 0.05;var brightnessStep1 = 0.05;var brightnessStep2 = 0.15;var lightColorCount = 5;var darkColorCount = 4;var getHue = function(hsv, i, isLight) {var hue;if (hsv.h >= 60 && hsv.h <= 240) {hue = isLight ? hsv.h - hueStep * i : hsv.h + hueStep * i;} else {hue = isLight ? hsv.h + hueStep * i : hsv.h - hueStep * i;} if (hue < 0) {hue += 360;} else if (hue >= 360) {hue -= 360;} - return Math.round(hue);};var getSaturation = function(hsv, i, isLight) {if (hsv.h === 0 && hsv.s === 0) {return hsv.s;} - var saturation;if (isLight) {saturation = hsv.s - saturationStep * i;} else if (i === darkColorCount) {saturation = hsv.s + saturationStep;} else {saturation = hsv.s + saturationStep2 * i;} + return Math.round(hue);};var getSaturation = function(hsv, i, isLight) {var saturation;if (isLight) {saturation = hsv.s - saturationStep * i;} else if (i === darkColorCount) {saturation = hsv.s + saturationStep;} else {saturation = hsv.s + saturationStep2 * i;} if (saturation > 1) {saturation = 1;} if (isLight && i === lightColorCount && saturation > 0.1) {saturation = 0.1;} if (saturation < 0.06) {saturation = 0.06;} @@ -2897,7 +2888,7 @@ this.tinycolor = tinycolor;})()`;} @cascader-dropdown-line-height: @dropdown-line-height; @anchor-bg: transparent; @anchor-border-color: @border-color-split; -@anchor-link-top: 4px; +@anchor-link-top: 7px; @anchor-link-left: 16px; @anchor-link-padding: @anchor-link-top 0 @anchor-link-top @anchor-link-left; @tooltip-max-width: 250px; @@ -2922,7 +2913,7 @@ this.tinycolor = tinycolor;})()`;} @modal-header-border-style: @border-style-base; @modal-header-title-line-height: 22px; @modal-header-title-font-size: @font-size-lg; -@modal-header-close-size: @modal-header-title-line-height + 2 * @modal-header-padding-vertical; +@modal-header-close-size: 56px; @modal-heading-color: @heading-color; @modal-close-color: @text-color-secondary; @modal-footer-bg: transparent; @@ -2933,7 +2924,6 @@ this.tinycolor = tinycolor;})()`;} @modal-mask-bg: fade(@black, 45%); @modal-confirm-body-padding: 32px 32px 24px; @modal-confirm-title-font-size: @font-size-lg; -@modal-border-radius: @border-radius-base; @progress-default-color: @processing-color; @progress-remaining-color: @background-color-base; @progress-info-text-color: @progress-text-color; diff --git a/web/client/assets/images/leadership/di.png b/web/client/assets/images/leadership/di.png new file mode 100644 index 00000000..82da9cd7 Binary files /dev/null and b/web/client/assets/images/leadership/di.png differ diff --git a/web/client/assets/images/leadership/jiejue.png b/web/client/assets/images/leadership/jiejue.png new file mode 100644 index 00000000..fe38485c Binary files /dev/null and b/web/client/assets/images/leadership/jiejue.png differ diff --git a/web/client/assets/images/leadership/mingri.png b/web/client/assets/images/leadership/mingri.png new file mode 100644 index 00000000..3699687a Binary files /dev/null and b/web/client/assets/images/leadership/mingri.png differ diff --git a/web/client/assets/images/leadership/pingshi.png b/web/client/assets/images/leadership/pingshi.png new file mode 100644 index 00000000..9fb3a859 Binary files /dev/null and b/web/client/assets/images/leadership/pingshi.png differ diff --git a/web/client/assets/images/leadership/road.png b/web/client/assets/images/leadership/road.png new file mode 100644 index 00000000..3ac9c233 Binary files /dev/null and b/web/client/assets/images/leadership/road.png differ diff --git a/web/client/assets/images/leadership/shiyantu.png b/web/client/assets/images/leadership/shiyantu.png new file mode 100644 index 00000000..a8ed7993 Binary files /dev/null and b/web/client/assets/images/leadership/shiyantu.png differ diff --git a/web/client/assets/images/leadership/zibiaoti.png b/web/client/assets/images/leadership/zibiaoti.png new file mode 100644 index 00000000..333214a9 Binary files /dev/null and b/web/client/assets/images/leadership/zibiaoti.png differ diff --git a/web/client/assets/images/quanju/circle2.png b/web/client/assets/images/quanju/circle2.png new file mode 100644 index 00000000..ee584235 Binary files /dev/null and b/web/client/assets/images/quanju/circle2.png differ diff --git a/web/client/assets/images/quanju/kelvhua_bdbg.png b/web/client/assets/images/quanju/kelvhua_bdbg.png new file mode 100644 index 00000000..6cb1b42c Binary files /dev/null and b/web/client/assets/images/quanju/kelvhua_bdbg.png differ diff --git a/web/client/src/sections/fillion/actions/infor.js b/web/client/src/sections/fillion/actions/infor.js index 17872957..d68042e8 100644 --- a/web/client/src/sections/fillion/actions/infor.js +++ b/web/client/src/sections/fillion/actions/infor.js @@ -11,14 +11,81 @@ export function getDepMessage() { reducer: { name: 'depMessage' } }); } -export function getReportStatistic(query) { +// export function getReportStatistic(query) { +// return dispatch => basicAction({ +// type: 'get', +// dispatch: dispatch, +// query: query, +// actionType: 'GET_DEPARTMENT_STATIS', +// url: ApiTable.getReportStatistic, +// msg: { error: '获取填报信息失败' }, +// reducer: { name: 'reportstatistic' } +// }); + +// } +export function getOperaTional(query) { return dispatch => basicAction({ type: 'get', dispatch: dispatch, query: query, - actionType: 'GET_DEPARTMENT_STATIS', - url: ApiTable.getReportStatistic, - msg: { error: '获取填报信息失败' }, - reducer: { name: 'reportstatistic' } + actionType: 'GET_OPERA_TIONAL', + url: ApiTable.getOperaTional, + msg: { error: '获取客运信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getSpecificVehicle(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_SPECIFIC_VEHICLE', + url: ApiTable.getSpecificVehicle, + msg: { error: '获取车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getHouseholds(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_HOUSEHOLDS', + url: ApiTable.getHouseholds, + msg: { error: '获取业户信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getRoadway(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_ROADWAY', + url: ApiTable.getRoadway, + msg: { error: '获取道路信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getBridge(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_BRIDGE', + url: ApiTable.getBridge, + msg: { error: '获取桥梁信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getProject(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_PROJECT', + url: ApiTable.getProject, + msg: { error: '获取工程信息失败' }, + // reducer: { name: 'reportstatistic' } }); } \ No newline at end of file diff --git a/web/client/src/sections/fillion/components/bridgeTable.js b/web/client/src/sections/fillion/components/bridgeTable.js index 7dab06ad..1e5afe22 100644 --- a/web/client/src/sections/fillion/components/bridgeTable.js +++ b/web/client/src/sections/fillion/components/bridgeTable.js @@ -4,21 +4,1523 @@ 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 { getBridge, getProject } from "../actions/infor" +import UserModal from './infor/details'; + const BrideTable = (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 [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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + const [activeKey, setActiveKey] = useState('tab1'); + + const columns = { + tab1: [ + { + title: '桥梁代码', + dataIndex: 'placeName', + fixed: 'left', + width: 120, + options: 1, + backgroundColor: "#ffffff", + fieldProps: { + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, + placeholder: '请输入桥梁代码进行搜索', + getPopupContainer: (triggerNode) => triggerNode.parentNode, + }, + }, + { + title: '桥梁名称', + search: false, + dataIndex: 'containers', + + fixed: 'left', + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '中心桩号', + search: false, + dataIndex: 'time2', + valueType: 'dateRange', + // align: 'right', + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '跨越地物类型', + search: false, + dataIndex: 'time3', + valueType: 'dateRange', + + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨越地物名称', + search: false, + dataIndex: 'time4', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '收费性质', + search: false, + dataIndex: 'time5', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '匝道编码', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路段类型', + search: false, + dataIndex: 'time7', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨越地物类型1', + search: false, + dataIndex: 'time8', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨越地物名称1', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '原桥梁代码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否宽路窄桥', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否在长大桥梁目录中', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否跨省桥梁', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '互通类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '互通形式', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '互通交叉方式', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥梁分类', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥梁全长', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径总长', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '主桥主跨', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '主桥孔数', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径组合', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥梁性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '设计荷载等级', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上部结构', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上部结构材料', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥面铺装类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥面宽', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥面净宽', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥下净空', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '抗震等级', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '通航等级', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥台类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥墩类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '墩台防撞设施类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '伸缩缝类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '支座类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '弯坡斜特征', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桥梁高度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '人行道宽度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '建设单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '建成时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '通车日期', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '改建时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '总造价', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '设计单位名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '施工单位名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '监理单位名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '建设性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '评定日期', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '技术状况评定', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '评定单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '主要病害位置', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '病害描述', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '采取管制措施', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '最近定期检查日期', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '管养单位性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '管养单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '监管单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '改造施工单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否部补助项目', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '工程性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '改造部位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '改造完工日期', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '年份1', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径组合1', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '投资1', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '年份2', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径组合2', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '投资2', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '年份3', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径组合3', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '投资3', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '年份4', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '跨径组合4', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '投资4', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '年份5', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '跨径组合5', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '投资5', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划资金类别', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划文号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目唯一编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工情况', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变更原因', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变更时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '填报单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '备注', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否跨线桥', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否线外桥', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否危桥改造', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所在区县', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所在地市', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '操作', + dataIndex: 'creatTime', + valueType: 'dateTimeRange', + hideInSearch: true, + width: 120, + fixed: 'right', + render: (dom, record) => { + return
+ + } + }, + { + key: "direction", + hideInTable: true, + dataIndex: "direction", + order: 6, + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { + return ( +
+ +
- const columns = - [ + + ); + }, + }, + ], tab2: [ { title: '桥梁代码', dataIndex: 'placeName', @@ -67,7 +1569,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time3', valueType: 'dateRange', - initialValue: day, + width: 120, @@ -82,7 +1584,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -96,7 +1598,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -110,7 +1612,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time6', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -124,7 +1626,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time7', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -138,7 +1640,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time8', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -152,7 +1654,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -167,7 +1669,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -182,7 +1684,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -197,7 +1699,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -212,7 +1714,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -227,7 +1729,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -242,7 +1744,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -257,7 +1759,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -272,7 +1774,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -287,7 +1789,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -302,7 +1804,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -317,7 +1819,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -332,7 +1834,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -347,7 +1849,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -362,7 +1864,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -377,7 +1879,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -392,7 +1894,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -407,7 +1909,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -422,7 +1924,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -437,7 +1939,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -452,7 +1954,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -467,7 +1969,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -482,7 +1984,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -497,7 +1999,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -512,7 +2014,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -527,7 +2029,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -542,7 +2044,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -557,7 +2059,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -572,7 +2074,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -587,7 +2089,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -602,7 +2104,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -617,7 +2119,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -632,7 +2134,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -647,7 +2149,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -662,7 +2164,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -677,7 +2179,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -692,7 +2194,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -707,7 +2209,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -722,7 +2224,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -737,7 +2239,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -752,7 +2254,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -767,7 +2269,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -782,7 +2284,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -797,7 +2299,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -812,7 +2314,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -827,7 +2329,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -842,7 +2344,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -857,7 +2359,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -872,7 +2374,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -887,7 +2389,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -902,7 +2404,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -917,7 +2419,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -932,7 +2434,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -947,7 +2449,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -962,7 +2464,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -977,7 +2479,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -992,7 +2494,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1007,7 +2509,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1022,7 +2524,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1037,7 +2539,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1052,7 +2554,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1067,7 +2569,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1082,7 +2584,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1097,7 +2599,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1112,7 +2614,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1127,7 +2629,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1143,7 +2645,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1158,7 +2660,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1173,7 +2675,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1188,7 +2690,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1203,7 +2705,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1218,7 +2720,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1233,7 +2735,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1248,7 +2750,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1263,7 +2765,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1278,7 +2780,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1293,7 +2795,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1308,7 +2810,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1323,7 +2825,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1338,7 +2840,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1353,7 +2855,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1368,7 +2870,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1383,7 +2885,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1398,7 +2900,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1413,7 +2915,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1428,7 +2930,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1443,7 +2945,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1458,7 +2960,7 @@ const BrideTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1477,7 +2979,13 @@ const BrideTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
+ return
} }, @@ -1486,13 +2994,14 @@ const BrideTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
@@ -1513,22 +3020,85 @@ const BrideTable = (props) => { }, }, ] + } +const requestBridge=()=>{ + const query = { + } + setRowSelected([]); + const res = dispatch(getBridge(query)); + setCounts(res.payload.data) +} +//工程数据 +const requestProject=()=>{ + const query = { + type:'桥梁' + } + setRowSelected([]); + const res =dispatch(getProject(query)); + setCounts(res.payload.data) + } + //打开弹窗 + const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) + } return (
setActiveKey(key), + items: [ + { + key: 'tab1', + label: requestBridge()}>桥梁{activeKey === 'tab1'}, + }, + { + key: 'tab2', + label: requestProject()}>工程一览{activeKey === 'tab2'}, + }, + + ], + }, + }} 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('') + // 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('') }} rowSelection={{ selectedRowKeys: rowSelected, @@ -1536,21 +3106,15 @@ const BrideTable = (props) => { setRowSelected(selectedRowKeys); }, }} - columns={columns} + columns={columns[activeKey]} dataSource={(counts || {}).rows || []} 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 + } setRowSelected([]); - const res = await dispatch(getReportStatistic(query)); + const res = await dispatch(getBridge(query)); setCounts(res.payload.data) return { ...res, @@ -1571,8 +3135,14 @@ const BrideTable = (props) => { }} > -
- + +
+ ) } diff --git a/web/client/src/sections/fillion/components/compileDrawer.js b/web/client/src/sections/fillion/components/compileDrawer.js deleted file mode 100644 index 6c22aa9b..00000000 --- a/web/client/src/sections/fillion/components/compileDrawer.js +++ /dev/null @@ -1,118 +0,0 @@ -// import React, { useEffect, useState } from 'react'; -// import { connect } from 'react-redux'; -// import { Spin, Drawer, Button } from 'antd'; -// import '../style.less'; -// import { EditableProTable } from '@ant-design/pro-table'; - -// const CompileDrawer = (props) => { -// const { dispatch, actions, user, loading, visible, checkRow, close, reportRectifyDetail, checkAction } = props -// const [requesting, setRequesting] = useState(false) -// const [dataSource, setDataSource] = useState([]) -// const { report } = actions -// const isCheck = checkAction == 'check' - -// useEffect(() => { -// if (checkRow.day) { -// dispatch(report.reportRectifyDetail(checkRow.day, checkRow.depId)) -// } -// }, [checkRow]) - -// useEffect(() => { -// let data = reportRectifyDetail -// let i = 1 -// for (let d of data) { -// d.index_ = i++ -// } -// setDataSource(data) -// }, [reportRectifyDetail]) - -// return ( -// { -// close() -// }} -// visible={visible} -// width={'82%'} -// > -// -// r.id) -// }} -// toolBarRender={() => [ -// isCheck ? '' : -// -// ]} -// > - -// -// -// -// ) -// } - -// function mapStateToProps (state) { -// const { auth, global, members, reportRectifyDetail } = state; -// return { -// loading: reportRectifyDetail.isRequesting, -// user: auth.user, -// actions: global.actions, -// members: members.data, -// reportRectifyDetail: reportRectifyDetail.data || [] -// }; -// } - -// export default connect(mapStateToProps)(CompileDrawer); diff --git a/web/client/src/sections/fillion/components/configModal.js b/web/client/src/sections/fillion/components/configModal.js deleted file mode 100644 index f2ad4352..00000000 --- a/web/client/src/sections/fillion/components/configModal.js +++ /dev/null @@ -1,124 +0,0 @@ -// import React, { useEffect, useRef } from 'react'; -// import { connect } from 'react-redux'; -// import { Spin, Button, Modal, Form, Switch } from 'antd'; -// import ProForm, { ProFormText, ProFormSelect } from '@ant-design/pro-form'; -// import { useState } from 'react'; - -// const ConfigModal = (props) => { -// const { dispatch, actions, user, loading, visible, close, editData, allAreas, reportType } = props -// const [excuteTimeOptions, setExcuteTimeOptions] = useState([]) -// const formRef = useRef() -// const { report } = actions - -// useEffect(() => { -// let excuteTimeOptions = [] -// for (let i = 0; i < 24; i++) { -// let curT = i -// if (curT < 10) { -// curT = '0' + curT -// } -// excuteTimeOptions.push({ -// value: curT + ':00', -// label: curT + ':00', -// }) -// excuteTimeOptions.push({ -// value: curT + ':30', -// label: curT + ':30', -// }) -// } -// setExcuteTimeOptions(excuteTimeOptions); -// }, []) - -// return ( -// { -// formRef.current.validateFields().then(v => { -// v.excuteTime = String(v.excuteTime) -// console.log(v); -// dispatch(editData ? report.editReportConfig(v, editData.id) : report.addReportConfig(v)).then(res => { -// if (res.success) { -// dispatch(report.getReportConfig()) -// close() -// } -// }) -// }) -// }} -// onCancel={() => { -// close() -// }} -// > -// -// -// -// { -// return { -// value: a.id, -// label: a.name, -// } -// })} -// cacheForSwr -// name="regionId" -// label="区域" -// required -// rules={[{ required: true, message: '请选择区域' }]} -// /> -// -// -// -// -// -// -// ) -// } - -// function mapStateToProps (state) { -// const { auth, global, allAreas } = state; -// console.log(allAreas); -// return { -// user: auth.user, -// actions: global.actions, -// allAreas: allAreas.data || [] -// }; -// } - -// export default connect(mapStateToProps)(ConfigModal); diff --git a/web/client/src/sections/fillion/components/enforceTable.js b/web/client/src/sections/fillion/components/enforceTable.js index f5d15f51..468c0818 100644 --- a/web/client/src/sections/fillion/components/enforceTable.js +++ b/web/client/src/sections/fillion/components/enforceTable.js @@ -5,6 +5,8 @@ import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; import { getReportStatistic } from "../actions/infor" +import UserModal from './infor/details'; + const enforceTable = (props) => { const { dispatch, user, depData, depMessage, depLoading } = props const [rowSelected, setRowSelected] = useState([]) @@ -13,10 +15,36 @@ const enforceTable = (props) => { 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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) - + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + +//打开弹窗 +const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } +} + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) +} const columns = [ { @@ -1477,7 +1505,13 @@ const enforceTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
+ return
} }, @@ -1486,13 +1520,14 @@ const enforceTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form,record) => { return (
- + ) } diff --git a/web/client/src/sections/fillion/components/highwaysTable.js b/web/client/src/sections/fillion/components/highwaysTable.js index ff18948b..de0e8091 100644 --- a/web/client/src/sections/fillion/components/highwaysTable.js +++ b/web/client/src/sections/fillion/components/highwaysTable.js @@ -5,6 +5,8 @@ import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; import { getReportStatistic } from "../actions/infor" +import UserModal from './infor/details'; + const HigwaysTable = (props) => { const { dispatch, user, depData, depMessage, depLoading } = props const [rowSelected, setRowSelected] = useState([]) @@ -13,10 +15,36 @@ const HigwaysTable = (props) => { 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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) - + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + +//打开弹窗 +const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } +} + //批量导出 +const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) +} const columns = [ { @@ -1477,7 +1505,12 @@ const HigwaysTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
+ return
} }, @@ -1486,13 +1519,14 @@ const HigwaysTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
@@ -1572,7 +1604,12 @@ const HigwaysTable = (props) => { >
- + ) } diff --git a/web/client/src/sections/fillion/components/infor/details.js b/web/client/src/sections/fillion/components/infor/details.js index 4522a774..35b4a6c9 100644 --- a/web/client/src/sections/fillion/components/infor/details.js +++ b/web/client/src/sections/fillion/components/infor/details.js @@ -1,114 +1,44 @@ import React from 'react'; import { connect } from 'react-redux'; import { Spin, Table } from 'antd'; -import { ModalForm } from '@ant-design/pro-form'; +import { DrawerForm, ProForm, ProFormText } from '@ant-design/pro-form'; import moment from 'moment'; const UserModal = (props) => { - const { visible, onVisibleChange } = props - const datas = props.modalRecord || {} - const scopeOfExamination = { ...datas }.hiddenDangerItem12 - const arr = [ - ' 1、合用场所的所有权人、使用人是否遵守消防法律、法规、规章;', - ' 2、住宿场所是否违规搭建;', - ' 3、合用场所是否配置灭火器、消防应急照明等消防器材和设施;', - ' 4、合用场所的电器产品的安装、使用及其线路和管路的设计、敷设、维护保养、检测,是否符合消防技术标准和管理规定;', - ' 5、合用场所住宿是否超过2人;(judge_0) 若超过,人员住宿是否设置在首层,并直通室外安全出口。(judge_1)', - ' 6、电动自行车是否违规室内充电、停放;', - ' 7、合用场所是否违规生产、储存、经营易燃易爆危险品;', - ' 8、合用场所除厨房外是否违规使用或者放置瓶装液化石油气、可燃液体;', - ' 9、放置瓶装液化石油气的厨房是否采取防火分隔措施,并设置自然排风窗;', - ' 10、合用场所疏散通道、安全出口是否保持畅通;', - ' 11、合用场所的外窗或阳台是否设置金属栅栏;(judge_0) 若设置,是否能从内部易于开启。(judge_1)', - ' 12、存在其他安全隐患;', - ] - const columns = [ - { - title: '场所名称', - dataIndex: 'reportName', - hideInSearch: true, - render: () => { - return
{datas.placeName}
- } - }, { - title: '场所基本情况', - dataIndex: 'reportName', - hideInSearch: true, - render: () => { - return
-
  • 使用性质:{datas.placeType}
  • -
  • 地址:{datas.address}
  • -
  • 负责人:{datas.placeOwner}
  • -
  • 电话:{datas.phone}
  • -
  • 面积:{datas.dimension}
  • -
  • 层数:{datas.floors}
  • -
  • 常驻人口:{datas.numberOfPeople}
  • -
    - } - }, { - title: '检查内容', - dataIndex: 'reportName', - hideInSearch: true, - render: () => { - return datas.hiddenDangerItem12 ? - scopeOfExamination.map((item, index) => { - let message = arr[index] - if (arr[index].indexOf('judge_') > -1) { - if (item.value == true && index === 4) { - message = message.replace(`judge_1`, item.child.value ? "是" : "否") - } else { - message = message.replace(`若超过,人员住宿是否设置在首层,并直通室外安全出口。(judge_1)`, '') - - - } - if (item.value == true && index === 10) { - message = message.replace(`judge_1`, item.child.value ? "是" : "否") - } else { - - message = message.replace(`若设置,是否能从内部易于开启。(judge_1)`, '') - - } - if (arr[index].indexOf('judge_0') > -1) { - return
  • {message.replace(`judge_0`, item.value ? "是" : "否")}
  • - } - } - return
  • {message}({item.value ? "是" : "否"})
  • - }) - : '---' - } - }, { - title: '存在具体问题', - dataIndex: 'reportName', - hideInSearch: true, - render: () => { - return
    {datas.description ? datas.description : '---'}
    - } - }, - ] - const data = [ - { - key: '1', - - address: 'New York No. 1 Lake Park', - tags: ['nice', 'developer'], - }, - ]; + const { visible, onVisibleChange,typecard } = props + console.log(typecard) return ( - -
    排查单位:{(datas || {}).checkAreaName || ''} - 填报日期:{moment((datas || {}).time).format('YYYY-MM-DD') || ''}
    - -
    - 排查人:{(datas || {}).checkUserName || ''} - 手机号:{(datas || {}).checkUserPhone || ''}
    - + {typecard==111? + + + + : + + + } + + ) } diff --git a/web/client/src/sections/fillion/components/inforTable.js b/web/client/src/sections/fillion/components/inforTable.js index 58dc18bf..5690aae7 100644 --- a/web/client/src/sections/fillion/components/inforTable.js +++ b/web/client/src/sections/fillion/components/inforTable.js @@ -1,22 +1,47 @@ import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; -import { Spin, Button, Popconfirm, Badge } from 'antd'; +import { Spin, Button, Popconfirm, Col, Input,Row } 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'; + const InForTable = (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 [counts, setCounts] = useState()//shuju - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + //打开弹窗 + const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) + } const columns = [ { @@ -67,22 +92,34 @@ const InForTable = (props) => { // search: false, dataIndex: 'containers3', // valueType: 'dateRange', - // initialValue: day, + // width: 120, render: (dom, record) => { return record.address }, - fieldProps: { - placeholder: '请输入超限率进行搜索', - getPopupContainer: (triggerNode) => triggerNode.parentNode, + // fieldProps: { + // placeholder: '请输入超限率进行搜索', + // getPopupContainer: (triggerNode) => triggerNode.parentNode, + // }, + renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => { + return + + + + + + + + + } - + }, { title: '超限重量(kg)', search: false, dataIndex: 'containers4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -96,7 +133,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -110,7 +147,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers6', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -137,7 +174,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers8', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -151,7 +188,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -166,7 +203,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers10', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -181,7 +218,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers11', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -196,7 +233,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers12', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -211,7 +248,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -226,7 +263,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers13', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -241,7 +278,7 @@ const InForTable = (props) => { search: false, dataIndex: 'containers14', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -260,7 +297,13 @@ const InForTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
    + return
    } }, @@ -269,13 +312,14 @@ const InForTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    @@ -305,14 +347,7 @@ const InForTable = (props) => { 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('') - }} + rowSelection={{ selectedRowKeys: rowSelected, onChange: (selectedRowKeys) => { @@ -355,7 +390,12 @@ const InForTable = (props) => { >
    - + ) } diff --git a/web/client/src/sections/fillion/components/operationalTable.js b/web/client/src/sections/fillion/components/operationalTable.js index 55c2d088..653ae268 100644 --- a/web/client/src/sections/fillion/components/operationalTable.js +++ b/web/client/src/sections/fillion/components/operationalTable.js @@ -4,1146 +4,94 @@ 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" -const OperaTionalTable = (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 [counts, setCounts] = useState()//shuju - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) - const [activeKey, setActiveKey] = useState('tab1'); - // const renderBadge = (count, active = false) => { - // return ( - // - // ); - // }; - const columns = { - tab1: [ - { - title: '路线名称', - dataIndex: 'placeName', - fixed: 'left', - width: 120, - options: 1, - backgroundColor: "#ffffff", - fieldProps: { - onChange: (value, cs) => { - setSitename(value.currentTarget.value) - }, - placeholder: '请输入道路名称进行搜索', - getPopupContainer: (triggerNode) => triggerNode.parentNode, - }, - }, - { - title: '路线代码', - search: false, - dataIndex: 'containers', - - fixed: 'left', - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, - { - title: '路段序号', - search: false, - dataIndex: 'time2', - valueType: 'dateRange', - // align: 'right', - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, - { - title: '乡镇编码', - search: false, - dataIndex: 'time3', - valueType: 'dateRange', - initialValue: day, - - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '起点地名', - search: false, - dataIndex: 'time4', - valueType: 'dateRange', - initialValue: day, - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '起点桩号', - search: false, - dataIndex: 'time5', - valueType: 'dateRange', - initialValue: day, - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '起点分界点类别', - search: false, - dataIndex: 'time6', - valueType: 'dateRange', - initialValue: day, - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '止点地名', - search: false, - dataIndex: 'time7', - valueType: 'dateRange', - initialValue: day, - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '止点分界点类别', - search: false, - dataIndex: 'time8', - valueType: 'dateRange', - initialValue: day, - - width: 120, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '止点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路段类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路网调整前路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '原路段序号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '原路段起点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '原路段止点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路线等级', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路段性质', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '建成时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '改建时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '建设性质', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '最近一次修复养护年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: 'GBM及文明样板路', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '地貌', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '收费性质', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '所属收费站', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '涵洞数量', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '技术等级', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路面类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '面层厚度(厘米)', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路面宽度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路基宽度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否晴雨通车', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '车道特征', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '设计时速', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否城管路段', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '管养单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路政管理单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '列养情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '列养资金来源', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '养护时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '可绿化里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '已绿化里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复道路路段类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复路段序号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复路段路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划资金类别', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划文号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目唯一编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划资金类别', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划文号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目唯一编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '桩号范围', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '填报单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '变更原因', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '变更时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否按干线公路管理接养', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '备注', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年路线名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年起点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年止点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, +import { getOperaTional, getSpecificVehicle, getHouseholds } from "../actions/infor" +import UserModal from './infor/details'; - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '图形里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '桩号里程', +const OperaTionalTable = (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 [counts, setCounts] = useState()//shuju + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + const [activeKey, setActiveKey] = useState('tab1'); + //客运请求 + const requestoperational = () => { + const query = '' + setRowSelected([]); + const res = dispatch(getOperaTional(query)); + setCounts(res.payload.data) + } + //危货出租车请求 + const requestspecificvehicle = (name) => { + const query = name + setRowSelected([]); + const res = dispatch(getSpecificVehicle(query)); + setCounts(res.payload.data) + } + // + const requesthouseholds = () => { + const query = '' + setRowSelected([]); + const res = dispatch(getHouseholds(query)); + setCounts(res.payload.data) + } + //打开弹窗 + const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) + } + const columns = { + tab1: [ + { + title: '类型', + dataIndex: 'placeName', + fixed: 'left', + width: 120, + options: 1, + backgroundColor: "#ffffff", search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - render: (dom, record) => { - return record.address - }, fieldProps: { + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, + placeholder: '请输入道路名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '所在区县', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, - - render: (dom, record) => { - return record.address }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '所在地市', + }, + { + title: '数量', search: false, - dataIndex: 'time9', - valueType: 'dateRange', - initialValue: day, - - width: 140, + dataIndex: 'containers', + fixed: 'left', + width: 120, render: (dom, record) => { return record.address }, @@ -1159,41 +107,17 @@ const OperaTionalTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
    + return
    } }, - { - key: "direction", - hideInTable: true, - dataIndex: "direction", - order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { - return ( -
    - -
    - - ); - }, - }, ], tab2: [ { title: '业户名称', @@ -1243,7 +167,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time3', valueType: 'dateRange', - initialValue: day, + width: 120, @@ -1258,7 +182,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -1272,7 +196,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -1286,7 +210,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time6', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -1300,7 +224,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time7', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -1314,7 +238,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time8', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -1328,7 +252,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1343,7 +267,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1358,7 +282,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1373,7 +297,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1388,7 +312,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1403,7 +327,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1418,7 +342,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1433,7 +357,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1448,7 +372,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1463,7 +387,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1478,7 +402,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1493,7 +417,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1508,7 +432,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1523,7 +447,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1538,7 +462,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1553,7 +477,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1568,7 +492,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1583,7 +507,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1598,7 +522,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1613,7 +537,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1628,7 +552,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1643,7 +567,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1658,7 +582,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1673,7 +597,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1688,7 +612,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1703,7 +627,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1718,7 +642,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1733,7 +657,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1748,7 +672,7 @@ const OperaTionalTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1767,7 +691,12 @@ const OperaTionalTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
    + return
    } }, @@ -1776,13 +705,14 @@ const OperaTionalTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    + return
    } }, { @@ -2398,13 +1333,14 @@ const OperaTionalTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    + return
    } }, @@ -3561,13 +2502,14 @@ const OperaTionalTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    - + : null + ], }} >
    - + ) } diff --git a/web/client/src/sections/fillion/components/promotionalTable.js b/web/client/src/sections/fillion/components/promotionalTable.js index 7b7803fc..f12810dd 100644 --- a/web/client/src/sections/fillion/components/promotionalTable.js +++ b/web/client/src/sections/fillion/components/promotionalTable.js @@ -13,9 +13,7 @@ const promotionalTable = (props) => { 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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) + const columns = [{ @@ -141,6 +139,7 @@ const promotionalTable = (props) => { // // ], // }} + > diff --git a/web/client/src/sections/fillion/components/publicTable.js b/web/client/src/sections/fillion/components/publicTable.js index d0aba20d..51f55cfb 100644 --- a/web/client/src/sections/fillion/components/publicTable.js +++ b/web/client/src/sections/fillion/components/publicTable.js @@ -5,6 +5,8 @@ import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; import { getReportStatistic } from "../actions/infor" +import UserModal from './infor/details'; + const PublicTable = (props) => { const { dispatch, user, depData, depMessage, depLoading } = props const [rowSelected, setRowSelected] = useState([]) @@ -12,11 +14,39 @@ const PublicTable = (props) => { 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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) + const [counts, setCounts] = useState()//shuju const [activeKey, setActiveKey] = useState('tab1'); + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); + + + //打开弹窗 + const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) + } const columns = { tab1: [ { @@ -128,7 +158,12 @@ const PublicTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
    + return
    } }, @@ -137,13 +172,14 @@ const PublicTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    + return
    } }, @@ -285,13 +326,14 @@ const PublicTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    - + ) } diff --git a/web/client/src/sections/fillion/components/transportationTable.js b/web/client/src/sections/fillion/components/transportationTable.js index 666f5052..1d109899 100644 --- a/web/client/src/sections/fillion/components/transportationTable.js +++ b/web/client/src/sections/fillion/components/transportationTable.js @@ -4,34 +4,1220 @@ 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" -const InForTable = (props) => { +import { getRoadway, getProject } from "../actions/infor" +import UserModal from './infor/details'; + +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 [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 - useEffect(() => { - setRegionId(user.departmentId) - }, [user]) + const [modalVisible, setModalVisible] = useState(false); + const [modalRecord, setModalRecord] = useState(); + const [typecard, setTypecard] = useState(); const [activeKey, setActiveKey] = useState('tab1'); - // const renderBadge = (count, active = false) => { - // return ( - // - // ); - // }; + + //请求数据 + const requestRoadway = (name) => { + const query = { + level: name + } + setRowSelected([]); + const res = dispatch(getRoadway(query)); + setCounts(res.payload.data) + } + //工程数据 + const requestProject = () => { + const query = { + type: '道路' + } + setRowSelected([]); + const res = dispatch(getProject(query)); + setCounts(res.payload.data) + } + //打开弹窗 + const openModal = (type, record) => { + setModalVisible(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } + console.log(counts) + //批量导出 + const exports = (ids, counts) => { + // console.log(user); + let reportIds = []; + if (ids.length) + reportIds = ids + else + reportIds = (counts || {}).ids || []; + superagent.post('/_report/http') + .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => { + const resTextIs = res.text.split('/').pop() + window.open( + '/_api/' + + `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`) + }) + } const columns = { tab1: [ + { + title: '路线名称', + dataIndex: 'placeName', + fixed: 'left', + width: 120, + options: 1, + backgroundColor: "#ffffff", + fieldProps: { + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, + placeholder: '请输入道路名称进行搜索', + getPopupContainer: (triggerNode) => triggerNode.parentNode, + }, + render: (dom, record) => { + console.log('record',record) + return record.routeName + }, + }, + { + title: '路线代码', + search: false, + dataIndex: 'containers', + + fixed: 'left', + width: 120, + render: (dom, record) => { + return record.routeCode + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '路段序号', + search: false, + dataIndex: 'time2', + valueType: 'dateRange', + // align: 'right', + width: 120, + render: (dom, record) => { + return record.sectionNo + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '乡镇编码', + search: false, + dataIndex: 'time3', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.townshipCode + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '起点地名', + search: false, + dataIndex: 'time4', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.startingPlaceName + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '起点桩号', + search: false, + dataIndex: 'time5', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.startStation + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '起点分界点类别', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.categoryOfStartingPointAndDividingPoint + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '止点地名', + search: false, + dataIndex: 'time7', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.stopPlaceName + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '止点分界点类别', + search: false, + dataIndex: 'time8', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.categoryOfDeadCenterAndDividingPoint + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '止点桩号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + width: 140, + render: (dom, record) => { + return record.stopStation + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路段类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + width: 140, + render: (dom, record) => { + return record.sectionType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路网调整前路线编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + width: 140, + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '原路段序号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '原路段起点桩号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '原路段止点桩号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路线等级', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路段性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '建成时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '改建时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '建设性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '最近一次修复养护年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: 'GBM及文明样板路', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '地貌', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '收费性质', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所属收费站', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '涵洞数量', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '技术等级', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路面类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '面层厚度(厘米)', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路面宽度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路基宽度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否晴雨通车', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车道特征', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '设计时速', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否城管路段', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '管养单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '路政管理单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '列养情况', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '列养资金来源', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '养护时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '可绿化里程', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '已绿化里程', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '重复道路路段类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '重复路段序号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '重复路段路线编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划资金类别', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划文号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目唯一编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目路线编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目类型', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工情况', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划资金类别', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划文号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目唯一编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '计划项目名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工情况', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '完工年度', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桩号范围', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '填报单位', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变更原因', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变更时间', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否按干线公路管理接养', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '备注', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上年路线编码', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上年路线名称', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上年起点桩号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '上年止点桩号', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '图形里程', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '桩号里程', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所在区县', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所在地市', + search: false, + dataIndex: 'time9', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.address + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '操作', + dataIndex: 'creatTime', + valueType: 'dateTimeRange', + hideInSearch: true, + width: 120, + fixed: 'right', + render: (dom, record) => { + return
    + + } + }, + { + key: "direction", + hideInTable: true, + dataIndex: "direction", + order: 6, + renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + return ( +
    + +
    + + + ); + }, + }, + ], tab2: [ { title: '路线名称', dataIndex: 'placeName', @@ -80,7 +1266,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time3', valueType: 'dateRange', - initialValue: day, + width: 120, @@ -95,7 +1281,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -109,7 +1295,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -123,7 +1309,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time6', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -137,7 +1323,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time7', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -151,7 +1337,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time8', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { @@ -165,7 +1351,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -180,7 +1366,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -195,7 +1381,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -210,7 +1396,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -225,7 +1411,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -240,7 +1426,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -255,7 +1441,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -270,7 +1456,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -285,7 +1471,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -300,7 +1486,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -315,7 +1501,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -330,7 +1516,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -345,7 +1531,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -360,7 +1546,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -375,7 +1561,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -390,7 +1576,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -405,7 +1591,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -420,7 +1606,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -435,7 +1621,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -450,7 +1636,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -465,7 +1651,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -480,7 +1666,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -495,7 +1681,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -510,7 +1696,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -525,7 +1711,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -540,7 +1726,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -555,7 +1741,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -570,7 +1756,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -585,7 +1771,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -600,7 +1786,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -615,7 +1801,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -630,7 +1816,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -645,7 +1831,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -660,7 +1846,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -675,7 +1861,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -690,7 +1876,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -705,7 +1891,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -720,7 +1906,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -735,7 +1921,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -750,7 +1936,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -765,7 +1951,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -780,7 +1966,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -795,7 +1981,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -810,7 +1996,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -825,7 +2011,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -840,7 +2026,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -855,7 +2041,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -870,7 +2056,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -885,7 +2071,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -900,7 +2086,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -915,7 +2101,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -930,7 +2116,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -945,7 +2131,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -960,7 +2146,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -975,7 +2161,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -990,7 +2176,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1005,7 +2191,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1020,7 +2206,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1035,7 +2221,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1050,7 +2236,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1065,7 +2251,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1080,7 +2266,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1095,7 +2281,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1110,7 +2296,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1125,7 +2311,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1140,7 +2326,7 @@ const InForTable = (props) => { search: false, dataIndex: 'time9', valueType: 'dateRange', - initialValue: day, + width: 140, @@ -1159,7 +2345,12 @@ const InForTable = (props) => { width: 120, fixed: 'right', render: (dom, record) => { - return
    + return
    } }, @@ -1168,13 +2359,14 @@ const InForTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    + return
    } }, @@ -2331,13 +3528,14 @@ const InForTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    + return
    } }, @@ -3494,13 +4697,14 @@ const InForTable = (props) => { hideInTable: true, dataIndex: "direction", order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form) => { + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { return (
    - + + + ) } @@ -3628,4 +4837,4 @@ function mapStateToProps(state) { depData, }; } -export default connect(mapStateToProps)(InForTable); \ No newline at end of file +export default connect(mapStateToProps)(TransporTationTable); \ No newline at end of file diff --git a/web/client/src/sections/fillion/containers/bridge.js b/web/client/src/sections/fillion/containers/bridge.js index d1f968e7..d65cad4f 100644 --- a/web/client/src/sections/fillion/containers/bridge.js +++ b/web/client/src/sections/fillion/containers/bridge.js @@ -4,12 +4,12 @@ import '../style.less'; import { getDepMessage, getReportStatistic } from "../actions/infor" import BridgeTable from '../components/bridgeTable'; const superagent = require('superagent'); -const infor = (props) => { +const bridge = (props) => { const { dispatch, user } = props const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 @@ -39,4 +39,4 @@ function mapStateToProps(state) { user: auth.user, } } -export default connect(mapStateToProps)(infor); \ No newline at end of file +export default connect(mapStateToProps)(bridge); \ No newline at end of file diff --git a/web/client/src/sections/fillion/containers/enforce.js b/web/client/src/sections/fillion/containers/enforce.js index b572c374..677f8612 100644 --- a/web/client/src/sections/fillion/containers/enforce.js +++ b/web/client/src/sections/fillion/containers/enforce.js @@ -9,7 +9,7 @@ const enforce = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/highways.js b/web/client/src/sections/fillion/containers/highways.js index 7b30888e..f734f12a 100644 --- a/web/client/src/sections/fillion/containers/highways.js +++ b/web/client/src/sections/fillion/containers/highways.js @@ -9,7 +9,7 @@ const highways = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/infor.js b/web/client/src/sections/fillion/containers/infor.js index eb72fbcd..1d492a93 100644 --- a/web/client/src/sections/fillion/containers/infor.js +++ b/web/client/src/sections/fillion/containers/infor.js @@ -11,7 +11,7 @@ const infor = (props) => { const [modalRecord, setModalRecord] = useState(); useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); // //打开弹窗 diff --git a/web/client/src/sections/fillion/containers/infor/details.js b/web/client/src/sections/fillion/containers/infor/details.js deleted file mode 100644 index 016b8288..00000000 --- a/web/client/src/sections/fillion/containers/infor/details.js +++ /dev/null @@ -1,124 +0,0 @@ -// import React from 'react'; -// import { connect } from 'react-redux'; -// import { Spin, Table } from 'antd'; -// import { ModalForm } from '@ant-design/pro-form'; -// import moment from 'moment'; -// const UserModal = (props) => { -// const { visible, onVisibleChange } = props -// const datas = props.modalRecord || {} -// const scopeOfExamination = { ...datas }.hiddenDangerItem12 -// const arr = [ -// ' 1、合用场所的所有权人、使用人是否遵守消防法律、法规、规章;', -// ' 2、住宿场所是否违规搭建;', -// ' 3、合用场所是否配置灭火器、消防应急照明等消防器材和设施;', -// ' 4、合用场所的电器产品的安装、使用及其线路和管路的设计、敷设、维护保养、检测,是否符合消防技术标准和管理规定;', -// ' 5、合用场所住宿是否超过2人;(judge_0) 若超过,人员住宿是否设置在首层,并直通室外安全出口;(judge_1)', -// ' 6、电动自行车是否违规室内充电、停放;', -// ' 7、合用场所是否违规生产、储存、经营易燃易爆危险品;', -// ' 8、合用场所除厨房外是否违规使用或者放置瓶装液化石油气、可燃液体;', -// ' 9、放置瓶装液化石油气的厨房是否采取防火分隔措施,并设置自然排风窗;', -// ' 10、合用场所疏散通道、安全出口是否保持畅通;', -// ' 11、合用场所的外窗或阳台是否设置金属栅栏;(judge_0) 若设置,是否能从内部易于开启。(judge_1)', -// ' 12、存在其他安全隐患;', -// ] -// const columns = [ -// { -// title: '场所名称', -// dataIndex: 'reportName', -// hideInSearch: true, -// render: () => { -// return
    {datas.placeName}
    -// } -// }, { -// title: '场所基本情况', -// dataIndex: 'reportName', -// hideInSearch: true, -// render: () => { -// return
    -//
  • 使用性质:{datas.placeType}
  • -//
  • 地址:{datas.address}
  • -//
  • 负责人:{datas.placeOwner}
  • -//
  • 电话:{datas.phone}
  • -//
  • 面积:{datas.dimension}
  • -//
  • 层数:{datas.floors}
  • -//
  • 常驻人口:{datas.numberOfPeople}
  • -//
    -// } -// }, { -// title: '检查内容', -// dataIndex: 'reportName', -// hideInSearch: true, -// render: () => { -// return datas.hiddenDangerItem12 ? -// scopeOfExamination.map((item, index) => { -// let message = arr[index] -// if (arr[index].indexOf('judge_') > -1) { -// if (item.child && item.child.itemIndex) { -// message = message.replace(`judge_${item.child.itemIndex}`, item.child.value ? "是" : "否") -// } else { -// message = message.replace(`judge_1`, '---') -// } - -// if (arr[index].indexOf('judge_0') > -1) { -// return
  • {message.replace(`judge_0`, item.value ? "是" : "否")}
  • -// } -// } -// return
  • {message}({item.value ? "是" : "否"})
  • -// }) -// : '---' -// } -// }, { -// title: '存在具体问题', -// dataIndex: 'reportName', -// hideInSearch: true, -// render: () => { -// return
    {datas.description ? datas.description : '---'}
    -// } -// }, -// ] -// const data = [ -// { -// key: '1', - -// address: 'New York No. 1 Lake Park', -// tags: ['nice', 'developer'], -// }, -// ]; -// return ( -// -// -//
    排查单位:{(datas || {}).checkAreaName || ''} -// 填报日期:{moment((datas || {}).time).format('YYYY-MM-DD') || ''}
    -//
    -//
    -// 排查人:{(datas || {}).checkUserName || ''} -// 手机号:{(datas || {}).checkUserPhone || ''}
    -// -// -// ) -// } -// 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)(UserModal); \ No newline at end of file diff --git a/web/client/src/sections/fillion/containers/maintenance.js b/web/client/src/sections/fillion/containers/maintenance.js index 6a231dec..1554927e 100644 --- a/web/client/src/sections/fillion/containers/maintenance.js +++ b/web/client/src/sections/fillion/containers/maintenance.js @@ -9,7 +9,7 @@ const Maintenance = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/operational.js b/web/client/src/sections/fillion/containers/operational.js index 82fb180e..2c6a2fda 100644 --- a/web/client/src/sections/fillion/containers/operational.js +++ b/web/client/src/sections/fillion/containers/operational.js @@ -9,7 +9,7 @@ const operational = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/patrol.js b/web/client/src/sections/fillion/containers/patrol.js index 0e7b77c0..bd57775b 100644 --- a/web/client/src/sections/fillion/containers/patrol.js +++ b/web/client/src/sections/fillion/containers/patrol.js @@ -9,7 +9,7 @@ const patrol = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/promotional.js b/web/client/src/sections/fillion/containers/promotional.js index cdb3492d..98b1bc6f 100644 --- a/web/client/src/sections/fillion/containers/promotional.js +++ b/web/client/src/sections/fillion/containers/promotional.js @@ -10,7 +10,7 @@ const promotional = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); // //批量导出 diff --git a/web/client/src/sections/fillion/containers/public.js b/web/client/src/sections/fillion/containers/public.js index 073fd9d3..b0a5dc1e 100644 --- a/web/client/src/sections/fillion/containers/public.js +++ b/web/client/src/sections/fillion/containers/public.js @@ -9,7 +9,7 @@ const Public = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/transportation.js b/web/client/src/sections/fillion/containers/transportation.js index b57967eb..405f7082 100644 --- a/web/client/src/sections/fillion/containers/transportation.js +++ b/web/client/src/sections/fillion/containers/transportation.js @@ -9,7 +9,7 @@ const transportation = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/fillion/containers/videois.js b/web/client/src/sections/fillion/containers/videois.js index 61411e51..289d19ae 100644 --- a/web/client/src/sections/fillion/containers/videois.js +++ b/web/client/src/sections/fillion/containers/videois.js @@ -9,7 +9,7 @@ const Videois = (props) => { const [data, setData] = useState() useEffect(() => { // dispatch(getDepMessage()) - dispatch(getReportStatistic()) + setData(props) }, []); //批量导出 diff --git a/web/client/src/sections/organization/containers/user.js b/web/client/src/sections/organization/containers/user.js index 79945530..bf811a2f 100644 --- a/web/client/src/sections/organization/containers/user.js +++ b/web/client/src/sections/organization/containers/user.js @@ -181,7 +181,9 @@ const UserManage = (props) => { // 删除部门 const delDepartment = (id) => { dispatch(delDep(id)).then(res => { - dispatch(getDepMessage()) + if(res.success){ + dispatch(getDepMessage()) + } }); } const renderTree = (item, id) => { diff --git a/web/client/src/sections/quanju/containers/footer/build/Leftbottom.js b/web/client/src/sections/quanju/containers/footer/build/Leftbottom.js index 6dc759b2..55fd8020 100644 --- a/web/client/src/sections/quanju/containers/footer/build/Leftbottom.js +++ b/web/client/src/sections/quanju/containers/footer/build/Leftbottom.js @@ -1,6 +1,5 @@ import './style.less' -import { Col, Progress, Row } from 'antd'; import React, { useEffect, useRef } from 'react'; // import ReactEcharts from 'echarts-for-react'; import * as echarts from 'echarts'; @@ -34,24 +33,26 @@ function Leftbottom() { }, formatter: (values) => `${values.seriesName}
    ${values.marker} ${values.name} ${values.value}个(${values.percent}%)`, }, - title: { - text:titleNum,//主标题文本 - left:'center', - top:'35%', - subtext:chartTitle,//副标题文本 - textStyle:{ - fontFamily : "YouSheBiaoTiHei", - fontSize: 20, - color:'#FFFFFF', - // align:'center' - }, - subtextStyle:{ - fontFamily : "PingFangSC-Medium PingFang SC", - fontSize: 12, - fontWeight:500, - color:'#E9F7FF', - } - }, + // title: { + // text:titleNum,//主标题文本 + // left:'10%', + // top:'35%', + // subtext:chartTitle,//副标题文本 + // textStyle:{ + // fontFamily : "YouSheBiaoTiHei", + // fontSize: 20, + // color:'#FFFFFF', + // marginLeft:'20%', + // align:'center' + // }, + // subtextStyle:{ + // fontFamily : "PingFangSC-Medium PingFang SC", + // fontSize: 12, + // fontWeight:500, + // color:'#E9F7FF', + + // } + // }, legend: [ { @@ -80,7 +81,8 @@ function Leftbottom() { { name: '道路统计', type: 'pie', - radius: ['50%', '65%'], + radius: ['50%', '63%'], + center: ["30%", "50%"], // emphasis: { // 设置高亮时显示标签 // label: { // show: true @@ -157,7 +159,12 @@ function Leftbottom() { return (
    -
    +
    +

    3234.23

    + 道路总公里 +
    + +
    ); } diff --git a/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js b/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js index 2f111224..63b5b344 100644 --- a/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js +++ b/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js @@ -4,7 +4,7 @@ import { Col, Progress, Row } from 'antd'; import React, { useEffect, useRef } from 'react'; // import ReactEcharts from 'echarts-for-react'; import * as echarts from 'echarts'; -function Leftbottom() { +function Rightbottom() { // const { // safetyData, chartTitle, title, number, leftLegend, rightLegend, legendColor, width, height, // } = props; @@ -37,24 +37,24 @@ function Leftbottom() { }, formatter: (values) => `${values.seriesName}
    ${values.marker} ${values.name} ${values.value}个(${values.percent}%)`, }, - title: { - text:titleNum,//主标题文本 - left:'center', - top:'35%', - subtext:chartTitle,//副标题文本 - textStyle:{ - fontFamily : "YouSheBiaoTiHei", - fontSize: 20, - color:'#FFFFFF', - // align:'center' - }, - subtextStyle:{ - fontFamily : "PingFangSC-Medium PingFang SC", - fontSize: 12, - fontWeight:500, - color:'#E9F7FF', - } - }, + // title: { + // text:titleNum,//主标题文本 + // left:'center', + // top:'35%', + // subtext:chartTitle,//副标题文本 + // textStyle:{ + // fontFamily : "YouSheBiaoTiHei", + // fontSize: 20, + // color:'#FFFFFF', + // // align:'center' + // }, + // subtextStyle:{ + // fontFamily : "PingFangSC-Medium PingFang SC", + // fontSize: 12, + // fontWeight:500, + // color:'#E9F7FF', + // } + // }, // graphic: { // elements: [ // { @@ -119,9 +119,10 @@ function Leftbottom() { ], series: [ { - name: '道路统计', + name: '公路等级统计', type: 'pie', - radius: ['50%', '65%'], + radius: ['50%', '63%'], + center:['30%','50%'], // emphasis: { // 设置高亮时显示标签 // label: { // show: true @@ -198,8 +199,13 @@ function Leftbottom() { return (
    -
    +
    +

    3234.23

    + 道路总公里 +
    + +
    ); } -export default Leftbottom \ No newline at end of file +export default Rightbottom \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/build/index.js b/web/client/src/sections/quanju/containers/footer/build/index.js index 85e8c26c..834b1b31 100644 --- a/web/client/src/sections/quanju/containers/footer/build/index.js +++ b/web/client/src/sections/quanju/containers/footer/build/index.js @@ -8,14 +8,30 @@ import Rightcenter from './Rightcenter' import { Carousel } from 'antd' import Module from '../../public/module' import RightBottom from './Rightbottom' +import AutoRollComponent from './AutoRollComponent' import './style.less' const Build = () => { + const datas = new Array(15) + datas.fill({ + name:"东乡镇", + number:"11111", + gongli:'9999' + },0,15) + const rendercontent = ()=>{ + return (
    + {datas.map(({name,number,gongli},index)=>
    + {name} + {number} + {gongli} +
    )} +
    ) + } return (
    + }} customize = {true}>
    @@ -38,7 +54,7 @@ const Build = () => { + }} customize = {true}>
    @@ -61,45 +77,13 @@ const Build = () => { 公路数量/条 公里
    -
    - -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    - 乡镇名称 - 公路数量/条 - 公里 -
    -
    -
    +
    + }} customize = {true}> @@ -115,12 +99,12 @@ const Build = () => { + }} customize = {true}> + }} customize = {true}>
    diff --git a/web/client/src/sections/quanju/containers/footer/build/style.less b/web/client/src/sections/quanju/containers/footer/build/style.less index 4db9bf41..727ada13 100644 --- a/web/client/src/sections/quanju/containers/footer/build/style.less +++ b/web/client/src/sections/quanju/containers/footer/build/style.less @@ -1,3 +1,8 @@ +@media screen and (max-width:1281px){ + html{ + font-size: 10px; + } +} .bgbuild{ // box-sizing: border-box; padding: 0 15px 0 15px; @@ -15,8 +20,8 @@ justify-content: center; align-items: center; .build-left-top-center{ - width: 174px; - height: 146px; + width: 35%; + height: 50%; margin: 0 10px; } .build-left-top-item{ @@ -45,11 +50,11 @@ transform: rotate(134deg); } &:nth-child(2){ - font-size: 16px; + font-size: 1rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #E9F7FF; - line-height: 22px; + // line-height: 22px; } } @@ -58,7 +63,7 @@ // width: 80%; // height: 100%; // margin: 1% auto 0; - font-size: 38px; + font-size: 2.375rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; text-align: center; @@ -85,8 +90,8 @@ justify-content: center; align-items: center; img{ - height: 50px; - width: 78px; + // height: 15%; + width: 25%; } div{ @@ -97,14 +102,14 @@ margin-left: 10px; span{ &:nth-child(1){ - font-size: 12px; + font-size: 0.75rem; font-family: PingFangSC-Medium, PingFang SC; font-weight: 500; color: #C2EEFF; letter-spacing: 1px; } &:nth-child(2){ - font-size: 28px; + font-size: 1.75rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; line-height: 36px; @@ -130,12 +135,12 @@ } } .build-left-center-content{ - width: 100%; - height: 100px!important; + // width: 100%; + // height:40%; .build-left-center-item{ - display: flex !important; - width: 100%!important; - height: 28px!important; + display: flex ; + width: 100%; + height: 28px; span{ flex:1; text-align: center; @@ -146,9 +151,9 @@ line-height: 16px; } } - .slick-list{ - height: 128px !important; - } + // .slick-list{ + // height: 128px !important; + // } } @@ -159,6 +164,35 @@ display: flex; justify-content: center; align-items: center; + position: relative; + .build-left-bottom-title{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: absolute; + left: 27%; + top:38%; + h2{ + font-size: 1.25rem; + font-family: YouSheBiaoTiHei; + color: #FFFFFF; + line-height: 1.625rem; + text-shadow: 0px 0px 0.25rem #1C60FE; + } + span{ + font-size: 0.75rem; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #E9F7FF; + } + } + img{ + width: 19%; + position: absolute; + left: 26.5%; + top:29% + } } } @@ -179,7 +213,7 @@ height: 30%; width: 100%; padding-left: 15px; - font-size: 24px; + font-size: 1.5rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; display: flex; @@ -200,23 +234,24 @@ justify-content: space-around; align-items: center; img{ - width:12% ; - height: 80%; + width:14% ; + // height: 80%; } div{ - font-size: 16px; + font-size: 1rem; font-family: PingFangSC-Medium, PingFang SC; font-weight: 500; color: #C2EEFF; - line-height: 22px; - letter-spacing: 1px + transform: translateX(-1.5rem); + // line-height: 22px; + letter-spacing: 0.0625rem; } h2{ - font-size: 28px; + font-size: 1.75rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; margin-bottom : 0!important; - text-shadow: 0px 0px 4px #07B9FE; + text-shadow: 0px 0px 0.25rem #07B9FE; } } } @@ -226,6 +261,35 @@ display: flex; justify-content: center; align-items: center; + position: relative; + .build-right-bottom-title{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: absolute; + left: 27%; + top:38%; + h2{ + font-size: 1.25rem; + font-family: YouSheBiaoTiHei; + color: #FFFFFF; + line-height: 1.625rem; + text-shadow: 0px 0px 0.25rem #1C60FE; + } + span{ + font-size: 0.75rem; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #E9F7FF; + } + } + img{ + width: 19%; + position: absolute; + left: 26.5%; + top:29% + } } } } diff --git a/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js b/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js new file mode 100644 index 00000000..f3f26f3e --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/conserve/chart/pie-chart.js @@ -0,0 +1,110 @@ +import React from 'react' +import { useEffect, useRef } from 'react'; +import * as echarts from 'echarts'; + +const PieChart = (props) => { + + const { width, height, data, colorList, underColorList, total, text } = props + + const chartRef = useRef(null); + let name = [], emptyName = [] + // const name = data?.map(d) + data?.forEach(d => { + name.push(d.name) + emptyName.push({ + name: '', + value: d.value + }) + }) + useEffect(() => { + let chartInstance = echarts.init(chartRef.current); + const option = { + tooltip: { + trigger: "item", + }, + legend: { + orient: "vertical", + itemWidth: 10, + itemHeight: 10, + right: '30%', + top: 'center', + align: 'left', + data: name, + textStyle: { + color: "#fff", + }, + }, + grid: { + left: '10%' + }, + // title: [ + // { + // text: text, + // top: "58%", + // left: '16%', + // textStyle: { + // color: "#E9F7FF", + // fontSize: 14, + // }, + // }, + // { + // text: total, + // top: "40%", + // left: '10%', + // textStyle: { + // fontSize: "30", + // color: "#FFFFFF", + // fontFamily: "YouSheBiaoTiHei", + // }, + // }, + // ], + series: [ + { + name: "底层背景", + type: "pie", + hoverAnimation: false, + legendHoverLink: false, + radius: ["60%", "72%"], + center: ['25%', '50%'], + color: underColorList, + label: { + show: false + }, + labelLine: { + show: false + }, + tooltip: { + show: false, + }, + + data: emptyName, + }, + { + name: "已绿化里程统计", + type: "pie", + radius: ["67%", "80%"], + center: ['25%', '50%'], + color: colorList, + label: { + show: false + }, + data: data, + }, + ], + }; + + chartInstance.setOption(option); + window.addEventListener('resize', () => { + if (chartInstance) { + chartInstance.resize() + } + }) + }, []) + return ( +
    +
    +
    + + ) +} +export default PieChart \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/index.js b/web/client/src/sections/quanju/containers/footer/conserve/index.js index cfb98746..5e83a6d5 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/index.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/index.js @@ -3,10 +3,11 @@ import Left from './left' import Right from './right' const Conserve = () => { + return ( -
    +
    - +
    ) } diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js index 51ea4ef7..82097322 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js @@ -1,14 +1,39 @@ import React from 'react' import Module from '../../../public/module' +import PieChart from '../chart/pie-chart'; +let data = [ + { value: 435, name: "县道" }, + { value: 679, name: "乡道" }, + { value: 848, name: "村道" }, +] +let colorList = [ + "rgba(7,185,254,1)", + "rgba(28,96,254,1)", + "rgba(4,251,240,1)", +] +let underColorList = [ + "rgba(7,185,254,0.5)", + "rgba(28,96,254,0.5)", + "rgba(4,251,240,0.5)", +] const LeftBottom = () => { const style = { height: "31%", marginTop: "3%" } return ( - <> - - - - + <> + + {/*
    */} + +
    + ) } export default LeftBottom \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js index 42c7cd48..d2cd5330 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-center.js @@ -1,30 +1,228 @@ import { Col, Row } from 'antd' import React from 'react' -import { useEffect } from 'react' +import { useEffect, useRef } from 'react' import Module from '../../../public/module' +import * as echarts from 'echarts'; const LeftCenter = () => { - const style = { height: "31%", marginTop: "3%" } + const style = { height: "31%", marginTop: "3%" } + const chartRef = useRef(null); + useEffect(() => { + let chartInstance = echarts.init(chartRef.current); + let colorArray = [ + { + top: "#07B9FE", + bottom: "#10274B", + }, + { + top: "#1978E5", + bottom: " #10274B", + }, + { + top: "#1978E5", + bottom: "#10274B", + }, + ]; + const option = { + tooltip: { + show: true, + trigger: "axis", + axisPointer: { + type: "none", + }, + }, + grid: { + left: "5%", + top: "12%", + right: "5%", + bottom: "8%", + width:'92%', + containLabel: true, + }, - useEffect(() => { + xAxis: { + type: "value", + show: true, + position: "bottom", + axisTick: { + show: true, + lineStyle: { + color: "rgba(176,215,255,0.25)", + // type: "dashed", + }, + }, + axisLine: { + show: false, + lineStyle: { + color: "rgba(216,240,255,0.8000)", + }, + }, + splitLine: { + show: true, + lineStyle: { + color: "rgba(176,215,255,0.25)", + type: "dashed", + }, + }, + }, + yAxis: [ + { + type: "category", + axisTick: { + show: false, + alignWithLabel: false, + length: 5, + }, + splitLine: { + //网格线 + show: false, + }, + inverse: true, //排序 + axisLine: { + show: false, + lineStyle: { + color: "rgba(176,215,255,0.8)", + }, + }, + zlevel: 100, + data: ["县级可绿化里程", "乡级可绿化里程", "村级可绿化里程"], + }, + { + type: "category", + axisTick: { + show: false, + alignWithLabel: false, + length: 5, + }, + splitLine: { + //网格线 + show: false, + }, + axisLabel: { + show: true, + backgroundColor: { + image: 'assets/images/quanju/kelvhua_bdbg.png', + }, + width: 70, + height: 22, + color: '#D8F0FF', + margin:50, + verticalAlign: 'middle', + align: 'center', + textShadowColor:'#1AD0FF', + textShadowBlur:6, + fontSize:14 + // formatter:(f) =>{console.log('f:',f);} + }, + inverse: true, //排序 + axisLine: { + show: false, + lineStyle: { + color: "rgba(176,215,255,0.8)", + }, - }, []) + }, + data: [60, 132, 89], + }, + ], + series: [ + { + name: '背景', + type: "bar", + barWidth: 3, + barGap: "100%", + barCategoryGap: "50%", + color: "#15356E", + data: [150, 150, 150, 150], + tooltip: { + show: false, + }, + }, + { + name: "", + type: "bar", + zlevel: 1, + barWidth: 3, + barGap: "-100%", + barCategoryGap: "50%", + data: [60, 132, 89], + label: { + show: true, + position: 'right', // 位置 + fontSize: 12, + lineHeight: 13, + distance: -2, + verticalAlign: "middle", + formatter: [ + '{a| }', + ].join(''), // 这里是数据展示的时候显示的数据 + rich: { + a: { + backgroundColor: { + image: 'assets/images/quanju/circle2.png' + }, + width: 15, + height: 15, + align: 'left', + verticalAlign: "center", + } + } + }, + itemStyle: { + normal: { + show: true, + color: function (params) { + return { + type: "linear", + colorStops: [ + { + offset: 0, + color: colorArray[params.dataIndex].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex].top, + }, - return ( - <> - - -
    - icon - 可绿化里程总数 - - 1234.123 - -
    图表
    + ], + // globalCoord: false, + }; + }, + barBorderRadius: 70, + borderWidth: 0, + borderColor: "#333", + }, + }, + emphasis: { + disabled: true //禁止移入柱子改变颜色 + } + }, + ], + }; + chartInstance.setOption(option); + window.addEventListener('resize',() =>{ + if(chartInstance) { + chartInstance.resize() + } + }) + }, []); - - - ) + return ( + <> + + + + + icon + 可绿化里程总数 + + 1234 + +
    + + + + ) } export default LeftCenter \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js b/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js index 6cf714ea..3ab9489d 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/left/left-top.js @@ -1,6 +1,7 @@ import React, { useEffect, useRef } from 'react'; import Module from '../../../public/module' import * as echarts from 'echarts'; +import { Badge } from 'antd'; const LeftTop = () => { @@ -11,6 +12,9 @@ const LeftTop = () => { useEffect(() => { let chartInstance = echarts.init(seasonChartRef.current); const seasonOption = { + tooltip:{ + show:true + }, title: [ { text: "季节性", @@ -36,6 +40,13 @@ const LeftTop = () => { radius: ["60%", "68%"], center: ["50%", "50%"], }, + grid: { + left: "5%", + top: "12%", + right: "1%", + bottom: "8%", + containLabel: true, + }, angleAxis: { max: 100, show: false, @@ -60,7 +71,7 @@ const LeftTop = () => { roundCap: true, barWidth: 30, showBackground: true, - data: [40], + data: [{value:40,name:'季节性'}], coordinateSystem: "polar", itemStyle: { normal: { @@ -80,11 +91,21 @@ const LeftTop = () => { ], }; chartInstance.setOption(seasonOption); + window.addEventListener('resize',() =>{ + if(chartInstance) { + chartInstance.resize() + } + }) }, []) useEffect(() => { let chartInstance = echarts.init(frequentlyChartRef.current); + const frequentlyOption = { + tooltip:{ + show:true, + trigger: "item", + }, title: [ { text: "经常性", @@ -110,6 +131,14 @@ const LeftTop = () => { radius: ["60%", "68%"], center: ["50%", "50%"], }, + grid: { + left: "10%", + top: "12%", + right: "1%", + bottom: "8%", + width: '70%', + containLabel: true, + }, angleAxis: { max: 100, show: false, @@ -134,10 +163,7 @@ const LeftTop = () => { roundCap: true, barWidth: 30, showBackground: true, - backgroundStyle: { - color: "rgba(66, 66, 66, .3)", - }, - data: [40], + data:[{value:40,name:'经常性'}], coordinateSystem: "polar", itemStyle: { normal: { @@ -154,20 +180,42 @@ const LeftTop = () => { }, }, }, + + ], }; chartInstance.setOption(frequentlyOption); - + window.addEventListener('resize', () => { + if (chartInstance) { + chartInstance.resize() + } + }) }, []) const style = { height: "31%", marginTop: "3%" } return ( <> -
    -
    -
    -
    +
    +
    +
    + +
    +
    +
    + + +
    ) diff --git a/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js b/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js index 9665fb01..744165df 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js @@ -1,14 +1,42 @@ import React from 'react' import Module from '../../../public/module' +import PieChart from '../chart/pie-chart'; +let data = [ + { value: 435, name: "道路" }, + { value: 679, name: "桥梁" }, + { value: 848, name: "涵洞" }, + { value: 666, name: "其他" }, +] +let colorList = [ + "rgba(7,185,254,1)", + "rgba(28,96,254,1)", + "rgba(4,251,240,1)", + "rgba(255,194,20,1)" +] +let underColorList = [ + "rgba(7,185,254,0.5)", + "rgba(28,96,254,0.5)", + "rgba(4,251,240,0.5)", + "rgba(255,194,20,0.5)" +] const RightBottom = () => { const style = { height: "31%", marginTop: "3%" } return ( - <> - - - - + <> + + {/*
    */} + +
    + ) } export default RightBottom \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js b/web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js index 18b24f6b..6e1cd0c6 100644 --- a/web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js +++ b/web/client/src/sections/quanju/containers/footer/conserve/right/right-top.js @@ -5,12 +5,12 @@ import Module from '../../../public/module' const RightTop = () => { const style = { height: "31%", marginTop: "3%" } const textStyle = { fontSize: 14, color: '#E9F7FF' } - const numStyle = { color: '#fff', fontSize: 24, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 } + const numStyle = { color: '#fff', fontSize: 20, fontFamily: 'YouSheBiaoTiHei', textShadow: '0px 0px 8px #1C60FE', marginTop: 8 } return ( <>
    - +
    icon
    @@ -26,7 +26,7 @@ const RightTop = () => { - +
    icon diff --git a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js index d774030c..720a27d8 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js @@ -5,76 +5,111 @@ export default function LeftItem() { const seasonChartRef = useRef(null); useEffect(() => { let chartInstance = echarts.init(seasonChartRef.current); - const seasonOption = { - title: [ - { - text: "已处理", - x: "center", - top: "55%", - textStyle: { - color: "#E9F7FF", - fontSize: 14, - }, + const option = { + title: { + text: '75%', + top:'35%', + textStyle: { + fontSize: "1.375rem", + fontFamily: 'PingFangSC-Medium, PingFang SC', + fontWeight: 500, + // marginTop:-60, + color: '#FFFFFF' }, - { - text: "2333", - x: "center", - y: "35%", - textStyle: { - fontSize: "30", - color: "#FFFFFF", - fontFamily: "YouSheBiaoTiHei", - }, + subtext: '已处理', + subtextStyle: { + fontSize: "1rem", + fontFamily: "PingFangSC-Regular, PingFang SC", + fontWeight: 400, + color: 'rgba(216,240,255,0.8000)' + }, + // itemGap: -2, // 主副标题距离 + left: 'center', + // top: 'center' + }, + angleAxis: { + max: 100, // 满分 + clockwise: false, // 逆时针 + // 隐藏刻度线 + axisLine: { + show: false + }, + axisTick: { + show: false }, - ], - polar: { - radius: ["78%", "86%"], - center: ["50%", "50%"], - }, - angleAxis: { - max: 100, - show: false, - }, - radiusAxis: { - type: "category", - show: true, axisLabel: { - show: false, + show: false }, + splitLine: { + show: false + } + }, + radiusAxis: { + type: 'category', + // 隐藏刻度线 axisLine: { - show: false, + show: false }, axisTick: { - show: false, + show: false + }, + axisLabel: { + show: false }, + splitLine: { + show: false + } }, - series: [ - { - name: "", - type: "bar", - roundCap: true, - barWidth: 30, - showBackground: true, - data: [40], - coordinateSystem: "polar", - itemStyle: { - normal: { - color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ - { - offset: 0, - color: "#AAC8FF", - }, - { - offset: 1, - color: "#0041BB", - }, - ]), + polar: { + center: ['50%', '50%'], + radius: '180%' //图形大小 + // radius: ["78%", "86%"], + }, + series: [{ + type: 'bar', + data: [{ + name: '已处理', + value: 75, + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ { + offset: 0, + color: "#00D5FF", + }, + { + offset: 1, + color: "#1978E5", + }]) + } }, - }, - }, - ], - }; - chartInstance.setOption(seasonOption); + }], + coordinateSystem: 'polar', + roundCap: true, + barWidth: 8, + barGap: '-100%', // 两环重叠 + z: 2, + },{ // 灰色环 + type: 'bar', + data: [{ + value: 100, + itemStyle: { + color: '#092B7B ', + shadowColor: 'rgba(0, 0, 0, 0.2)', + shadowBlur: 5, + shadowOffsetY: 2 + } + }], + coordinateSystem: 'polar', + roundCap: true, + barWidth: 8, + barGap: '-100%', // 两环重叠 + z: 1 + }] + } + + + + chartInstance.setOption(option); }, []) return ( @@ -84,7 +119,9 @@ export default function LeftItem() {
    244
    -
    + +
    +
    ) diff --git a/web/client/src/sections/quanju/containers/footer/guanli/index.js b/web/client/src/sections/quanju/containers/footer/guanli/index.js index 88552520..e50e8467 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/index.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/index.js @@ -26,18 +26,18 @@ const Guanli = () => { })} } - renderContent() + // renderContent() return (
    - + {itemlist.map((item,index)=> )}
    - +
    已处理 diff --git a/web/client/src/sections/quanju/containers/footer/guanli/style.less b/web/client/src/sections/quanju/containers/footer/guanli/style.less index c225f744..ac6fba18 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/style.less +++ b/web/client/src/sections/quanju/containers/footer/guanli/style.less @@ -1,3 +1,8 @@ +@media screen and (max-width:1281px){ + html{ + font-size: 10px; + } +} .guanli{ // box-sizing: border-box; padding: 0 15px 0 15px; @@ -19,13 +24,13 @@ justify-content: space-between; border: 2px solid rgba(28,96,254,0.5000); .guanli-left-item-left{ - width: 30%; - height: 70%; + width: 45%; + height: 60%; display: flex; flex-direction: column; align-items: center; span{ - font-size: 20px; + font-size: 1.25rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: rgba(216,240,255,0.8000); @@ -34,16 +39,16 @@ display: flex; justify-content: center; // align-items: ; - font-size: 34px; + font-size: 2.125rem; font-family: YouSheBiaoTiHei; color: #FFFFFF; - height: 60%; + height: 70%; width: 100%; background: url('/assets/images/quanju/guanlijiance_1.png') no-repeat; background-size: 100% 80%; background-position: center bottom; span{ - font-size: 16px; + font-size: 1rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; padding-top: 10%; @@ -56,7 +61,20 @@ } .guanli-left-item-right{ width: 40%; - height: 60%; + height: 50%; + position: relative; + span{ + position: absolute; + width: 8px; + height: 8px; + background-color: #fff; + top: 1.5%; + left: 50%; + z-index: 10; + border-radius: 4px; + display: block; + } + // background-color: pink; } // background-color: pink; @@ -130,12 +148,12 @@ justify-content: space-around; // background: rgba(21,77,160,0.2000); span{ - font-size: 14px; + font-size: 0.875rem; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: rgba(216,240,255,0.8000); line-height: 20px; - flex:1; + // flex:1; text-align: center; // &:nth-child(1){ diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/center-left-bottom.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/center-left-bottom.js index b9d6d319..540c3f39 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/center-left-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/center-left-bottom.js @@ -1,12 +1,27 @@ import React from 'react' import Module from '../../../public/module' +import Centerleftecharts from "./echarts/centerleftecharts" +import Bottomlunbo from './lunbo/bottomlunbo' +import Leftlunbo from './lunbo/toplunbo' const Leftbottom = () => { const style = { height: "28%", marginTop: "2%" } return ( <> - - + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    ) diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/echarts/centerleftecharts.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/echarts/centerleftecharts.js new file mode 100644 index 00000000..a041ffce --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/echarts/centerleftecharts.js @@ -0,0 +1,203 @@ +import React, { useEffect, useRef } from 'react' +import * as echarts from 'echarts'; + +const Leftbottomecharts = () => { + const chartRef = useRef(null); + useEffect(() => { + var chartInstance = echarts.init(chartRef.current); + var colorArray = [ + { + top: "#1978E5", //黄 + bottom: "#10274B", + }, + { + top: "#C31E00", //绿 + bottom: "#10274B", + }, + { + top: "#00B5E0 ", //蓝 + bottom: "#10274B", + }, + { + top: "#19E5D6", //深蓝 + bottom: "#10274B", + }, + // { + // top: "#b250ff", //粉 + // bottom: "rgba(11,42,84,.3)", + // }, + ]; + const option = { + tooltip: { + show: true, + formatter: "{b}:{c}", + }, + grid: { + left: "5%", + top: "12%", + right: "1%", + bottom: "8%", + containLabel: true, + }, + + xAxis: { + type: "value", + show: true, + position: "bottom", + axisTick: { + show: true, + lineStyle: { + color: "rgba(176,215,255,0.25)", + // type: "dashed", + }, + }, + axisLine: { + show: false, + lineStyle: { + color: "rgba(216,240,255,0.8000)", + }, + }, + splitLine: { + show: true, + lineStyle: { + color: "rgba(176,215,255,0.25)", + type: "dashed", + }, + }, + }, + yAxis: [ + { + type: "category", + axisTick: { + show: false, + alignWithLabel: false, + length: 5, + }, + splitLine: { + //网格线 + show: false, + }, + inverse: "true", //排序 + // nameTextStyle: { + // color: ["rgba(216,240,255,0.8)"], + // }, + axisLine: { + // show: true, + lineStyle: { + color: "rgba(216,240,255,0.8000)", + width: 2, + }, + }, + data: ["客运车", "危险货运", "出租车", "公交"], + }, + ], + series: [ + { + type: "bar", + barWidth: 10, + barGap: "100%", + // zlevel: 1, + barCategoryGap: "50%", + color: "#042B7F", + data: [150, 150, 150, 150], + tooltip: { + show: false, + }, + }, + { + name: "能耗值", + type: "bar", + // zlevel: 2, + barWidth: 10, + barGap: "-100%", + barCategoryGap: "50%", + data: [60, 132, 89, 134], + markPoint: { + Symbol: "",/* 可以通过’image: *///url’设置为图片,其中url为图片的链接 + data: [{ type: "max", name: "最大值" }], + }, + itemStyle: { + normal: { + show: true, + color: function (params) { + let num = colorArray.length; + return { + type: "linear", + colorStops: [ + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + { + offset: 0, + color: colorArray[params.dataIndex % num].bottom, + }, + { + offset: 1, + color: colorArray[params.dataIndex % num].top, + }, + ], + globalCoord: false, + }; + }, + barBorderRadius: 70, + borderWidth: 0, + borderColor: "#333", + }, + }, + }, + ], + }; + chartInstance.setOption(option); + window.onresize = function () { + chartInstance.resize(); + } + }, []); + + + return ( + <> +
    + + ); +} + +export default Leftbottomecharts \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/bottomlunbo.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/bottomlunbo.js new file mode 100644 index 00000000..b30fb333 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/bottomlunbo.js @@ -0,0 +1,59 @@ +import React, { useState, useEffect } from 'react' +import Lunbotop from "./lunbo" + +const Bottomlunbo = () => { + const [list, setList] = useState([ + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + ]) + const renderBody = () => { + return ( +
    + { + list.map((item, index) => { + return
    {item.name}
    + }) + } +
    + ) + } + return ( + <> +
    +
    + 业户信息: +
    +
    +
    + +

    出租车

    +
    +
    + +
    + + ) +} +export default Bottomlunbo \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/lunbo.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/lunbo.js new file mode 100644 index 00000000..6bf6d406 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/lunbo.js @@ -0,0 +1,180 @@ +'use strict' +import React, { Component } from 'react'; +// import { Col, Row, Tag, Tooltip } from '@douyinfe/semi-ui'; +import { Col, Row, Tag, Toolip } from 'antd'; +import './style.less'; +export default class AutoRollComponent extends Component { + + constructor(props) { + super(props); + this.scrollElem = null; + this.stopscroll = false; + this.preTop = 0; + this.cloneEle = null; + this.currentTop = 0; + this.marqueesHeight = 0; + this.interval = null; + } + + marque = (height) => { + try { + this.scrollElem = document.getElementById(this.props.divId); + this.marqueesHeight = height; + if (this.scrollElem) { + this.scrollElem.style.height = this.marqueesHeight; + this.scrollElem.style.overflow = 'hidden'; + } + + if (!this.props.closeroll) { + this.repeat() + } + } catch (e) { console.log(e) } + } + + + repeat = () => { + this.scrollElem.scrollTop = 0; + + this.interval = setInterval(() => { + if (this.stopscroll) return; + this.currentTop = this.currentTop + 1; + this.preTop = this.scrollElem.scrollTop; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + 1; + if (this.preTop === this.scrollElem.scrollTop) { + this.scrollElem.scrollTop = this.marqueesHeight; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + 1; + } + }, 80); + } + + + componentWillUnmount() { + clearInterval(this.interval); + } + + componentDidMount() { + this.marque(10); + } + + onMouseOver = () => { + this.stopscroll = true; + } + + onMouseOut = () => { + this.stopscroll = false; + } + + loadDataColumn = (c, index, q) => { + const { changeStyleCol, heads, spans, data, showWord, color, dataTextAlign, customColorBox, } = this.props; + if (c === changeStyleCol) { + if (color) { + {q.data[index]} + } else { + if (['时间'].indexOf(c) != -1) { + return {q.data[index]} + } + // if (c.indexOf("时间") == -1) { + // if (customColorBox) { + // return + // } + // if (q.data[index].length > showWord) { + // return {q.data[index].substring(0, showWord) + '...'} + // } else { + // return {q.data[index]} + // } + // } + } + + } else { + if (c.indexOf("时间") == -1) + if (q.data[index].length > showWord) { + return {q.data[index].substring(0, showWord) + '...'} + } + return {q.data[index]} + } + + // c === changeStyleCol ? + // color ? + // {q.data[index]} + // : q.levelbg ? + // q.isSiteAlermListMock ? 已处理 : + // {q.data[index]} + // : {q.data[index]} + + + // : ['时间'].indexOf(c) != -1 ? !customColorBox ? {q.data[index]} : + // + + // : c.indexOf("时间") == -1 && q.data[index].length > showWord ? + // {q.data[index].substring(0, showWord) + '...'} + // : {q.data[index]} + } + + getContent = () => { + const { changeStyleCol, heads, spans, data, showWord, color, dataTextAlign, customColorBox, } = this.props; + let result =
    ; + if (data) { + result = data.map((q, idx) => { + return ( +
    + + {q.data[1] == -1 ? null : heads.map((c, index) => { + let extraStyle = {} + if (q.isSiteAlermListMock && c == "状态") { + extraStyle = { color: "green" } + } + + return
    + { + this.loadDataColumn(c, index, q) + } + + }) + } + + + ) + }) + } else { + result =
    + +
    + } + return result; + } + + render() { + + const { heads, spans, divId, divHeight, content, color, titleLeft, containerStyle = {} } = this.props; + return ( +
    + {heads ? + + {heads.map((c, index) => { + return
    {c} + }) + } + + : ''} +
    +
    + {content ? content : ''} + {this.getContent()} +
    +
    + + ) + } +} diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/style.less b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/style.less new file mode 100644 index 00000000..2ad0bd00 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/style.less @@ -0,0 +1,6 @@ +.hidden-scroll-bar-y{ + overflow-y: scroll !important; + scrollbar-width: none !important; +} + +.hidden-scroll-bar-y::-webkit-scrollbar { width: 0 !important } \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/toplunbo.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/toplunbo.js new file mode 100644 index 00000000..910a3937 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/lunbo/toplunbo.js @@ -0,0 +1,57 @@ +import React, { useState, useEffect } from 'react' +import Lunbotop from "./lunbo" + +const Toplunbo = () => { + const [list, setList] = useState([ + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + { name: "南昌宁昌物流运输有限公司" }, + ]) + const renderBody = () => { + return ( +
    + { + list.map((item, index) => { + return
    {item.name}
    + }) + } +
    + ) + } + return ( + <> +
    +
    +
    + +

    危险货运

    +
    +
    + +
    + + ) +} +export default Toplunbo \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left.js b/web/client/src/sections/quanju/containers/footer/leadership/left.js index 5b6c1649..ab464e2b 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left.js @@ -1,6 +1,6 @@ import React from 'react' import Lefttop from './left/left-top' -import Leftcenter from "./left/left-center" +// import Leftcenter from "./left/left-center" import Leftbottom from './left/left-bottom' const Left = () => { @@ -8,7 +8,7 @@ const Left = () => { <>
    - +
    diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left/echarts/leftbottomecharts.js b/web/client/src/sections/quanju/containers/footer/leadership/left/echarts/leftbottomecharts.js index bfec0134..906278be 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left/echarts/leftbottomecharts.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left/echarts/leftbottomecharts.js @@ -3,67 +3,139 @@ import * as echarts from 'echarts'; const Leftbottomecharts = () => { const chartRef = useRef(null); - useEffect(() => { - let chartInstance = echarts.init(chartRef.current); + var chartInstance = echarts.init(chartRef.current); const option = { - - xAxis: { - type: "category", - data: ["街道1", "街道2", "街道3", "街道4", "街道5", "街道6", "街道7"], + title: { }, - yAxis: [ - { type: "value" }, + tooltip: { + trigger: "axis", + axisPointer: { + lineStyle: { + color: "#57617B", + }, + }, + }, + legend: { + icon: "rect", + itemWidth: 14, + itemHeight: 5, + itemGap: 13, + data: ["移动"], + right: "4%", + // textStyle: { + // fontSize: 12, + // color: "#F1F1F3", + // }, + }, + grid: { + top: "18%", + left: "3%", + right: "4%", + bottom: "3%", + containLabel: true, + }, + xAxis: [ { - type: "value", - nameTextStyle: { - color: "#ccc", + type: "category", + boundaryGap: true, + axisTick: { + show: false, }, - splitNumber: 5, - splitLine: { - show: true, + axisLine: { lineStyle: { - type: "dashed", - width: 1, - color: ["#ccc", "#ccc"], + color: "rgba(176,215,255,0.4)", }, }, - axisLabel: { + data: [ + "13:00", + "13:05", + "13:10", + "13:15", + ], + normal: { + lineStyle: { + color: "red"//折线的颜色 + } + } + }, + ], + yAxis: [ + { + // type: "value", + // show: true, + // type: "value", + splitLine: { show: true, - textStyle: { - fontSize: 12, - }, + lineStyle: { + color: "rgba(176,215,255,0.2500)", + type: "dashed" + } + }, //去除网格线 + // nameTextStyle: { + // color: "#abb8ce", + // }, + // axisLabel: { + // color: "#abb8ce", + // }, + axisTick: { + //y轴刻度线 + show: false, + }, + axisLine: { + // y轴 + show: false, }, }, ], - tooltip: { - trigger: "axis", - axisPointer: { - type: "shadow", - }, - textStyle: { - color: "#fff", - align: "left", - fontSize: 14, - }, - backgroundColor: "rgba(0,0,0,0.8)", - }, series: [ { - name: "完成率", - data: [50, 130, 124, 18, 35, 47, 160], - yAxisIndex: 1, + // name: "移动", type: "line", smooth: true, + symbol: "circle", + symbolSize: 5, + showSymbol: false, + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: "rgba(176,215,255,0.2500)", + }, + { + offset: 0.8, + color: "rgba(0,150,255,0)", + }, + ], + false + ), + shadowBlur: 10, + }, + }, + data: [220, 182, 191, 134], }, ], }; chartInstance.setOption(option); + window.addEventListener('resize', function () { + chartInstance.resize(); + }) }, []); + return ( <> -
    +
    +

    公里数Km

    +
    ); } diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left/left-bottom.js b/web/client/src/sections/quanju/containers/footer/leadership/left/left-bottom.js index 1164dab6..8fbcd053 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left/left-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left/left-bottom.js @@ -6,7 +6,7 @@ const Leftbottom = () => { const style = { height: "28%", marginTop: "5%" } return ( <> - + diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left/left-center.js b/web/client/src/sections/quanju/containers/footer/leadership/left/left-center.js index 9beb1113..052e59c4 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left/left-center.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left/left-center.js @@ -1,13 +1,95 @@ -import React from 'react' +import React, { useEffect, useState } from 'react' import Module from '../../../public/module' +import Lunbo from "../centerleft/lunbo/lunbo" +// import "./left.less" const Leftcenter = () => { const style = { height: "30%", marginTop: "5%" } + // const hualun = "auto" + const [num, setNum] = useState(1); + const [tu, setTu] = useState(""); + const [name, setName] = useState(""); + const [list, setList] = useState([ + { name: '静夜思', img: "/assets/images/leadership/shiyantu.png" }, + { name: '唐-李白', img: "/assets/images/leadership/shiyantu.png" }, + { name: '窗前明月光', img: "/assets/images/leadership/shiyantu.png" }, + { name: '疑是地上霜', img: "/assets/images/leadership/shiyantu.png" }, + { name: '举头望明月', img: "/assets/images/leadership/shiyantu.png" }, + { name: '低头思故乡', img: "/assets/images/leadership/shiyantu.png" }, + { name: '静夜思', img: "/assets/images/leadership/shiyantu.png" }, + { name: '唐-李白', img: "/assets/images/leadership/shiyantu.png" }, + { name: '窗前明月光', img: "/assets/images/leadership/shiyantu.png" }, + { name: '疑是地上霜', img: "/assets/images/leadership/shiyantu.png" }, + { name: '举头望明月', img: "/assets/images/leadership/shiyantu.png" }, + { name: '低头思故乡', img: "/assets/images/leadership/shiyantu.png" }, + ]) + useEffect(() => { + const timer = setInterval(() => { + if (num == 12) { + setNum(1); + setTu(list[0].img); + } else { + setNum(num + 1); + setTu(list[num].img); + } + }, 6000); + return () => clearInterval(timer); + }, [num]); + const renderBody = () => { + return ( +
    { + list.map((item, index) => { + return ( + //
    + // {/*
    */} +
  • { + setTu(item.img); + setNum(index + 1); + setName(item.name) + // console.log(list); + }}>{item.name}
  • + // {/*
    */} + //
    + ) + + }) + } +
    + ) + } return ( <> - +
    + {/*

    {title || []}

    */} + + 主要路段拥堵情况分析 + +
    +
    +
    + { + list.map((item, index) => { + return index + 1 == num ? +
    + +

    {item.name}

    +
    : "" + + }) - + } +
    + +
    ) } diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js b/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js index f879054b..c486d189 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js @@ -1,12 +1,47 @@ import React from 'react' import Module from '../../../public/module' +import Leftcenter from './left-center' const Lefttop = () => { - const style = { height: "25%", height: "35%" } + const style = { height: "68%" } return ( <> - {/*
    */} +
    +
    +
    + +

    路况

    +

    畅通

    +
    +
    + +

    平均时速

    +

    55.2Km/h

    +
    +
    + +

    预测明日

    +

    55.2Km/h

    +
    +
    +
    + +
    +
    +
    + +
    +
    ) diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/left.less b/web/client/src/sections/quanju/containers/footer/leadership/right/left.less new file mode 100644 index 00000000..b5333c1a --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/left.less @@ -0,0 +1,3 @@ +li{ + list-style-type:none +} \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/lunbo.js b/web/client/src/sections/quanju/containers/footer/leadership/right/lunbo.js new file mode 100644 index 00000000..ab086a11 --- /dev/null +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/lunbo.js @@ -0,0 +1,139 @@ +'use strict' +import React, { Component } from 'react'; +import { Row, Col } from 'antd'; + +export default class AutoRollComponent extends Component { + + constructor(props) { + super(props); + this.scrollElem = null; + this.stopscroll = false; + this.preTop = 0; + this.cloneEle = null; + this.currentTop = 0; + this.marqueesHeight = 0; + this.interval = null; + this.state = { + enabledScroll: false + } + } + + get enabledScroll() { + let scrollElem = document.getElementById(this.props.divId); + let fatherElem = scrollElem?.parentNode || null; + if (scrollElem && fatherElem) { + return scrollElem.scrollHeight > fatherElem.scrollHeight + } + + return false; + } + + + marque = (height) => { + try { + this.scrollElem = document.getElementById(this.props.divId); + this.marqueesHeight = height; + if (this.scrollElem) { + this.scrollElem.style.height = this.marqueesHeight; + this.scrollElem.style.overflow = 'hidden'; + } + this.repeat(); + } catch (e) { console.log(e) } + } + + + repeat = () => { + this.scrollElem.scrollTop = 0; + let offset = 1.5 + + this.interval = setInterval(() => { + if (this.stopscroll) return; + this.currentTop = this.currentTop + offset; + this.preTop = this.scrollElem.scrollTop; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + offset; + // console.log(`this.scrollElem.scrollTop:${this.scrollElem.scrollTop} === this.preTop:${this.preTop}`); + if (this.preTop === this.scrollElem.scrollTop) { + this.scrollElem.scrollTop = this.marqueesHeight; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + offset; + } + }, 40); + } + + + componentWillUnmount() { + clearInterval(this.interval); + } + + componentWillReceiveProps(nextProps) { + requestAnimationFrame(() => { + if (this.enabledScroll) { + if (!this.state.enabledScroll) { + this.setState({ enabledScroll: true }, () => { + this.marque(10) + }) + } + + } + }) + } + + componentDidMount() { + if (this.enabledScroll) { + this.setState({ enabledScroll: true }, () => { + this.marque(10) + }) + } + } + + onMouseOver = () => { + this.stopscroll = true; + } + + onMouseOut = () => { + this.stopscroll = false; + } + + + render() { + + const { changeStyleCol, heads, spans, data, divId, divHeight, content, containerStyle = {} } = this.props; + + return ( +
    + { + heads ? + + {heads.map((c, index) => { + return
    {c} + }) + } + : '' + } + +
    +
    + {content ? content : ''} + {this.state.enabledScroll && content ? content : ''} + { + data ? + data.map((q, idx) => { + return ( +
    + + {heads.map((c, index) => { + return
    + {index == 1 ? q.data[index] == -1 ? "-" : q.data[index] : index == 2 ? q.data[1] == -1 ? '-' : q.data[index] : q.data[index]} + }) + } + + + ) + }) : '' + } +
    + + + + ) + } +} \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js b/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js index 1b534859..470a4c58 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js @@ -1,12 +1,80 @@ -import React from 'react' +import React, { useState, useEffect } from 'react' import Module from '../../../public/module' +import Lun from "./lunbo" +import "./left.less" const Rightbottom = () => { const style = { height: "28%", marginTop: "4%" } + const [beijing, setBeijing] = useState() + const [list, setList] = useState([{ name: "苏LD1112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD11121", chaoxian: "30%", penalty: "-6分和扣200元", days: "2022年5月4日" }, + { name: "苏LD112512121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏L1112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD1151121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD1112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD11912121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD16112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏L2D111221", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "62", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD11152121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏L1D1112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD11512121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD13112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD111612121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD111216221", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏L63D1112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD163112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD162112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }, + { name: "苏LD651112121", chaoxian: "30%", penalty: "-6分", days: "2022年5月4日" }]) + const renderBody = () => { + return ( + //
    { + // lists.map((item, index) => { + // return (
    + //
    + //
  • { + // }}>{item.name}
  • + //
    + //
    ) + + // }) + // } + //
    +
    + {list.map((item, index) => { + return
  • { + setBeijing(item.name) + console.log(beijing); + }}> +
    {item.name}
    +
    {item.chaoxian}
    +
    {item.penalty}
    +
    {item.days}
  • + }) + + } +
    + ) + } return ( <> - - + +
    + + 已处理192件 +
    +
    +

    车牌号

    +

    超限

    +

    处罚

    +

    日期

    +
    +
    ) diff --git a/web/client/src/sections/quanju/containers/public/left.less b/web/client/src/sections/quanju/containers/public/left.less new file mode 100644 index 00000000..a675a58d --- /dev/null +++ b/web/client/src/sections/quanju/containers/public/left.less @@ -0,0 +1,25 @@ +#scroll-2::-webkit-scrollbar{ + width:4px; + height:4px; +} +#scroll-2::-webkit-scrollbar-track{ + background: #f6f6f6; + border-radius:2px; +} +#scroll-2::-webkit-scrollbar-thumb{ + background: #aaa; + border-radius:2px; +} +#scroll-2::-webkit-scrollbar-thumb:hover{ + background: #747474; +} +#scroll-2::-webkit-scrollbar-corner{ + background: #f6f6f6; +} +#screen-slope-midde-top-jiangxi{ + & > div > div{ + &:first-child{ + margin-bottom: 1px; + } + } + } \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/public/lunbo.js b/web/client/src/sections/quanju/containers/public/lunbo.js new file mode 100644 index 00000000..46735f50 --- /dev/null +++ b/web/client/src/sections/quanju/containers/public/lunbo.js @@ -0,0 +1,139 @@ +'use strict' +import React, { Component } from 'react'; +import { Row, Col } from 'antd'; + +export default class AutoRollComponent extends Component { + + constructor(props) { + super(props); + this.scrollElem = null; + this.stopscroll = false; + this.preTop = 0; + this.cloneEle = null; + this.currentTop = 0; + this.marqueesHeight = 0; + this.interval = null; + this.state = { + enabledScroll: false + } + } + + get enabledScroll() { + let scrollElem = document.getElementById(this.props.divId); + let fatherElem = scrollElem?.parentNode || null; + if (scrollElem && fatherElem) { + return scrollElem.scrollHeight > fatherElem.scrollHeight + } + + return false; + } + + + marque = (height) => { + try { + this.scrollElem = document.getElementById(this.props.divId); + this.marqueesHeight = height; + if (this.scrollElem) { + this.scrollElem.style.height = this.marqueesHeight; + this.scrollElem.style.overflow = 'hidden'; + } + this.repeat(); + } catch (e) { console.log(e) } + } + + + repeat = () => { + this.scrollElem.scrollTop = 0; + let offset = 1.5 + + this.interval = setInterval(() => { + if (this.stopscroll) return; + this.currentTop = this.currentTop + offset; + this.preTop = this.scrollElem.scrollTop; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + offset; + // console.log(`this.scrollElem.scrollTop:${this.scrollElem.scrollTop} === this.preTop:${this.preTop}`); + if (this.preTop === this.scrollElem.scrollTop) { + this.scrollElem.scrollTop = this.marqueesHeight; + this.scrollElem.scrollTop = this.scrollElem.scrollTop + offset; + } + }, 300000); + } + + + componentWillUnmount() { + clearInterval(this.interval); + } + + componentWillReceiveProps(nextProps) { + requestAnimationFrame(() => { + if (this.enabledScroll) { + if (!this.state.enabledScroll) { + this.setState({ enabledScroll: true }, () => { + this.marque(10) + }) + } + + } + }) + } + + componentDidMount() { + if (this.enabledScroll) { + this.setState({ enabledScroll: true }, () => { + this.marque(10) + }) + } + } + + onMouseOver = () => { + this.stopscroll = true; + } + + onMouseOut = () => { + this.stopscroll = false; + } + + + render() { + + const { changeStyleCol, heads, spans, data, divId, divHeight, content, containerStyle = {} } = this.props; + + return ( +
    + { + heads ? + + {heads.map((c, index) => { + return
    {c} + }) + } + : '' + } + +
    +
    + {content ? content : ''} + {this.state.enabledScroll && content ? content : ''} + { + data ? + data.map((q, idx) => { + return ( +
    + + {heads.map((c, index) => { + return
    + {index == 1 ? q.data[index] == -1 ? "-" : q.data[index] : index == 2 ? q.data[1] == -1 ? '-' : q.data[index] : q.data[index]} + }) + } + + + ) + }) : '' + } +
    + + + + ) + } +} \ No newline at end of file diff --git a/web/client/src/sections/quanju/containers/public/module.js b/web/client/src/sections/quanju/containers/public/module.js index eb1fefb5..e3aaa454 100644 --- a/web/client/src/sections/quanju/containers/public/module.js +++ b/web/client/src/sections/quanju/containers/public/module.js @@ -1,8 +1,9 @@ import React from 'react' import "./font.css" +import "./left.less" const Module = (props) => { - const { style, children, title } = props + const { style, children, title, hualun,customize } = props return ( <>
    @@ -12,7 +13,7 @@ const Module = (props) => { {title || []}
    -
    +
    {children}
    diff --git a/web/client/src/themes/light.json b/web/client/src/themes/light.json index c59ee5e5..a7c012cd 100644 --- a/web/client/src/themes/light.json +++ b/web/client/src/themes/light.json @@ -1 +1 @@ -{"@line-height-base":"1.66667","@mode":"compact","@font-size-base":"12px","@font-size-lg":"@font-size-base + 2px","@default-padding-lg":"24px","@default-padding-md":"16px","@default-padding-sm":"12px","@default-padding-xs":"8px","@default-padding-xss":"4px","@padding-lg":"16px","@padding-md":"8px","@padding-sm":"8px","@padding-xs":"4px","@padding-xss":"0px","@control-padding-horizontal":"@padding-sm","@control-padding-horizontal-sm":"@default-padding-xs","@margin-lg":"16px","@margin-md":"8px","@margin-sm":"8px","@margin-xs":"4px","@margin-xss":"0px","@height-base":"28px","@height-lg":"32px","@height-sm":"22px","@btn-padding-horizontal-base":"@default-padding-sm - 1px","@btn-padding-horizontal-lg":"@btn-padding-horizontal-base","@btn-padding-horizontal-sm":"@default-padding-xs - 1px","@btn-square-only-icon-size-lg":"16px","@btn-square-only-icon-size":"14px","@btn-square-only-icon-size-sm":"12px","@breadcrumb-font-size":"@font-size-base","@breadcrumb-icon-font-size":"@font-size-base","@dropdown-line-height":"18px","@menu-item-padding":"0 12px","@menu-horizontal-line-height":"38px","@menu-inline-toplevel-item-height":"32px","@menu-item-height":"32px","@menu-item-vertical-margin":"0px","@menu-item-boundary-margin":"0px","@menu-icon-margin-right":"8px","@checkbox-size":"14px","@checkbox-group-item-margin-right":"6px","@picker-panel-cell-height":"22px","@picker-panel-cell-width":"32px","@picker-text-height":"32px","@picker-time-panel-cell-height":"24px","@picker-panel-without-time-cell-height":"48px","@form-item-margin-bottom":"16px","@form-vertical-label-padding":"0 0 4px","@rate-star-size":"16px","@radio-size":"14px","@radio-wrapper-margin-right":"6px","@switch-height":"20px","@switch-sm-height":"14px","@switch-min-width":"40px","@switch-sm-min-width":"24px","@switch-inner-margin-min":"4px","@switch-inner-margin-max":"22px","@slider-handle-size":"12px","@slider-handle-margin-top":"-4px","@input-padding-vertical-base":"round(\n max(\n (round(((@input-height-base - @font-size-base * @line-height-base) / 2) * 10) / 10) -\n @border-width-base,\n 2px\n )\n)","@input-padding-horizontal-lg":"11px","@page-header-padding":"16px","@page-header-padding-vertical":"8px","@page-header-heading-title":"16px","@page-header-heading-sub-title":"12px","@page-header-tabs-tab-font-size":"14px","@pagination-mini-options-size-changer-top":"1px","@pagination-item-size-sm":"22px","@cascader-dropdown-line-height":"@dropdown-line-height","@select-dropdown-height":"@height-base","@select-single-item-height-lg":"32px","@select-multiple-item-height":"@input-height-base - max(@input-padding-vertical-base, 4) * 2","@select-multiple-item-height-lg":"24px","@select-multiple-item-spacing-half":"3px","@tree-title-height":"20px","@transfer-item-padding-vertical":"3px","@transfer-list-search-icon-top":"8px","@transfer-header-height":"36px","@comment-actions-margin-bottom":"0px","@comment-actions-margin-top":"@margin-xs","@comment-content-detail-p-margin-bottom":"0px","@steps-icon-size":"24px","@steps-icon-custom-size":"20px","@steps-icon-custom-font-size":"20px","@steps-icon-custom-top":"2px","@steps-icon-margin":"2px 8px 2px 0","@steps-icon-font-size":"@font-size-base","@steps-dot-top":"4px","@steps-icon-top":"0px","@steps-small-icon-size":"20px","@steps-vertical-icon-width":"12px","@steps-vertical-tail-width":"12px","@steps-vertical-tail-width-sm":"10px","@collapse-header-padding-extra":"32px","@collapse-content-padding":"@padding-md @padding-lg","@list-item-meta-description-font-size":"@font-size-sm","@list-item-padding-sm":"4px 12px","@list-item-padding-lg":"12px 16px","@drawer-header-padding":"11px @padding-lg","@drawer-footer-padding-vertical":"@padding-sm","@drawer-footer-padding-horizontal":"@padding-sm","@drawer-header-close-size":"44px","@modal-header-padding-vertical":"11px","@modal-header-padding":"@modal-header-padding-vertical @modal-header-padding-horizontal","@modal-footer-padding-vertical":"@padding-sm","@modal-header-close-size":"@modal-header-title-line-height + 2 * @modal-header-padding-vertical","@modal-confirm-body-padding":"24px 24px 16px","@message-notice-content-padding":"8px 16px","@popover-min-height":"28px","@popover-padding-horizontal":"@default-padding-sm","@card-padding-base":"12px","@card-head-height":"36px","@card-head-font-size":"@card-head-font-size-sm","@card-head-padding":"8.5px","@card-padding-base-sm":"@card-padding-base","@card-head-height-sm":"30px","@card-head-padding-sm":"6px","@card-actions-li-margin":"4px 0","@card-head-tabs-margin-bottom":"-9px","@table-padding-vertical":"12px","@table-padding-horizontal":"8px","@table-padding-vertical-md":"8px","@table-padding-horizontal-md":"8px","@table-padding-vertical-sm":"4px","@table-padding-horizontal-sm":"4px","@table-selection-column-width":"32px","@statistic-content-font-size":"20px","@alert-with-description-no-icon-padding-vertical":"7px","@alert-with-description-padding-vertical":"11px","@alert-icon-top":"7px + @font-size-base * (@line-height-base / 2) - (@font-size-base / 2)","@alert-with-description-icon-size":"20px","@skeleton-paragraph-margin-top":"20px","@skeleton-paragraph-li-margin-top":"12px","@skeleton-paragraph-li-height":"14px","@skeleton-title-height":"14px","@skeleton-title-paragraph-margin-top":"20px","@descriptions-title-margin-bottom":"8px","@descriptions-default-padding":"12px @padding-lg","@descriptions-item-padding-bottom":"@padding-xs","@avatar-size-base":"28px","@avatar-size-lg":"32px","@avatar-size-sm":"22px","@avatar-font-size-base":"16px","@avatar-font-size-lg":"20px","@avatar-font-size-sm":"12px","@badge-height":"18px","@tag-line-height":"18px","@notification-padding-vertical":"12px","@notification-padding-horizontal":"16px","@result-title-font-size":"20px","@result-icon-font-size":"64px","@result-extra-margin":"24px 0 0 0","@anchor-link-top":"4px","@anchor-link-left":"16px","@anchor-link-padding":"@anchor-link-top 0 @anchor-link-top @anchor-link-left","@tabs-card-horizontal-padding":"4px @padding-md","@progress-circle-text-font-size":"0.833333em","@image-size-base":"48px","@image-font-size-base":"24px","@primary-color":"@blue-6","@layout-header-background":"#fff"} \ No newline at end of file +{"@line-height-base":"1.66667","@mode":"compact","@font-size-base":"12px","@font-size-lg":"@font-size-base + 2px","@default-padding-lg":"24px","@default-padding-md":"16px","@default-padding-sm":"12px","@default-padding-xs":"8px","@default-padding-xss":"4px","@padding-lg":"16px","@padding-md":"8px","@padding-sm":"8px","@padding-xs":"4px","@padding-xss":"0px","@control-padding-horizontal":"@padding-sm","@control-padding-horizontal-sm":"@default-padding-xs","@margin-lg":"16px","@margin-md":"8px","@margin-sm":"8px","@margin-xs":"4px","@margin-xss":"0px","@height-base":"28px","@height-lg":"32px","@height-sm":"22px","@btn-padding-horizontal-base":"@default-padding-sm - 1px","@btn-padding-horizontal-lg":"@btn-padding-horizontal-base","@btn-padding-horizontal-sm":"@default-padding-xs - 1px","@btn-square-only-icon-size-lg":"16px","@btn-square-only-icon-size":"14px","@btn-square-only-icon-size-sm":"12px","@breadcrumb-font-size":"@font-size-base","@breadcrumb-icon-font-size":"@font-size-base","@dropdown-line-height":"18px","@menu-item-padding":"0 12px","@menu-horizontal-line-height":"38px","@menu-inline-toplevel-item-height":"32px","@menu-item-height":"32px","@menu-item-vertical-margin":"0px","@menu-item-boundary-margin":"0px","@menu-icon-margin-right":"8px","@checkbox-size":"14px","@checkbox-group-item-margin-right":"6px","@picker-panel-cell-height":"22px","@picker-panel-cell-width":"32px","@picker-text-height":"32px","@picker-time-panel-cell-height":"24px","@picker-panel-without-time-cell-height":"48px","@form-item-margin-bottom":"16px","@form-vertical-label-padding":"0 0 4px","@rate-star-size":"16px","@radio-size":"14px","@radio-wrapper-margin-right":"6px","@switch-height":"20px","@switch-sm-height":"14px","@switch-min-width":"40px","@switch-sm-min-width":"24px","@switch-inner-margin-min":"4px","@switch-inner-margin-max":"22px","@slider-handle-size":"12px","@slider-handle-margin-top":"-4px","@input-padding-vertical-base":"round(\n max(\n (round(((@input-height-base - @font-size-base * @line-height-base) / 2) * 10) / 10) -\n @border-width-base,\n 2px\n )\n)","@input-padding-horizontal-lg":"11px","@page-header-padding":"16px","@page-header-padding-vertical":"8px","@page-header-heading-title":"16px","@page-header-heading-sub-title":"12px","@page-header-tabs-tab-font-size":"14px","@pagination-mini-options-size-changer-top":"1px","@pagination-item-size-sm":"22px","@cascader-dropdown-line-height":"@dropdown-line-height","@select-dropdown-height":"@height-base","@select-single-item-height-lg":"32px","@select-multiple-item-height":"@input-height-base - max(@input-padding-vertical-base, 4) * 2","@select-multiple-item-height-lg":"24px","@select-multiple-item-spacing-half":"3px","@tree-title-height":"20px","@transfer-item-padding-vertical":"3px","@transfer-list-search-icon-top":"8px","@transfer-header-height":"36px","@comment-actions-margin-bottom":"0px","@comment-actions-margin-top":"@margin-xs","@comment-content-detail-p-margin-bottom":"0px","@steps-icon-size":"24px","@steps-icon-custom-size":"20px","@steps-icon-custom-font-size":"20px","@steps-icon-custom-top":"2px","@steps-icon-margin":"2px 8px 2px 0","@steps-icon-font-size":"@font-size-base","@steps-dot-top":"4px","@steps-icon-top":"0px","@steps-small-icon-size":"20px","@steps-vertical-icon-width":"12px","@steps-vertical-tail-width":"12px","@steps-vertical-tail-width-sm":"10px","@collapse-header-padding-extra":"32px","@collapse-content-padding":"@padding-md @padding-lg","@list-item-meta-description-font-size":"@font-size-sm","@list-item-padding-sm":"4px 12px","@list-item-padding-lg":"12px 16px","@drawer-header-padding":"11px @padding-lg","@drawer-footer-padding-vertical":"@padding-sm","@drawer-footer-padding-horizontal":"@padding-sm","@drawer-header-close-size":"44px","@modal-header-padding":"11px @modal-header-padding-horizontal","@modal-footer-padding-vertical":"@padding-sm","@modal-header-close-size":"44px","@modal-confirm-body-padding":"24px 24px 16px","@message-notice-content-padding":"8px 16px","@popover-min-height":"28px","@popover-padding-horizontal":"@default-padding-sm","@card-padding-base":"12px","@card-head-height":"36px","@card-head-font-size":"@card-head-font-size-sm","@card-head-padding":"8.5px","@card-padding-base-sm":"@card-padding-base","@card-head-height-sm":"30px","@card-head-padding-sm":"6px","@card-actions-li-margin":"4px 0","@card-head-tabs-margin-bottom":"-9px","@table-padding-vertical":"12px","@table-padding-horizontal":"8px","@table-padding-vertical-md":"8px","@table-padding-horizontal-md":"8px","@table-padding-vertical-sm":"4px","@table-padding-horizontal-sm":"4px","@table-selection-column-width":"32px","@statistic-content-font-size":"20px","@alert-with-description-no-icon-padding-vertical":"7px","@alert-with-description-padding-vertical":"11px","@alert-icon-top":"7px + @font-size-base * (@line-height-base / 2) - (@font-size-base / 2)","@alert-with-description-icon-size":"20px","@skeleton-paragraph-margin-top":"20px","@skeleton-paragraph-li-margin-top":"12px","@skeleton-paragraph-li-height":"14px","@skeleton-title-height":"14px","@skeleton-title-paragraph-margin-top":"20px","@descriptions-title-margin-bottom":"8px","@descriptions-default-padding":"12px @padding-lg","@descriptions-item-padding-bottom":"@padding-xs","@avatar-size-base":"28px","@avatar-size-lg":"32px","@avatar-size-sm":"22px","@avatar-font-size-base":"16px","@avatar-font-size-lg":"20px","@avatar-font-size-sm":"12px","@badge-height":"18px","@tag-line-height":"18px","@notification-padding-vertical":"12px","@notification-padding-horizontal":"16px","@result-title-font-size":"20px","@result-icon-font-size":"64px","@result-extra-margin":"24px 0 0 0","@anchor-link-top":"4px","@anchor-link-left":"16px","@anchor-link-padding":"@anchor-link-top 0 @anchor-link-top @anchor-link-left","@tabs-card-horizontal-padding":"4px @padding-md","@progress-circle-text-font-size":"0.833333em","@image-size-base":"48px","@image-font-size-base":"24px","@primary-color":"@blue-6","@layout-header-background":"#fff"} \ No newline at end of file diff --git a/web/client/src/utils/webapi.js b/web/client/src/utils/webapi.js index 96b86ae0..7e36e0fd 100644 --- a/web/client/src/utils/webapi.js +++ b/web/client/src/utils/webapi.js @@ -38,15 +38,18 @@ export const ApiTable = { getReportRectifyDetail: 'report/rectify/detail', compileReportRectifyDetail: 'report/rectify/detail', - //报表下载 - getReportList: 'report/list', - // 数据 - getFundamental: 'daily/report/data/statistic', - getsortord: "daily/report/area/statistic?startDate={zuo}&endDate={day}", - //填报信息 - getReportStatistic: 'report/management/statistic', - reportDownLoad: '_report/http' + //运政管理 + getOperaTional:'vehicle', + getSpecificVehicle:'vehicle/specific', + getHouseholds:'vehicle/business', + //道路管理 + getRoadway:'road', +//桥梁管理 +getBridge:'bridge', +//工程数据 +getProject:'project' }; + export const RouteTable = { apiRoot: '/api/root', fileUpload: '/_upload/new', diff --git a/web/log/development.txt b/web/log/development.txt index 606a4d04..55947397 100644 --- a/web/log/development.txt +++ b/web/log/development.txt @@ -3415,5 +3415,70 @@ 2022-07-18 17:40:02.984 - info: [Router] Inject api: attachment/index 2022-07-19 09:38:20.086 - debug: [FS-LOGGER] Init. 2022-07-19 09:38:20.998 - info: [Router] Inject api: attachment/index +<<<<<<< HEAD +2022-07-21 15:22:04.942 - debug: [FS-LOGGER] Init. +2022-07-21 15:22:05.542 - info: [Router] Inject api: attachment/index +2022-07-21 17:03:00.480 - debug: [FS-LOGGER] Init. +2022-07-21 17:03:01.177 - info: [Router] Inject api: attachment/index +2022-07-21 18:12:39.625 - error: [FS-ERRHD] +{ + message: 'Error: connect ETIMEDOUT 10.8.30.157:8439', + name: 'RequestError', + cause: { + errno: -4039, + code: 'ETIMEDOUT', + syscall: 'connect', + address: '10.8.30.157', + port: 8439 + }, + error: { '$ref': '$["cause"]' }, + options: { + jar: false, + url: 'http://10.8.30.157:8439/enterprises/undefined/members?token=215ed57a-8244-4523-b2ed-5a6b12b51711', + headers: { + host: '10.8.30.157:8439', + connection: 'keep-alive', + 'sec-ch-ua': '" Not;A Brand";v="99", "Microsoft Edge";v="103", "Chromium";v="103"', + expires: '-1', + 'cache-control': 'no-cache,no-store,must-revalidate,max-age=-1,private', + 'x-requested-with': 'XMLHttpRequest', + '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.5060.114 Safari/537.36 Edg/103.0.1264.62', + 'sec-ch-ua-platform': '"Windows"', + accept: '*/*', + 'sec-fetch-site': 'same-origin', + 'sec-fetch-mode': 'cors', + 'sec-fetch-dest': 'empty', + referer: 'http://localhost:5000/quanju', + 'accept-encoding': 'gzip, deflate, br', + 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' + }, + 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.157:8439\n' + + ' at new RequestError (F:\\4hao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\errors.js:14:15)\n' + + ' at Request.plumbing.callback (F:\\4hao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:87:29)\n' + + ' at Request.RP$callback [as _callback] (F:\\4hao\\Highways4Good\\web\\node_modules\\request-promise-core\\lib\\plumbing.js:46:31)\n' + + ' at self.callback (F:\\4hao\\Highways4Good\\web\\node_modules\\request\\request.js:185:22)\n' + + ' at Request.emit (events.js:315:20)\n' + + ' at Request.onRequestError (F:\\4hao\\Highways4Good\\web\\node_modules\\request\\request.js:877:8)\n' + + ' at ClientRequest.emit (events.js:315:20)\n' + + ' at Socket.socketErrorListener (_http_client.js:461:9)\n' + + ' at Socket.emit (events.js:315:20)\n' + + ' at emitErrorNT (internal/streams/destroy.js:96:8)\n' + + ' at emitErrorCloseNT (internal/streams/destroy.js:68:3)\n' + + ' at processTicksAndRejections (internal/process/task_queues.js:84:21)' +} +======= 2022-07-20 19:15:55.678 - debug: [FS-LOGGER] Init. 2022-07-20 19:15:56.118 - info: [Router] Inject api: attachment/index +>>>>>>> 65cf2722eec21e1d07ce958f4298eec7ae620c85 diff --git a/web/readme.md b/web/readme.md index 5b89376a..5b60bd50 100644 --- a/web/readme.md +++ b/web/readme.md @@ -251,4 +251,4 @@ 所以在 client/src/themes/xx.json 中的中可以配置想变换的主题变量,变量的获取可以通过查看 antd、antdPro 的源码,然后在 color 中处理; ## 一些考量 -1. 文件上传,如需保存在api所在服务器,可以在api使用 @fs/attachment 包配合 client/src/component/Upload 使用,Upload 组件已经完美兼容该包的使用; \ No newline at end of file +1. 文件上传,如需保存在api所在服务器,可以在api使用 @fs/attachment 包配合 client/src/component/Upload 使用,Upload 组件已经完美兼容该包的使用; \ No newline at end of file