wangrong
7 天以前 25aad646f6e19a23b1903c5d2e1f2cacf3142a9d
修改监控摄像头自动播放1秒
6个文件已修改
836 ■■■■ 已修改文件
build/cool/eps.d.ts 470 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/cool/eps.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/basicdata/views/site.vue 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/ezuikit/components/ezuikit-player.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/monitor/components/site-tree.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/monitor/views/device.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/cool/eps.d.ts
@@ -1071,6 +1071,165 @@
        [key: string]: any;
    }
    interface PushCaptureTaskEntity {
        /**
         * ID
         */
        id?: number;
        /**
         * 设备序列号
         */
        deviceSerial?: string;
        /**
         * 通道号
         */
        channelNo?: number;
        /**
         * 抓图任务ID(萤石返回)
         */
        captureTaskId?: string;
        /**
         * 云空间spaceId
         */
        spaceId?: string;
        /**
         * 图片在云空间的URL
         */
        cloudUrl?: string;
        /**
         * 图片在本地的URL
         */
        localUrl?: string;
        /**
         * 本地存储路径
         */
        localPath?: string;
        /**
         * 抓拍状态
         */
        status?: string;
        /**
         * 任务执行日期
         */
        captureDate?: string;
        /**
         * 创建时间
         */
        createTime?: string;
        /**
         * 更新时间
         */
        updateTime?: string;
        /**
         * 任意键值
         */
        [key: string]: any;
    }
    interface OperationTradeRecordEntity {
        /**
         * ID
         */
        id?: number;
        /**
         * 交易时间
         */
        transactionTime?: Date;
        /**
         * 交易类型
         */
        transactionType?: string;
        /**
         * 交易对方
         */
        opponent?: string;
        /**
         * 商品名称
         */
        goodsName?: string;
        /**
         * 收支类型
         */
        incomeType?: string;
        /**
         * 金额
         */
        amount?: number;
        /**
         * 支付方式
         */
        payMethod?: string;
        /**
         * 当前状态
         */
        status?: string;
        /**
         * 交易单号
         */
        transactionNo?: string;
        /**
         * 商户单号
         */
        merchantNo?: string;
        /**
         * 备注
         */
        remark?: string;
        /**
         * 所属部门
         */
        departmentId?: number;
        /**
         * 原始文件路径
         */
        filepath?: string;
        /**
         * 创建时间
         */
        createTime?: string;
        /**
         * 更新时间
         */
        updateTime?: string;
        /**
         * 部门名称
         */
        departmentName?: string;
        /**
         * 任意键值
         */
        [key: string]: any;
    }
    interface OperationWastesaleEntity {
        /**
         * ID
@@ -2385,6 +2544,108 @@
        [key: string]: any;
    }
    interface ReportDailyVehicleEntity {
        /**
         * ID
         */
        id?: number;
        /**
         * 日期
         */
        date?: Date;
        /**
         * 车牌号
         */
        vehicleNo?: string;
        /**
         * 所属部门/学校/后勤组ID
         */
        departmentId?: number;
        /**
         * 当日行驶里程(km)
         */
        totalKm?: number;
        /**
         * 未启动时间(分钟)
         */
        minutesOffline?: number;
        /**
         * 纯行驶时长(分钟)
         */
        minutesMoving?: number;
        /**
         * 停车时长(分钟)
         */
        minutesParked?: number;
        /**
         * 异常怠速时长(分钟)
         */
        minutesAbnormalIdle?: number;
        /**
         * 平均行驶车速(km/h)
         */
        avgSpeed?: number;
        /**
         * 超速告警次数
         */
        overspeedCount?: number;
        /**
         * 超速累计时长(秒)
         */
        overspeedDurationSec?: number;
        /**
         * 急刹车次数
         */
        harshBrakeCount?: number;
        /**
         * 急加速次数
         */
        harshAccelCount?: number;
        /**
         * 急转弯次数
         */
        harshTurnCount?: number;
        /**
         * 非工作时段异动告警次数
         */
        offHoursMoveCount?: number;
        /**
         * 创建时间
         */
        createTime?: string;
        /**
         * 更新时间
         */
        updateTime?: string;
        /**
         * 部门名称
         */
        departmentName?: string;
        /**
         * 任意键值
         */
        [key: string]: any;
    }
    interface ReportJoblogEntity {
        /**
         * ID
@@ -2780,7 +3041,13 @@
    type json = any;
    type DictKey =
        "ratedpayload" | "iottype" | "sitetype" | "datachanel" | "vehicletype" | "businesstype";
        | "ratedpayload"
        | "iottype"
        | "sitetype"
        | "datachanel"
        | "vehicletype"
        | "businesstype"
        | "appointmentslot";
    interface PagePagination {
        size: number;
@@ -2870,6 +3137,16 @@
        list: DictTypeEntity[];
    }
    interface MonitorCapturetaskPageResponse {
        pagination: PagePagination;
        list: PushCaptureTaskEntity[];
    }
    interface OperationTraderecordPageResponse {
        pagination: PagePagination;
        list: OperationTradeRecordEntity[];
    }
    interface OperationWastesalePageResponse {
        pagination: PagePagination;
        list: OperationWastesaleEntity[];
@@ -2928,6 +3205,11 @@
    interface ReportDailysitePageResponse {
        pagination: PagePagination;
        list: ReportDailysiteEntity[];
    }
    interface ReportDailyvehiclePageResponse {
        pagination: PagePagination;
        list: ReportDailyVehicleEntity[];
    }
    interface ReportJoblogPageResponse {
@@ -4090,6 +4372,64 @@
        request: Request;
    }
    interface MonitorCapturetask {
        /**
         * 删除
         */
        delete(data?: any): Promise<any>;
        /**
         * 修改
         */
        update(data?: any): Promise<any>;
        /**
         * 单个信息
         */
        info(data?: any): Promise<PushCaptureTaskEntity>;
        /**
         * 列表查询
         */
        list(data?: any): Promise<PushCaptureTaskEntity[]>;
        /**
         * 分页查询
         */
        page(data?: any): Promise<MonitorCapturetaskPageResponse>;
        /**
         * 新增
         */
        add(data?: any): Promise<any>;
        /**
         * 权限标识
         */
        permission: {
            delete: string;
            update: string;
            info: string;
            list: string;
            page: string;
            add: string;
        };
        /**
         * 权限状态
         */
        _permission: {
            delete: boolean;
            update: boolean;
            info: boolean;
            list: boolean;
            page: boolean;
            add: boolean;
        };
        request: Request;
    }
    interface MonitorYs7 {
        /**
         * getToken
@@ -4105,6 +4445,71 @@
         * 权限状态
         */
        _permission: { getToken: boolean };
        request: Request;
    }
    interface OperationTraderecord {
        /**
         * 导入账单
         */
        import(data?: any): Promise<any>;
        /**
         * 删除
         */
        delete(data?: any): Promise<any>;
        /**
         * 修改
         */
        update(data?: any): Promise<any>;
        /**
         * 单个信息
         */
        info(data?: any): Promise<OperationTradeRecordEntity>;
        /**
         * 列表查询
         */
        list(data?: any): Promise<OperationTradeRecordEntity[]>;
        /**
         * 分页查询
         */
        page(data?: any): Promise<OperationTraderecordPageResponse>;
        /**
         * 新增
         */
        add(data?: any): Promise<any>;
        /**
         * 权限标识
         */
        permission: {
            import: string;
            delete: string;
            update: string;
            info: string;
            list: string;
            page: string;
            add: string;
        };
        /**
         * 权限状态
         */
        _permission: {
            import: boolean;
            delete: boolean;
            update: boolean;
            info: boolean;
            list: boolean;
            page: boolean;
            add: boolean;
        };
        request: Request;
    }
@@ -4783,6 +5188,64 @@
        request: Request;
    }
    interface ReportDailyvehicle {
        /**
         * 删除
         */
        delete(data?: any): Promise<any>;
        /**
         * 修改
         */
        update(data?: any): Promise<any>;
        /**
         * 单个信息
         */
        info(data?: any): Promise<ReportDailyVehicleEntity>;
        /**
         * 列表查询
         */
        list(data?: any): Promise<ReportDailyVehicleEntity[]>;
        /**
         * 分页查询
         */
        page(data?: any): Promise<ReportDailyvehiclePageResponse>;
        /**
         * 新增
         */
        add(data?: any): Promise<any>;
        /**
         * 权限标识
         */
        permission: {
            delete: string;
            update: string;
            info: string;
            list: string;
            page: string;
            add: string;
        };
        /**
         * 权限状态
         */
        _permission: {
            delete: boolean;
            update: boolean;
            info: boolean;
            list: boolean;
            page: boolean;
            add: boolean;
        };
        request: Request;
    }
    interface ReportJoblog {
        /**
         * 删除
@@ -5191,8 +5654,8 @@
        };
        demo: { goods: DemoGoods; tenant: DemoTenant };
        dict: { info: DictInfo; type: DictType };
        monitor: { ys7: MonitorYs7 };
        operation: { wastesale: OperationWastesale };
        monitor: { capturetask: MonitorCapturetask; ys7: MonitorYs7 };
        operation: { traderecord: OperationTraderecord; wastesale: OperationWastesale };
        plugin: { info: PluginInfo };
        push: {
            auditlog: PushAuditlog;
@@ -5207,6 +5670,7 @@
        report: {
            dailydepartment: ReportDailydepartment;
            dailysite: ReportDailysite;
            dailyvehicle: ReportDailyvehicle;
            joblog: ReportJoblog;
        };
        space: { info: SpaceInfo; type: SpaceType };
build/cool/eps.json
@@ -1 +1 @@
[{"prefix":"/admin/base/coding","name":"","api":[{"method":"get","path":"/getModuleTree"},{"method":"post","path":"/createCode"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"post","path":"/personUpdate"},{"method":"get","path":"/uploadMode"},{"method":"get","path":"/permmenu"},{"method":"get","path":"/program"},{"method":"get","path":"/person"},{"method":"post","path":"/upload"},{"method":"post","path":"/logout"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captcha"},{"method":"post","path":"/login"},{"method":"get","path":"/html"},{"method":"get","path":"/eps"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/order"},{"method":"post","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"post","path":"/setKeep"},{"method":"get","path":"/getKeep"},{"method":"post","path":"/clear"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"姓名","nullable":true,"source":"b.name"},{"propertyName":"action","type":"string","length":"","comment":"行为","nullable":false,"source":"a.action"},{"propertyName":"ip","type":"string","length":"","comment":"ip","nullable":true,"source":"a.ip"}]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/create"},{"method":"post","path":"/export"},{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/parse"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"get","path":"/stringbykey"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/html"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataType","type":"number","length":"","comment":"数据类型 0-字符串 1-富文本 2-文件 ","nullable":false,"defaultValue":0,"source":"a.dataType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"keyName","type":"string","length":"","comment":"键","nullable":false,"source":"a.keyName"}]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"label","type":"string","length":"50","comment":"角色标签","nullable":true,"source":"a.label"}]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/move"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/buyer","name":"BasicdataBuyerEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"部门ID","nullable":true,"source":"a.departmentId"},{"propertyName":"name","type":"string","length":"200","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"contact","type":"string","length":"50","comment":"联系人","nullable":true,"source":"a.contact"}],"fieldLike":[{"propertyName":"name","type":"string","length":"200","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"address","type":"string","length":"255","comment":"地址","nullable":true,"source":"a.address"}],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/driver","name":"BasicdataDriverEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["激活","禁用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"64","comment":"身份证号","nullable":false,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"手机号","nullable":true,"source":"a.phone"},{"propertyName":"licenseNo","type":"string","length":"64","comment":"驾驶证号","nullable":true,"source":"a.licenseNo"}]}},{"prefix":"/admin/basicdata/iot","name":"BasicdataIotEntity","api":[{"method":"post","path":"/getYsDevices"},{"method":"post","path":"/getSitelist"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"iotTypeCode","type":"string","length":"","comment":"终端类型","nullable":false,"source":"a.iotTypeCode"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"iotName","type":"string","length":"","comment":"终端名称","nullable":false,"source":"a.iotName"},{"propertyName":"iotCode","type":"string","length":"","comment":"终端编码","nullable":false,"source":"a.iotCode"}]}},{"prefix":"/admin/basicdata/site","name":"BasicdataSiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"number","length":"","comment":"归属单位","nullable":false,"source":"a.departmentId"},{"propertyName":"siteType","type":"string","length":"","comment":"站点类型","nullable":false,"defaultValue":"收集点","dict":"sitetype","source":"a.siteType"},{"propertyName":"status","type":"number","length":"","comment":"是否启用","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"address","type":"string","length":"","comment":"地址","nullable":false,"source":"a.address"},{"propertyName":"leader","type":"string","length":"","comment":"负责人","nullable":false,"source":"a.leader"}]}},{"prefix":"/admin/basicdata/sorter","name":"BasicdataSorterEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["在职","离职","禁用"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessName","type":"string","length":"64","comment":"姓名","nullable":false,"source":"a.businessName"},{"propertyName":"businessId","type":"string","length":"32","comment":"身份证号","nullable":true,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"手机号","nullable":true,"source":"a.phone"}]}},{"prefix":"/admin/basicdata/vehicle","name":"BasicdataVehicleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"vehicleType","type":"string","length":"","comment":"车型","nullable":false,"defaultValue":"厢式货车","dict":"vehicletype","source":"a.vehicleType"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["启用","禁用"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"32","comment":"车牌号","nullable":false,"source":"a.businessId"},{"propertyName":"defaultDriver","type":"bigint","length":"","comment":"默认司机","nullable":true,"source":"a.defaultDriver"}]}},{"prefix":"/admin/basicdata/wastetype","name":"BasicdataWastetypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"isRecyclable","type":"number","length":"","comment":"是否可回收","nullable":false,"defaultValue":0,"dict":["否","是"],"source":"a.isRecyclable"},{"propertyName":"status","type":"number","length":"","comment":"是否启用","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"code","type":"string","length":"","comment":"代码","nullable":false,"source":"a.code"}]}},{"prefix":"/admin/demo/goods","name":"DemoGoodsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[{"propertyName":"title","type":"string","length":"50","comment":"标题","nullable":false,"source":"a.title"}],"keyWordLikeFields":[{"propertyName":"description","type":"string","length":"","comment":"描述","nullable":true,"source":"a.description"}]}},{"prefix":"/admin/demo/tenant","name":"DemoGoodsEntity","api":[{"method":"post","path":"/noTenant"},{"method":"post","path":"/noUse"},{"method":"post","path":"/use"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/types"},{"method":"post","path":"/data"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/monitor/ys7","name":"","api":[{"method":"post","path":"/getToken"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/operation/wastesale","name":"OperationWastesaleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"部门ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"post","path":"/install"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/push/auditlog","name":"PushAuditlogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"客户端ID","nullable":false,"source":"a.deviceNo"},{"propertyName":"pushType","type":"string","length":"","comment":"推送类型","nullable":false,"defaultValue":"weight","dict":["weight","health_gps","vehicle_gps","driver_anomaly","others"],"source":"a.pushType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"errorMessage","type":"text","length":"","comment":"错误返回信息","nullable":true,"source":"a.errorMessage"}]}},{"prefix":"/admin/push/cameragps","name":"PushCameraGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"定位精度","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.sn"}]}},{"prefix":"/admin/push/devicealarm","name":"PushDevicealarmEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"devSerial","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.devSerial"},{"propertyName":"departmentName","type":"string","length":"","comment":"部门名称","nullable":false,"source":"c.name"}]}},{"prefix":"/admin/push/deviceonoff","name":"PushDeviceOnoffEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"deviceId","type":"string","length":"","comment":"设备ID","nullable":false,"source":"a.deviceId"},{"propertyName":"subSerial","type":"string","length":"","comment":"子序列号","nullable":true,"source":"a.subSerial"},{"propertyName":"deviceName","type":"string","length":"","comment":"设备名称","nullable":true,"source":"a.deviceName"}]}},{"prefix":"/admin/push/siteweight","name":"PushSiteweightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"},{"propertyName":"siteType","type":"string","length":"","comment":"站点类型","nullable":false,"defaultValue":"收集点","dict":"sitetype","source":"d.siteType"}],"fieldLike":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"}],"keyWordLikeFields":[]}},{"prefix":"/admin/push/vehiclegps","name":"PushVehicleGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"定位精度","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.sn"},{"propertyName":"vehicleNo","type":"string","length":"","comment":"车牌号","nullable":true,"source":"a.vehicleNo"}]}},{"prefix":"/admin/push/weight","name":"PushWeightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"},{"propertyName":"garbageType","type":"string","length":"","comment":"垃圾类型","nullable":false,"source":"a.garbageType"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/restore"},{"method":"get","path":"/info"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"userName","type":"string","length":"","comment":"姓名","nullable":true,"source":"b.name"},{"propertyName":"url","type":"string","length":"","comment":"请求的接口","nullable":true,"source":"a.url"}]}},{"prefix":"/admin/report/dailydepartment","name":"ReportDailyDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"日期","nullable":false,"source":"a.date"},{"propertyName":"departmentId","type":"number","length":"","comment":"部门ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"departmentName","type":"string","length":"","comment":"部门名称","nullable":false,"source":"a.departmentName"}]}},{"prefix":"/admin/report/dailysite","name":"ReportDailysiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"日期","nullable":false,"source":"a.date"},{"propertyName":"siteId","type":"number","length":"","comment":"站点ID","nullable":false,"source":"a.siteId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"siteName","type":"string","length":"","comment":"站点名称","nullable":false,"source":"a.siteName"}]}},{"prefix":"/admin/report/joblog","name":"ReportJoblogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataDate","type":"date","length":"","comment":"数据目标日期","nullable":false,"source":"a.dataDate"},{"propertyName":"status","type":"enum","length":"","comment":"状态: 未开始, 运行中, 成功, 失败","nullable":false,"defaultValue":"INIT","source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"jobName","type":"string","length":"","comment":"任务类型: SITE_DAILY(站点日汇总), DEPT_DAILY(部门日汇总)","nullable":false,"source":"a.jobName"}]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"type","type":"string","length":"","comment":"类型","nullable":false,"source":"a.type"},{"propertyName":"classifyId","type":"number","length":"","comment":"分类ID","nullable":true,"source":"a.classifyId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/start"},{"method":"post","path":"/once"},{"method":"post","path":"/stop"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"get","path":"/log"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态 0-停止 1-运行","nullable":false,"defaultValue":1,"source":"a.status"},{"propertyName":"type","type":"number","length":"","comment":"状态 0-系统 1-用户","nullable":false,"defaultValue":0,"source":"a.type"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/address","name":"UserAddressEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","正常","已注销"],"source":"a.status"},{"propertyName":"gender","type":"number","length":"","comment":"性别","nullable":false,"defaultValue":0,"dict":["未知","男","女"],"source":"a.gender"},{"propertyName":"loginType","type":"number","length":"","comment":"登录方式","nullable":false,"defaultValue":0,"dict":["小程序","公众号","H5"],"source":"a.loginType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"nickName","type":"string","length":"","comment":"昵称","nullable":true,"source":"a.nickName"},{"propertyName":"phone","type":"string","length":"","comment":"手机号","nullable":true,"source":"a.phone"}]}}]
[{"prefix":"/admin/base/coding","name":"","api":[{"method":"get","path":"/getModuleTree"},{"method":"post","path":"/createCode"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/comm","name":"","api":[{"method":"post","path":"/personUpdate"},{"method":"get","path":"/uploadMode"},{"method":"get","path":"/permmenu"},{"method":"get","path":"/program"},{"method":"get","path":"/person"},{"method":"post","path":"/upload"},{"method":"post","path":"/logout"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/open","name":"","api":[{"method":"get","path":"/refreshToken"},{"method":"get","path":"/captcha"},{"method":"post","path":"/login"},{"method":"get","path":"/html"},{"method":"get","path":"/eps"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/department","name":"BaseSysDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/order"},{"method":"post","path":"/list"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/log","name":"BaseSysLogEntity","api":[{"method":"post","path":"/setKeep"},{"method":"get","path":"/getKeep"},{"method":"post","path":"/clear"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"姓名","nullable":true,"source":"b.name"},{"propertyName":"action","type":"string","length":"","comment":"行为","nullable":false,"source":"a.action"},{"propertyName":"ip","type":"string","length":"","comment":"ip","nullable":true,"source":"a.ip"}]}},{"prefix":"/admin/base/sys/menu","name":"BaseSysMenuEntity","api":[{"method":"post","path":"/create"},{"method":"post","path":"/export"},{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/parse"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/base/sys/param","name":"BaseSysParamEntity","api":[{"method":"get","path":"/stringbykey"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/html"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataType","type":"number","length":"","comment":"数据类型 0-字符串 1-富文本 2-文件 ","nullable":false,"defaultValue":0,"source":"a.dataType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"keyName","type":"string","length":"","comment":"键","nullable":false,"source":"a.keyName"}]}},{"prefix":"/admin/base/sys/role","name":"BaseSysRoleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"label","type":"string","length":"50","comment":"角色标签","nullable":true,"source":"a.label"}]}},{"prefix":"/admin/base/sys/user","name":"BaseSysUserEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/move"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/buyer","name":"BasicdataBuyerEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"部门ID","nullable":true,"source":"a.departmentId"},{"propertyName":"name","type":"string","length":"200","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"contact","type":"string","length":"50","comment":"联系人","nullable":true,"source":"a.contact"}],"fieldLike":[{"propertyName":"name","type":"string","length":"200","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"address","type":"string","length":"255","comment":"地址","nullable":true,"source":"a.address"}],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/driver","name":"BasicdataDriverEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["激活","禁用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"64","comment":"身份证号","nullable":false,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"手机号","nullable":true,"source":"a.phone"},{"propertyName":"licenseNo","type":"string","length":"64","comment":"驾驶证号","nullable":true,"source":"a.licenseNo"}]}},{"prefix":"/admin/basicdata/iot","name":"BasicdataIotEntity","api":[{"method":"post","path":"/getYsDevices"},{"method":"post","path":"/getSitelist"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"iotTypeCode","type":"string","length":"","comment":"终端类型","nullable":false,"source":"a.iotTypeCode"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"iotName","type":"string","length":"","comment":"终端名称","nullable":false,"source":"a.iotName"},{"propertyName":"iotCode","type":"string","length":"","comment":"终端编码","nullable":false,"source":"a.iotCode"}]}},{"prefix":"/admin/basicdata/site","name":"BasicdataSiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/basicdata/sorter","name":"BasicdataSorterEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["在职","离职","禁用"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessName","type":"string","length":"64","comment":"姓名","nullable":false,"source":"a.businessName"},{"propertyName":"businessId","type":"string","length":"32","comment":"身份证号","nullable":true,"source":"a.businessId"},{"propertyName":"phone","type":"string","length":"32","comment":"手机号","nullable":true,"source":"a.phone"}]}},{"prefix":"/admin/basicdata/vehicle","name":"BasicdataVehicleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"vehicleType","type":"string","length":"","comment":"车型","nullable":false,"defaultValue":"厢式货车","dict":"vehicletype","source":"a.vehicleType"},{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":0,"dict":["启用","禁用"],"source":"a.status"},{"propertyName":"departmentId","type":"bigint","length":"","comment":"所属单位","nullable":true,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"businessId","type":"string","length":"32","comment":"车牌号","nullable":false,"source":"a.businessId"},{"propertyName":"defaultDriver","type":"bigint","length":"","comment":"默认司机","nullable":true,"source":"a.defaultDriver"}]}},{"prefix":"/admin/basicdata/wastetype","name":"BasicdataWastetypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"isRecyclable","type":"number","length":"","comment":"是否可回收","nullable":false,"defaultValue":0,"dict":["否","是"],"source":"a.isRecyclable"},{"propertyName":"status","type":"number","length":"","comment":"是否启用","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"name","type":"string","length":"","comment":"名称","nullable":false,"source":"a.name"},{"propertyName":"code","type":"string","length":"","comment":"代码","nullable":false,"source":"a.code"}]}},{"prefix":"/admin/demo/goods","name":"DemoGoodsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","启用"],"source":"a.status"}],"fieldLike":[{"propertyName":"title","type":"string","length":"50","comment":"标题","nullable":false,"source":"a.title"}],"keyWordLikeFields":[{"propertyName":"description","type":"string","length":"","comment":"描述","nullable":true,"source":"a.description"}]}},{"prefix":"/admin/demo/tenant","name":"DemoGoodsEntity","api":[{"method":"post","path":"/noTenant"},{"method":"post","path":"/noUse"},{"method":"post","path":"/use"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/info","name":"DictInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/types"},{"method":"post","path":"/data"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/dict/type","name":"DictTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/monitor/capturetask","name":"PushCaptureTaskEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"抓拍状态","nullable":false,"defaultValue":"PENDING","dict":["PENDING","SUCCESS","FAILED"],"source":"a.status"},{"propertyName":"captureDate","type":"string","length":"","comment":"任务执行日期","nullable":true,"source":"a.captureDate"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"deviceSerial","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.deviceSerial"},{"propertyName":"captureTaskId","type":"string","length":"","comment":"抓图任务ID(萤石返回)","nullable":true,"source":"a.captureTaskId"}]}},{"prefix":"/admin/monitor/ys7","name":"","api":[{"method":"post","path":"/getToken"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/operation/traderecord","name":"OperationTradeRecordEntity","api":[{"method":"post","path":"/import"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"transactionType","type":"string","length":"","comment":"交易类型","nullable":true,"source":"a.transactionType"},{"propertyName":"incomeType","type":"string","length":"","comment":"收支类型","nullable":false,"defaultValue":"收入","dict":["收入","支出","其他"],"source":"a.incomeType"},{"propertyName":"payMethod","type":"string","length":"","comment":"支付方式","nullable":true,"source":"a.payMethod"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"goodsName","type":"string","length":"","comment":"商品名称","nullable":true,"source":"a.goodsName"},{"propertyName":"opponent","type":"string","length":"","comment":"交易对方","nullable":true,"source":"a.opponent"}]}},{"prefix":"/admin/operation/wastesale","name":"OperationWastesaleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"departmentId","type":"bigint","length":"","comment":"部门ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/plugin/info","name":"PluginInfoEntity","api":[{"method":"post","path":"/install"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/push/auditlog","name":"PushAuditlogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"客户端ID","nullable":false,"source":"a.deviceNo"},{"propertyName":"pushType","type":"string","length":"","comment":"推送类型","nullable":false,"defaultValue":"weight","dict":["weight","health_gps","vehicle_gps","driver_anomaly","others"],"source":"a.pushType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"errorMessage","type":"text","length":"","comment":"错误返回信息","nullable":true,"source":"a.errorMessage"}]}},{"prefix":"/admin/push/cameragps","name":"PushCameraGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"定位精度","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.sn"}]}},{"prefix":"/admin/push/devicealarm","name":"PushDevicealarmEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"devSerial","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.devSerial"},{"propertyName":"departmentName","type":"string","length":"","comment":"部门名称","nullable":false,"source":"c.name"}]}},{"prefix":"/admin/push/deviceonoff","name":"PushDeviceOnoffEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"deviceId","type":"string","length":"","comment":"设备ID","nullable":false,"source":"a.deviceId"},{"propertyName":"subSerial","type":"string","length":"","comment":"子序列号","nullable":true,"source":"a.subSerial"},{"propertyName":"deviceName","type":"string","length":"","comment":"设备名称","nullable":true,"source":"a.deviceName"}]}},{"prefix":"/admin/push/siteweight","name":"PushSiteweightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"},{"propertyName":"siteType","type":"string","length":"","comment":"站点类型","nullable":false,"defaultValue":"收集点","dict":"sitetype","source":"d.siteType"}],"fieldLike":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"}],"keyWordLikeFields":[]}},{"prefix":"/admin/push/vehiclegps","name":"PushVehicleGpsEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"string","length":"","comment":"定位精度","nullable":false,"source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"sn","type":"string","length":"","comment":"设备序列号","nullable":false,"source":"a.sn"},{"propertyName":"vehicleNo","type":"string","length":"","comment":"车牌号","nullable":true,"source":"a.vehicleNo"}]}},{"prefix":"/admin/push/weight","name":"PushWeightEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"deviceNo","type":"string","length":"","comment":"设备号","nullable":false,"source":"a.deviceNo"},{"propertyName":"garbageType","type":"string","length":"","comment":"垃圾类型","nullable":false,"source":"a.garbageType"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/recycle/data","name":"RecycleDataEntity","api":[{"method":"post","path":"/restore"},{"method":"get","path":"/info"},{"method":"post","path":"/page"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"userName","type":"string","length":"","comment":"姓名","nullable":true,"source":"b.name"},{"propertyName":"url","type":"string","length":"","comment":"请求的接口","nullable":true,"source":"a.url"}]}},{"prefix":"/admin/report/dailydepartment","name":"ReportDailyDepartmentEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"日期","nullable":false,"source":"a.date"},{"propertyName":"departmentId","type":"number","length":"","comment":"部门ID","nullable":false,"source":"a.departmentId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"departmentName","type":"string","length":"","comment":"部门名称","nullable":false,"source":"a.departmentName"}]}},{"prefix":"/admin/report/dailysite","name":"ReportDailysiteEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"日期","nullable":false,"source":"a.date"},{"propertyName":"siteId","type":"number","length":"","comment":"站点ID","nullable":false,"source":"a.siteId"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"siteName","type":"string","length":"","comment":"站点名称","nullable":false,"source":"a.siteName"}]}},{"prefix":"/admin/report/dailyvehicle","name":"ReportDailyVehicleEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"date","type":"date","length":"","comment":"日期","nullable":false,"source":"a.date"},{"propertyName":"vehicleNo","type":"string","length":"32","comment":"车牌号","nullable":false,"source":"a.vehicleNo"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"vehicleNo","type":"string","length":"32","comment":"车牌号","nullable":false,"source":"a.vehicleNo"}]}},{"prefix":"/admin/report/joblog","name":"ReportJoblogEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"dataDate","type":"date","length":"","comment":"数据目标日期","nullable":false,"source":"a.dataDate"},{"propertyName":"status","type":"enum","length":"","comment":"状态: 未开始, 运行中, 成功, 失败","nullable":false,"defaultValue":"INIT","source":"a.status"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"jobName","type":"string","length":"","comment":"任务类型: SITE_DAILY(站点日汇总), DEPT_DAILY(部门日汇总)","nullable":false,"source":"a.jobName"}]}},{"prefix":"/admin/space/info","name":"SpaceInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"type","type":"string","length":"","comment":"类型","nullable":false,"source":"a.type"},{"propertyName":"classifyId","type":"number","length":"","comment":"分类ID","nullable":true,"source":"a.classifyId"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/space/type","name":"SpaceTypeEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/task/info","name":"TaskInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"post","path":"/start"},{"method":"post","path":"/once"},{"method":"post","path":"/stop"},{"method":"get","path":"/info"},{"method":"post","path":"/page"},{"method":"get","path":"/log"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态 0-停止 1-运行","nullable":false,"defaultValue":1,"source":"a.status"},{"propertyName":"type","type":"number","length":"","comment":"状态 0-系统 1-用户","nullable":false,"defaultValue":0,"source":"a.type"}],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/address","name":"UserAddressEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[],"fieldLike":[],"keyWordLikeFields":[]}},{"prefix":"/admin/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}],"search":{"fieldEq":[{"propertyName":"status","type":"number","length":"","comment":"状态","nullable":false,"defaultValue":1,"dict":["禁用","正常","已注销"],"source":"a.status"},{"propertyName":"gender","type":"number","length":"","comment":"性别","nullable":false,"defaultValue":0,"dict":["未知","男","女"],"source":"a.gender"},{"propertyName":"loginType","type":"number","length":"","comment":"登录方式","nullable":false,"defaultValue":0,"dict":["小程序","公众号","H5"],"source":"a.loginType"}],"fieldLike":[],"keyWordLikeFields":[{"propertyName":"nickName","type":"string","length":"","comment":"昵称","nullable":true,"source":"a.nickName"},{"propertyName":"phone","type":"string","length":"","comment":"手机号","nullable":true,"source":"a.phone"}]}}]
src/modules/basicdata/views/site.vue
@@ -53,94 +53,104 @@
// cl-upsert
const Upsert = useUpsert({
    items: [
        {
            label: t("站点编码"),
            prop: "businessId",
            component: { name: "el-input", props: { clearable: true } },
            span: 12,
            required: true,
        },
        {
            label: t("名称"),
            prop: "businessName",
            component: { name: "el-input", props: { clearable: true } },
            span: 12,
            required: true,
        },
        {
            label: t("选择部门"),
            prop: "departmentId",
            //component: { name: "el-input", props: { clearable: true } },
            component: {
                name: 'cl-dept-select',
                props: {
                    multiple: false,      // 单选 / true 多选
                    placeholder: "请选择部门",
                    checkStrictly: true,  // 父子节点不联动
                    immediate: true       // 立即加载部门树
                }
            },
            required: true,
        },
        {
            label: t("站点类型"),
            prop: "siteType",
            component: {
                name: "cl-select",
                props: { options: dict.get("sitetype") },
            },
            value: "收集点",
            span: 12,
            required: true,
        },
        {
            label: t("地址"),
            prop: "address",
            component: { name: "el-input", props: { clearable: true } },
            span: 12,
            required: true,
        },
        {
            label: t("负责人"),
            prop: "leader",
            component: { name: "el-input", props: { clearable: true } },
            span: 12,
            required: true,
        },
        {
            label: t("经度"),
            prop: "longitude",
            hook: "number",
            component: { name: "el-input-number", props: { min: 0 } },
            span: 12,
            required: true,
        },
        {
            label: t("纬度"),
            prop: "latitude",
            hook: "number",
            component: { name: "el-input-number", props: { min: 0 } },
            span: 12,
            required: true,
        },
        { label: t("照片"), prop: "photo", component: { name: "cl-upload" } },
        {
            label: t("是否启用"),
            prop: "status",
            component: { name: "el-radio-group", options: options.status },
            value: 1,
            required: true,
        },
        {
            label: t("备注"),
            prop: "remark",
            component: {
                name: "el-input",
                props: { type: "textarea", rows: 4 },
            },
        },
    ],
  onOpen: (mode, data) => {
    if (mode === 'update' && data?.departmentId) {
      data.departmentId = Number(data.departmentId);
    }
    return data;
  },
  items: [
    {
      label: t("站点编码"),
      prop: "businessId",
      component: { name: "el-input", props: { clearable: true } },
      span: 12,
      required: true,
    },
    {
      label: t("名称"),
      prop: "businessName",
      component: { name: "el-input", props: { clearable: true } },
      span: 12,
      required: true,
    },
    {
      label: t("选择部门"),
      prop: "departmentId",
      component: {
        name: 'cl-dept-select',
        props: {
          multiple: false,
          placeholder: "请选择部门",
          checkStrictly: true,
          immediate: true,
          clearable: true,
          defaultExpandAll: true,
        },
      },
      value: undefined,
      span: 12,
      required: true,
    },
    {
      label: t("站点类型"),
      prop: "siteType",
      component: {
        name: "cl-select",
        props: { options: dict.get("sitetype") },
      },
      value: "收集点",
      span: 12,
      required: true,
    },
    {
      label: t("地址"),
      prop: "address",
      component: { name: "el-input", props: { clearable: true } },
      span: 12,
      required: true,
    },
    {
      label: t("负责人"),
      prop: "leader",
      component: { name: "el-input", props: { clearable: true } },
      span: 12,
      required: true,
    },
    {
      label: t("经度"),
      prop: "longitude",
      hook: "number",
      component: { name: "el-input-number", props: { min: 0 } },
      span: 12,
      required: true,
    },
    {
      label: t("纬度"),
      prop: "latitude",
      hook: "number",
      component: { name: "el-input-number", props: { min: 0 } },
      span: 12,
      required: true,
    },
    { label: t("照片"), prop: "photo", component: { name: "cl-upload" } },
    {
      label: t("是否启用"),
      prop: "status",
      component: { name: "el-radio-group", options: options.status },
      value: 1,
      required: true,
    },
    {
      label: t("备注"),
      prop: "remark",
      component: {
        name: "el-input",
        props: { type: "textarea", rows: 4 },
      },
    },
  ],
});
// cl-table
@@ -208,7 +218,58 @@
});
// cl-search
const Search = useSearch();
const Search = useSearch({
  items: [
    {
      label: t('归属单位'),
      prop: 'departmentId',
      component: {
        name: 'cl-dept-select',
        props: {
          placeholder: t('请选择归属单位'),
          checkStrictly: true,   // 父子不联动
          immediate: true,       // 按当前用户权限加载
          clearable: true,
        },
      },
    },
    {
      label: t('站点类型'),
      prop: 'siteType',
      component: {
        name: 'cl-select',
        props: {
          options: dict.get('sitetype'),
          placeholder: t('请选择站点类型'),
          clearable: true,
        },
      },
    },
    {
      label: t('状态'),
      prop: 'status',
      component: {
        name: 'cl-select',
        props: {
          options: options.status,
          placeholder: t('请选择状态'),
          clearable: true,
        },
      },
    },
    {
      label: t('关键字'),
      prop: 'keyWord',
      component: {
        name: 'el-input',
        props: {
          placeholder: t('站点编码 / 名称 / 地址 / 负责人'),
          clearable: true,
        },
      },
    },
  ],
});
// cl-crud
const Crud = useCrud(
src/modules/ezuikit/components/ezuikit-player.vue
@@ -99,6 +99,7 @@
  }
};
let playedOnce = false;
const init = () => {
  if (player) {
    destroy();
@@ -109,9 +110,9 @@
    id: props.containerId,
    accessToken: props.accessToken,
    url: props.url,
    autoplay: false,
    autoplay: true,
    template: "pcLive",
    height: 400,
    height: 360,
    scaleMode: 1,
    staticPath: props.staticPath || "",
    env: {
@@ -127,6 +128,14 @@
      console.error("handleError", err);
    }
  });
  player.on(EZUIKitPlayer.EVENTS.firstFrameDisplay, () => {
    if (playedOnce) return;
    playedOnce = true;
    setTimeout(() => {
      player?.pause();
    }, 1000);
  });
  // 事件监听
  player.on(EZUIKitPlayer.EVENTS.videoInfo, (info: any) => {
@@ -178,6 +187,7 @@
  <div class="ez-player-card">
    <!-- ID由父组件传入,保证全局唯一 -->
    <div :id="containerId" style="height: 400px;width:100%"></div>
    <!--
    <div class="player-buttons" style="margin-top:8px;display:flex;gap:6px;flex-wrap:wrap">
      <button @click="init">init</button>
      <button @click="stop">stop</button>
@@ -187,14 +197,15 @@
      <button @click="capturePicture">截图</button>
      <button @click="fullscreen">全屏</button>
    </div>
    -->
  </div>
</template>
<style scoped>
.ez-player-card {
  border: 1px solid #e4e7ed;
  border: 0px solid #e4e7ed;
  border-radius: 6px;
  padding: 8px;
  padding: 0px;
  background: #000;
}
</style>
src/modules/monitor/components/site-tree.vue
@@ -104,11 +104,6 @@
    selectId.value = item.a_id;
    const numReg = /^\d+$/;
    const isSite = !numReg.test(item.a_id);
    if (!isSite) {
        ElMessage.info(t('请选择站点节点查看监控'));
        emit('select', null);
        return;
    }
    emit('select', item.a_id);
}
src/modules/monitor/views/device.vue
@@ -1,27 +1,28 @@
<template>
    <div class="monitor-page" style="height:100%;display:flex;gap:12px;">
        <!-- 左侧树形 -->
        <div class="left-tree" style="width:280px;border:1px solid var(--el-border-color);border-radius:6px;">
            <site-tree @select="handleTreeSelect" />
        </div>
  <div class="monitor-page">
    <!-- 左侧树形 -->
    <div class="left-tree">
      <site-tree @select="handleTreeSelect" />
    </div>
        <!-- 右侧监控区域 -->
        <div class="right-player" style="flex:1;border:1px solid var(--el-border-color);border-radius:6px;padding:12px;overflow:auto;">
            <el-empty v-if="deviceList.length === 0" description="请左侧选择站点加载监控设备" />
            <div class="player-grid" v-if="deviceList.length">
                <div v-for="dev in deviceList" :key="dev.id" class="player-card">
                    <div class="title">{{ dev.iotName }}</div>
                    <EzuikitPlayer
                    v-if="ysToken"
                    :key="'p_' + dev.id + '_' + ysToken"
                    :container-id="'player_' + dev.id"
                    :access-token="ysToken"
                    :url="`ezopen://open.ys7.com/${dev.iotCode}/1.hd.live`"
                    />
                </div>
            </div>
        </div>
    </div>
    <!-- 右侧监控区域 -->
    <div class="right-player">
      <el-empty v-if="deviceList.length === 0" description="请左侧选择站点加载监控设备" />
      <div v-else class="player-grid" :style="gridStyle">
        <div v-for="dev in deviceList" :key="dev.id" class="player-card">
          <!-- <div class="title">{{ dev.iotName }}</div> -->
          <ezuikit-player
            v-if="ysToken"
            :key="'p_' + dev.id + '_' + ysToken"
            :container-id="'player_' + dev.id"
            :access-token="ysToken"
            :url="`ezopen://open.ys7.com/${dev.iotCode}/1.hd.live`"
            :pause-at-first-frame="true"
          />
        </div>
      </div>
    </div>
  </div>
</template>
<script lang="ts" setup>
@@ -29,7 +30,7 @@
  name: 'monitor-device',
});
import { ref, onMounted } from 'vue';
import { ref, computed, onMounted } from 'vue';
import { useCool } from '/@/cool';
import SiteTree from '../components/site-tree.vue';
import EzuikitPlayer from '../../ezuikit/components/ezuikit-player.vue';
@@ -37,20 +38,33 @@
const { service } = useCool();
const deviceList = ref<any[]>([]);
let ysToken = ref('');
const ysToken = ref('');
// ✅ 根据设备数量自动计算网格列数
const gridCols = computed(() => {
  const n = deviceList.value.length;
  if (n <= 1) return 1;
  if (n <= 4) return 2;   // 2~4 个 → 2 列
  if (n <= 6) return 3;   // 5~6 个 → 3 列
  if (n <= 8) return 4;   // 7~8 个 → 4 列
  return 4;
});
const gridStyle = computed(() => ({
  gridTemplateColumns: `repeat(${gridCols.value}, 1fr)`,
}));
async function fetchYsToken() {
  if (ysToken.value) return;
  try {
    //const res = await service.monitor.ys7.getToken();
    const res = await service.base.sys.param.stringbykey({key:"ys7.accessToken"});
    ysToken = res;
    const res = await service.base.sys.param.stringbykey({ key: 'ys7.accessToken' });
    ysToken.value = res as string; // ✅ 修正:赋值给 .value
  } catch (e: any) {
    console.error('萤石 Token 获取失败', e?.response?.data?.message || e.message);
  }
}
onMounted(fetchYsToken);
onMounted(fetchYsToken); // ✅ 修正:onMounted
async function handleTreeSelect(businessId: string | number | null) {
  if (!businessId) {
@@ -60,7 +74,7 @@
  if (!ysToken.value) await fetchYsToken();
  try {
    const res = await service.basicdata.iot.getYsDevices({ businessId });
    deviceList.value = res || [];
    deviceList.value = (res || []) as any[];
  } catch {
    deviceList.value = [];
  }
@@ -69,23 +83,32 @@
<style lang="scss" scoped>
.monitor-page {
    height: 100%;
  height: 100%;
  display: flex;
  gap: 12px;
}
.left-tree {
    height: 100%;
  width: 280px;
  height: 100%;
  border: 1px solid var(--el-border-color);
  border-radius: 6px;
}
.right-player {
    height: 100%;
  flex: 1;
  height: 100%;
  border: 1px solid var(--el-border-color);
  border-radius: 6px;
  padding: 12px;
  overflow: auto;
}
.player-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    gap: 16px;
  display: grid;
  gap: 16px;
}
.player-card {
    .title {
        padding: 6px 0;
        font-weight: 500;
    }
  .title {
    padding: 6px 0;
    font-weight: 500;
  }
}
</style>