23 changed files with 1713 additions and 15 deletions
@ -0,0 +1,99 @@ |
|||
package org.dromara.business.controller; |
|||
|
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.NotEmpty; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.business.domain.bo.WaylineAlertBo; |
|||
import org.dromara.business.domain.vo.WaylineAlertVo; |
|||
import org.dromara.business.service.IWaylineAlertService; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 预警任务 |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/alert/task") |
|||
public class WaylineAlertController extends BaseController { |
|||
|
|||
private final IWaylineAlertService waylineAlertService; |
|||
|
|||
/** |
|||
* 查询预警任务列表 |
|||
*/ |
|||
@GetMapping("/page") |
|||
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery) { |
|||
return waylineAlertService.pageWaylineAlert(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 获取预警任务详细信息 |
|||
* |
|||
* @param alertId 主键 |
|||
*/ |
|||
@GetMapping("/{alertId}") |
|||
public R<WaylineAlertVo> getWaylineAlert(@NotNull(message = "主键不能为空") |
|||
@PathVariable String alertId) { |
|||
return R.ok(waylineAlertService.getWaylineAlert(alertId)); |
|||
} |
|||
|
|||
/** |
|||
* 新增预警任务 |
|||
*/ |
|||
@Log(title = "预警任务", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping("/add") |
|||
public R<Void> addWaylineAlert(@Validated(AddGroup.class) @RequestBody WaylineAlertBo param) { |
|||
return toAjax(waylineAlertService.addWaylineAlert(param)); |
|||
} |
|||
|
|||
/** |
|||
* 修改预警任务 |
|||
*/ |
|||
@Log(title = "预警任务", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PostMapping("/update") |
|||
public R<Void> updateWaylineAlert(@Validated(EditGroup.class) @RequestBody WaylineAlertBo bo) { |
|||
return toAjax(waylineAlertService.updateWaylineAlert(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除预警任务 |
|||
* |
|||
* @param alertIdList 主键串 |
|||
*/ |
|||
@Log(title = "预警任务", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/delete") |
|||
public R<Void> deleteWaylineAlert(@NotEmpty(message = "主键不能为空") |
|||
@RequestParam List<String> alertIdList) { |
|||
return toAjax(waylineAlertService.deleteWaylineAlert(alertIdList, true)); |
|||
} |
|||
|
|||
/** |
|||
* 导出预警任务列表 |
|||
*/ |
|||
@Log(title = "预警任务", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void exportWaylineAlert(WaylineAlertBo bo, HttpServletResponse response) { |
|||
List<WaylineAlertVo> list = waylineAlertService.listWaylineAlert(bo); |
|||
ExcelUtil.exportExcel(list, "预警任务", WaylineAlertVo.class, response); |
|||
} |
|||
} |
@ -0,0 +1,202 @@ |
|||
package org.dromara.business.domain; |
|||
|
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 预警任务对象 wayline_alert |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("wayline_alert") |
|||
public class WaylineAlert extends BaseEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 任务轮id |
|||
*/ |
|||
private String wheelId; |
|||
|
|||
/** |
|||
* 媒体id |
|||
*/ |
|||
private String taskId; |
|||
|
|||
/** |
|||
* 图片id |
|||
*/ |
|||
private String taskImageId; |
|||
|
|||
/** |
|||
* 处理原因 |
|||
*/ |
|||
private String reason; |
|||
|
|||
/** |
|||
* 图片文件 |
|||
*/ |
|||
private String images; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
private Long lat; |
|||
|
|||
/** |
|||
* 精度 |
|||
*/ |
|||
private Long lng; |
|||
|
|||
/** |
|||
* 任务类型 |
|||
*/ |
|||
private String taskHandleType; |
|||
|
|||
|
|||
/** |
|||
* 任务内容 |
|||
*/ |
|||
private String taskContent; |
|||
|
|||
/** |
|||
* 完成时间 |
|||
*/ |
|||
private Date completeDate; |
|||
|
|||
|
|||
/** |
|||
* 删除 0 正常 1已删除 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
/** |
|||
* 模板图片 |
|||
*/ |
|||
private String mateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大模板违建区域图片 |
|||
*/ |
|||
private String maxMateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大违建区域图片 |
|||
*/ |
|||
private String maxImages; |
|||
|
|||
/** |
|||
* 面积 |
|||
*/ |
|||
private Long area; |
|||
|
|||
/** |
|||
* 面积:长 |
|||
*/ |
|||
private Long areaL; |
|||
|
|||
/** |
|||
* 面积:宽 |
|||
*/ |
|||
private Long areaW; |
|||
|
|||
/** |
|||
* 0:验证 |
|||
*/ |
|||
private Long handleInType; |
|||
|
|||
/** |
|||
* 是否违建 0:否,1:是 |
|||
*/ |
|||
private Long isIllegal; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
private String deptId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
private String deptName; |
|||
|
|||
/** |
|||
* 预警名称 |
|||
*/ |
|||
private String jobName; |
|||
|
|||
/** |
|||
* 处理时间 |
|||
*/ |
|||
private Date handleTime; |
|||
|
|||
/** |
|||
* 其他:内容 |
|||
*/ |
|||
private String taskHandle; |
|||
|
|||
/** |
|||
* 平台类型 |
|||
*/ |
|||
private String platformType; |
|||
|
|||
/** |
|||
* 像素坐标 |
|||
*/ |
|||
private String pixelCoordinate; |
|||
|
|||
/** |
|||
* 当前位置预警数量 |
|||
*/ |
|||
private Long handleNum; |
|||
|
|||
/** |
|||
* 国土所备注 |
|||
*/ |
|||
private String territoryRemark; |
|||
|
|||
/** |
|||
* 地类信息数据 |
|||
*/ |
|||
private String landCategories; |
|||
|
|||
/** |
|||
* 相关文件 |
|||
*/ |
|||
private String territoryUrl; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String territoryPath; |
|||
|
|||
|
|||
/** |
|||
* 忽略原因 |
|||
*/ |
|||
private String ignoringCause; |
|||
|
|||
/** |
|||
* 来源:0:平台 1:小程序 |
|||
*/ |
|||
private Long handleSource; |
|||
|
|||
|
|||
} |
@ -0,0 +1,226 @@ |
|||
package org.dromara.business.domain.bo; |
|||
|
|||
import org.dromara.business.domain.WaylineAlert; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 预警任务业务对象 wayline_alert |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = WaylineAlert.class, reverseConvertGenerate = false) |
|||
public class WaylineAlertBo extends BaseEntity { |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@NotBlank(message = "不能为空", groups = { EditGroup.class }) |
|||
private String id; |
|||
|
|||
/** |
|||
* 任务轮id |
|||
*/ |
|||
@NotBlank(message = "任务轮id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String wheelId; |
|||
|
|||
/** |
|||
* 媒体id |
|||
*/ |
|||
@NotBlank(message = "媒体id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String taskId; |
|||
|
|||
/** |
|||
* 图片id |
|||
*/ |
|||
@NotBlank(message = "图片id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String taskImageId; |
|||
|
|||
/** |
|||
* 处理原因 |
|||
*/ |
|||
@NotBlank(message = "处理原因不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String reason; |
|||
|
|||
/** |
|||
* 图片文件 |
|||
*/ |
|||
@NotBlank(message = "图片文件不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String images; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
@NotNull(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long lat; |
|||
|
|||
/** |
|||
* 精度 |
|||
*/ |
|||
@NotNull(message = "精度不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long lng; |
|||
|
|||
/** |
|||
* 任务类型 |
|||
*/ |
|||
@NotBlank(message = "任务类型不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String taskHandleType; |
|||
|
|||
|
|||
/** |
|||
* 任务内容 |
|||
*/ |
|||
@NotBlank(message = "任务内容不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String taskContent; |
|||
|
|||
/** |
|||
* 完成时间 |
|||
*/ |
|||
@NotNull(message = "完成时间不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Date completeDate; |
|||
|
|||
|
|||
/** |
|||
* 模板图片 |
|||
*/ |
|||
@NotBlank(message = "模板图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String mateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大模板违建区域图片 |
|||
*/ |
|||
@NotBlank(message = "放大模板违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String maxMateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大违建区域图片 |
|||
*/ |
|||
@NotBlank(message = "放大违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String maxImages; |
|||
|
|||
/** |
|||
* 面积 |
|||
*/ |
|||
@NotNull(message = "面积不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long area; |
|||
|
|||
/** |
|||
* 面积:长 |
|||
*/ |
|||
@NotNull(message = "面积:长不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long areaL; |
|||
|
|||
/** |
|||
* 面积:宽 |
|||
*/ |
|||
@NotNull(message = "面积:宽不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long areaW; |
|||
|
|||
/** |
|||
* 0:验证 |
|||
*/ |
|||
@NotNull(message = "0:验证", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long handleInType; |
|||
|
|||
/** |
|||
* 是否违建 0:否,1:是 |
|||
*/ |
|||
@NotNull(message = "是否违建 0:否,1:是不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long isIllegal; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
@NotBlank(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String deptId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
@NotBlank(message = "部门名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String deptName; |
|||
|
|||
/** |
|||
* 预警名称 |
|||
*/ |
|||
@NotBlank(message = "预警名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String jobName; |
|||
|
|||
/** |
|||
* 处理时间 |
|||
*/ |
|||
@NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Date handleTime; |
|||
|
|||
/** |
|||
* 其他:内容 |
|||
*/ |
|||
@NotBlank(message = "其他:内容不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String taskHandle; |
|||
|
|||
/** |
|||
* 平台类型 |
|||
*/ |
|||
@NotBlank(message = "平台类型不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String platformType; |
|||
|
|||
/** |
|||
* 像素坐标 |
|||
*/ |
|||
@NotBlank(message = "像素坐标不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String pixelCoordinate; |
|||
|
|||
/** |
|||
* 当前位置预警数量 |
|||
*/ |
|||
@NotNull(message = "当前位置预警数量不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long handleNum; |
|||
|
|||
/** |
|||
* 国土所备注 |
|||
*/ |
|||
@NotBlank(message = "国土所备注不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String territoryRemark; |
|||
|
|||
/** |
|||
* 地类信息数据 |
|||
*/ |
|||
@NotBlank(message = "地类信息数据不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String landCategories; |
|||
|
|||
/** |
|||
* 相关文件 |
|||
*/ |
|||
@NotBlank(message = "相关文件不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String territoryUrl; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
@NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String territoryPath; |
|||
|
|||
|
|||
/** |
|||
* 忽略原因 |
|||
*/ |
|||
@NotBlank(message = "忽略原因不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String ignoringCause; |
|||
|
|||
/** |
|||
* 来源:0:平台 1:小程序 |
|||
*/ |
|||
@NotNull(message = "来源:0:平台 1:小程序不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Long handleSource; |
|||
|
|||
|
|||
} |
@ -0,0 +1,229 @@ |
|||
package org.dromara.business.domain.vo; |
|||
|
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import org.dromara.business.domain.WaylineAlert; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 预警任务视图对象 wayline_alert |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = WaylineAlert.class) |
|||
public class WaylineAlertVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@ExcelProperty(value = "") |
|||
private String id; |
|||
|
|||
/** |
|||
* 任务轮id |
|||
*/ |
|||
@ExcelProperty(value = "任务轮id") |
|||
private String wheelId; |
|||
|
|||
/** |
|||
* 媒体id |
|||
*/ |
|||
@ExcelProperty(value = "媒体id") |
|||
private String taskId; |
|||
|
|||
/** |
|||
* 图片id |
|||
*/ |
|||
@ExcelProperty(value = "图片id") |
|||
private String taskImageId; |
|||
|
|||
/** |
|||
* 处理原因 |
|||
*/ |
|||
@ExcelProperty(value = "处理原因") |
|||
private String reason; |
|||
|
|||
/** |
|||
* 图片文件 |
|||
*/ |
|||
@ExcelProperty(value = "图片文件") |
|||
private String images; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
@ExcelProperty(value = "纬度") |
|||
private Long lat; |
|||
|
|||
/** |
|||
* 精度 |
|||
*/ |
|||
@ExcelProperty(value = "精度") |
|||
private Long lng; |
|||
|
|||
/** |
|||
* 任务类型 |
|||
*/ |
|||
@ExcelProperty(value = "任务类型") |
|||
private String taskHandleType; |
|||
|
|||
|
|||
/** |
|||
* 任务内容 |
|||
*/ |
|||
@ExcelProperty(value = "任务内容") |
|||
private String taskContent; |
|||
|
|||
/** |
|||
* 完成时间 |
|||
*/ |
|||
@ExcelProperty(value = "完成时间") |
|||
private Date completeDate; |
|||
|
|||
/** |
|||
* 模板图片 |
|||
*/ |
|||
@ExcelProperty(value = "模板图片") |
|||
private String mateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大模板违建区域图片 |
|||
*/ |
|||
@ExcelProperty(value = "放大模板违建区域图片") |
|||
private String maxMateSourceImgUrl; |
|||
|
|||
/** |
|||
* 放大违建区域图片 |
|||
*/ |
|||
@ExcelProperty(value = "放大违建区域图片") |
|||
private String maxImages; |
|||
|
|||
/** |
|||
* 面积 |
|||
*/ |
|||
@ExcelProperty(value = "面积") |
|||
private Long area; |
|||
|
|||
/** |
|||
* 面积:长 |
|||
*/ |
|||
@ExcelProperty(value = "面积:长") |
|||
private Long areaL; |
|||
|
|||
/** |
|||
* 面积:宽 |
|||
*/ |
|||
@ExcelProperty(value = "面积:宽") |
|||
private Long areaW; |
|||
|
|||
/** |
|||
* 0:验证 |
|||
*/ |
|||
@ExcelProperty(value = "0:验证") |
|||
private Long handleInType; |
|||
|
|||
/** |
|||
* 是否违建 0:否,1:是 |
|||
*/ |
|||
@ExcelProperty(value = "是否违建 0:否,1:是") |
|||
private Long isIllegal; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
@ExcelProperty(value = "部门id") |
|||
private String deptId; |
|||
|
|||
/** |
|||
* 部门名称 |
|||
*/ |
|||
@ExcelProperty(value = "部门名称") |
|||
private String deptName; |
|||
|
|||
/** |
|||
* 预警名称 |
|||
*/ |
|||
@ExcelProperty(value = "预警名称") |
|||
private String jobName; |
|||
|
|||
/** |
|||
* 处理时间 |
|||
*/ |
|||
@ExcelProperty(value = "处理时间") |
|||
private Date handleTime; |
|||
|
|||
/** |
|||
* 其他:内容 |
|||
*/ |
|||
@ExcelProperty(value = "其他:内容") |
|||
private String taskHandle; |
|||
|
|||
/** |
|||
* 平台类型 |
|||
*/ |
|||
@ExcelProperty(value = "平台类型") |
|||
private String platformType; |
|||
|
|||
/** |
|||
* 像素坐标 |
|||
*/ |
|||
@ExcelProperty(value = "像素坐标") |
|||
private String pixelCoordinate; |
|||
|
|||
/** |
|||
* 当前位置预警数量 |
|||
*/ |
|||
@ExcelProperty(value = "当前位置预警数量") |
|||
private Long handleNum; |
|||
|
|||
/** |
|||
* 国土所备注 |
|||
*/ |
|||
@ExcelProperty(value = "国土所备注") |
|||
private String territoryRemark; |
|||
|
|||
/** |
|||
* 地类信息数据 |
|||
*/ |
|||
@ExcelProperty(value = "地类信息数据") |
|||
private String landCategories; |
|||
|
|||
/** |
|||
* 相关文件 |
|||
*/ |
|||
@ExcelProperty(value = "相关文件") |
|||
private String territoryUrl; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
@ExcelProperty(value = "图片") |
|||
private String territoryPath; |
|||
|
|||
/** |
|||
* 忽略原因 |
|||
*/ |
|||
@ExcelProperty(value = "忽略原因") |
|||
private String ignoringCause; |
|||
|
|||
/** |
|||
* 来源:0:平台 1:小程序 |
|||
*/ |
|||
@ExcelProperty(value = "来源:0:平台 1:小程序") |
|||
private Long handleSource; |
|||
|
|||
|
|||
} |
@ -0,0 +1,18 @@ |
|||
package org.dromara.business.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import org.dromara.business.domain.WaylineAlert; |
|||
import org.dromara.business.domain.vo.WaylineAlertVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 预警任务Mapper接口 |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
public interface WaylineAlertMapper extends BaseMapperPlus<WaylineAlert, WaylineAlertVo> { |
|||
|
|||
Page<WaylineAlertVo> pageAlert(Page<WaylineAlertVo> page, LambdaQueryWrapper<WaylineAlert> lqw); |
|||
} |
@ -0,0 +1,78 @@ |
|||
package org.dromara.business.service; |
|||
|
|||
import org.dromara.business.domain.WaylineAlert; |
|||
import org.dromara.business.domain.vo.WaylineAlertVo; |
|||
import org.dromara.business.domain.bo.WaylineAlertBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 预警任务Service接口 |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
public interface IWaylineAlertService { |
|||
|
|||
/** |
|||
* 查询预警任务 |
|||
* |
|||
* @param id 主键 |
|||
* @return 预警任务 |
|||
*/ |
|||
WaylineAlertVo getWaylineAlert(String id); |
|||
|
|||
/** |
|||
* 分页查询预警任务列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 预警任务分页列表 |
|||
*/ |
|||
TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的预警任务列表 |
|||
* |
|||
* @param param 查询条件 |
|||
* @return 预警任务列表 |
|||
*/ |
|||
List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param); |
|||
|
|||
/** |
|||
* 新增预警任务 |
|||
* |
|||
* @param param 预警任务 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean addWaylineAlert(WaylineAlertBo param); |
|||
|
|||
|
|||
/** |
|||
* 批量新增预警任务 |
|||
* |
|||
* @param alertList 预警任务 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean saveBatchAlert(List<WaylineAlert> alertList); |
|||
|
|||
/** |
|||
* 修改预警任务 |
|||
* |
|||
* @param param 预警任务 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateWaylineAlert(WaylineAlertBo param); |
|||
|
|||
/** |
|||
* 校验并批量删除预警任务信息 |
|||
* |
|||
* @param alertIdList 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid); |
|||
} |
@ -0,0 +1,141 @@ |
|||
package org.dromara.business.service.impl; |
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.business.domain.WaylineAlert; |
|||
import org.dromara.business.domain.bo.WaylineAlertBo; |
|||
import org.dromara.business.domain.vo.WaylineAlertVo; |
|||
import org.dromara.business.mapper.WaylineAlertMapper; |
|||
import org.dromara.business.service.IWaylineAlertService; |
|||
import org.dromara.common.core.exception.ServiceException; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 预警任务Service业务层处理 |
|||
* |
|||
* @author LionLi |
|||
* @date 2025-02-27 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class WaylineAlertServiceImpl implements IWaylineAlertService { |
|||
|
|||
private final WaylineAlertMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询预警任务 |
|||
* |
|||
* @param id 主键 |
|||
* @return 预警任务 |
|||
*/ |
|||
@Override |
|||
public WaylineAlertVo getWaylineAlert(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询预警任务列表 |
|||
* |
|||
* @param param 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 预警任务分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo param, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); |
|||
Page<WaylineAlertVo> result = baseMapper.pageAlert(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 查询符合条件的预警任务列表 |
|||
* |
|||
* @param param 查询条件 |
|||
* @return 预警任务列表 |
|||
*/ |
|||
@Override |
|||
public List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param) { |
|||
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 新增预警任务 |
|||
* |
|||
* @param param 预警任务 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean addWaylineAlert(WaylineAlertBo param) { |
|||
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); |
|||
validEntityBeforeSave(alert,false); |
|||
return this.baseMapper.insert(alert) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 批量添加 |
|||
* @param alertList 预警任务 |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public Boolean saveBatchAlert(List<WaylineAlert> alertList) { |
|||
return this.baseMapper.insertBatch(alertList); |
|||
} |
|||
|
|||
/** |
|||
* 修改预警任务 |
|||
* |
|||
* @param param 预警任务 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateWaylineAlert(WaylineAlertBo param) { |
|||
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); |
|||
validEntityBeforeSave(alert,true); |
|||
return baseMapper.updateById(alert) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(WaylineAlert alert,Boolean validId){ |
|||
if (ObjectUtil.isEmpty(alert.getId())){ |
|||
throw new ServiceException("预警【Id】为空!"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除预警任务信息 |
|||
* |
|||
* @param alertIdList 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid) { |
|||
if(isValid){ |
|||
if (ObjectUtil.isEmpty(alertIdList)){ |
|||
throw new ServiceException("预警Id为空!"); |
|||
} |
|||
} |
|||
return baseMapper.deleteByIds(alertIdList) > 0; |
|||
} |
|||
|
|||
private LambdaQueryWrapper<WaylineAlert> buildQueryWrapper(WaylineAlertBo bo) { |
|||
LambdaQueryWrapper<WaylineAlert> wrapper = Wrappers.lambdaQuery(); |
|||
|
|||
|
|||
wrapper.orderByAsc(WaylineAlert::getCreateTime); |
|||
return wrapper; |
|||
} |
|||
} |
@ -0,0 +1,51 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper |
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="org.dromara.business.mapper.WaylineAlertMapper"> |
|||
|
|||
<select id="pageAlert" resultType="org.dromara.business.domain.vo.WaylineAlertVo"> |
|||
select |
|||
id, |
|||
wheel_id, |
|||
task_id, |
|||
task_image_id, |
|||
reason, |
|||
images, |
|||
lat, |
|||
lng, |
|||
task_handle_type, |
|||
task_content, |
|||
complete_date, |
|||
handle_type, |
|||
del_flag, |
|||
mate_source_img_url, |
|||
max_mate_source_img_url, |
|||
max_images, |
|||
area, |
|||
area_l, |
|||
area_w, |
|||
handle_in_type, |
|||
is_illegal, |
|||
dept_id, |
|||
dept_name, |
|||
job_name, |
|||
handle_time, |
|||
task_handle, |
|||
platform_type, |
|||
pixel_coordinate, |
|||
handle_num, |
|||
territory_remark, |
|||
land_categories, |
|||
territory_url, |
|||
territory_path, |
|||
ignoring_cause, |
|||
handle_source, |
|||
create_by, |
|||
create_time |
|||
from wayline_alert |
|||
${ew.customSqlSegment} |
|||
</select> |
|||
|
|||
|
|||
</mapper> |
@ -0,0 +1,170 @@ |
|||
package org.dromara.system.dubbo; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.apache.dubbo.config.annotation.DubboService; |
|||
import org.dromara.common.core.constant.SystemConstants; |
|||
import org.dromara.common.core.utils.StreamUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.system.api.RemoteTaskAssigneeService; |
|||
import org.dromara.system.api.domain.bo.RemoteTaskAssigneeBo; |
|||
import org.dromara.system.api.domain.vo.RemoteTaskAssigneeVo; |
|||
import org.dromara.system.domain.SysDept; |
|||
import org.dromara.system.domain.SysPost; |
|||
import org.dromara.system.domain.SysRole; |
|||
import org.dromara.system.domain.SysUser; |
|||
import org.dromara.system.domain.vo.SysDeptVo; |
|||
import org.dromara.system.domain.vo.SysPostVo; |
|||
import org.dromara.system.domain.vo.SysRoleVo; |
|||
import org.dromara.system.domain.vo.SysUserVo; |
|||
import org.dromara.system.mapper.SysDeptMapper; |
|||
import org.dromara.system.mapper.SysPostMapper; |
|||
import org.dromara.system.mapper.SysRoleMapper; |
|||
import org.dromara.system.mapper.SysUserMapper; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 工作流设计器获取任务执行人 |
|||
* |
|||
* @author Lion Li |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
@DubboService |
|||
public class RemoteTaskAssigneeServiceImpl implements RemoteTaskAssigneeService { |
|||
|
|||
private final SysPostMapper postMapper; |
|||
private final SysDeptMapper deptMapper; |
|||
private final SysUserMapper userMapper; |
|||
private final SysRoleMapper roleMapper; |
|||
|
|||
/** |
|||
* 查询角色并返回任务指派的列表,支持分页 |
|||
* |
|||
* @param taskQuery 查询条件 |
|||
* @return 办理人 |
|||
*/ |
|||
@Override |
|||
public RemoteTaskAssigneeVo selectRolesByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
|||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
|||
QueryWrapper<SysRole> wrapper = Wrappers.query(); |
|||
wrapper.eq("r.del_flag", SystemConstants.NORMAL) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "r.role_name", taskQuery.getHandlerCode()) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "r.role_key", taskQuery.getHandlerName()) |
|||
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
|||
"r.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) |
|||
.orderByAsc("r.role_sort").orderByAsc("r.create_time"); |
|||
Page<SysRoleVo> page = roleMapper.selectPageRoleList(pageQuery.build(), wrapper); |
|||
// 使用封装的字段映射方法进行转换
|
|||
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
|||
SysRoleVo::getRoleId, SysRoleVo::getRoleKey, SysRoleVo::getRoleName, null, SysRoleVo::getCreateTime); |
|||
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
|||
} |
|||
|
|||
/** |
|||
* 查询岗位并返回任务指派的列表,支持分页 |
|||
* |
|||
* @param taskQuery 查询条件 |
|||
* @return 办理人 |
|||
*/ |
|||
@Override |
|||
public RemoteTaskAssigneeVo selectPostsByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
|||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
|||
LambdaQueryWrapper<SysPost> wrapper = Wrappers.<SysPost>lambdaQuery() |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode()) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName()) |
|||
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
|||
SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()); |
|||
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
|||
Long belongDeptId = Long.valueOf(taskQuery.getGroupId()); |
|||
wrapper.and(x -> { |
|||
List<SysDept> deptList = deptMapper.selectListByParentId(belongDeptId); |
|||
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
|||
deptIds.add(belongDeptId); |
|||
x.in(SysPost::getDeptId, deptIds); |
|||
}); |
|||
} |
|||
Page<SysPostVo> page = postMapper.selectPagePostList(pageQuery.build(), wrapper); |
|||
// 使用封装的字段映射方法进行转换
|
|||
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
|||
SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptId, SysPostVo::getCreateTime); |
|||
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
|||
} |
|||
|
|||
/** |
|||
* 查询部门并返回任务指派的列表,支持分页 |
|||
* |
|||
* @param taskQuery 查询条件 |
|||
* @return 办理人 |
|||
*/ |
|||
@Override |
|||
public RemoteTaskAssigneeVo selectDeptsByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
|||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
|||
LambdaQueryWrapper<SysDept> wrapper = Wrappers.<SysDept>lambdaQuery() |
|||
.eq(SysDept::getDelFlag, SystemConstants.NORMAL) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode()) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName()) |
|||
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
|||
SysDept::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()) |
|||
.orderByAsc(SysDept::getAncestors) |
|||
.orderByAsc(SysDept::getParentId) |
|||
.orderByAsc(SysDept::getOrderNum) |
|||
.orderByAsc(SysDept::getDeptId); |
|||
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
|||
//部门树搜索
|
|||
wrapper.and(x -> { |
|||
Long parentId = Long.valueOf(taskQuery.getGroupId()); |
|||
List<SysDept> deptList = deptMapper.selectListByParentId(parentId); |
|||
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
|||
deptIds.add(parentId); |
|||
x.in(SysDept::getDeptId, deptIds); |
|||
}); |
|||
} |
|||
Page<SysDeptVo> page = deptMapper.selectPageDeptList(pageQuery.build(), wrapper); |
|||
// 使用封装的字段映射方法进行转换
|
|||
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
|||
SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, SysDeptVo::getParentId, SysDeptVo::getCreateTime); |
|||
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 查询用户并返回任务指派的列表,支持分页 |
|||
* |
|||
* @param taskQuery 查询条件 |
|||
* @return 办理人 |
|||
*/ |
|||
@Override |
|||
public RemoteTaskAssigneeVo selectUsersByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
|||
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
|||
QueryWrapper<SysUser> wrapper = Wrappers.query(); |
|||
wrapper.eq("u.del_flag", SystemConstants.NORMAL) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "u.user_name", taskQuery.getHandlerCode()) |
|||
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "u.nick_name", taskQuery.getHandlerName()) |
|||
.between(taskQuery.getBeginTime() != null && taskQuery.getEndTime() != null, |
|||
"u.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) |
|||
.orderByAsc("u.user_id"); |
|||
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
|||
//部门树搜索
|
|||
wrapper.and(x -> { |
|||
Long parentId = Long.valueOf(taskQuery.getGroupId()); |
|||
List<SysDept> deptList = deptMapper.selectListByParentId(parentId); |
|||
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
|||
deptIds.add(parentId); |
|||
x.in("u.dept_id", deptIds); |
|||
}); |
|||
} |
|||
Page<SysUserVo> page = userMapper.selectPageUserList(pageQuery.build(), wrapper); |
|||
// 使用封装的字段映射方法进行转换
|
|||
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
|||
SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptId, SysUserVo::getCreateTime); |
|||
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
|||
} |
|||
|
|||
} |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.4 KiB |
@ -0,0 +1,216 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
|
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
|||
<meta name="renderer" content="webkit"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
|||
<link rel="icon" href="./ico/favicon-FqvijpIH.ico"> |
|||
<title>Warm-Flow设计器</title> |
|||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> |
|||
<style> |
|||
html, |
|||
body, |
|||
#app { |
|||
height: 100%; |
|||
margin: 0px; |
|||
padding: 0px; |
|||
} |
|||
|
|||
.chromeframe { |
|||
margin: 0.2em 0; |
|||
background: #ccc; |
|||
color: #000; |
|||
padding: 0.2em 0; |
|||
} |
|||
|
|||
#loader-wrapper { |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
z-index: 999999; |
|||
} |
|||
|
|||
#loader { |
|||
display: block; |
|||
position: relative; |
|||
left: 50%; |
|||
top: 50%; |
|||
width: 150px; |
|||
height: 150px; |
|||
margin: -75px 0 0 -75px; |
|||
border-radius: 50%; |
|||
border: 3px solid transparent; |
|||
border-top-color: #FFF; |
|||
-webkit-animation: spin 2s linear infinite; |
|||
-ms-animation: spin 2s linear infinite; |
|||
-moz-animation: spin 2s linear infinite; |
|||
-o-animation: spin 2s linear infinite; |
|||
animation: spin 2s linear infinite; |
|||
z-index: 1001; |
|||
} |
|||
|
|||
#loader:before { |
|||
content: ""; |
|||
position: absolute; |
|||
top: 5px; |
|||
left: 5px; |
|||
right: 5px; |
|||
bottom: 5px; |
|||
border-radius: 50%; |
|||
border: 3px solid transparent; |
|||
border-top-color: #FFF; |
|||
-webkit-animation: spin 3s linear infinite; |
|||
-moz-animation: spin 3s linear infinite; |
|||
-o-animation: spin 3s linear infinite; |
|||
-ms-animation: spin 3s linear infinite; |
|||
animation: spin 3s linear infinite; |
|||
} |
|||
|
|||
#loader:after { |
|||
content: ""; |
|||
position: absolute; |
|||
top: 15px; |
|||
left: 15px; |
|||
right: 15px; |
|||
bottom: 15px; |
|||
border-radius: 50%; |
|||
border: 3px solid transparent; |
|||
border-top-color: #FFF; |
|||
-moz-animation: spin 1.5s linear infinite; |
|||
-o-animation: spin 1.5s linear infinite; |
|||
-ms-animation: spin 1.5s linear infinite; |
|||
-webkit-animation: spin 1.5s linear infinite; |
|||
animation: spin 1.5s linear infinite; |
|||
} |
|||
|
|||
|
|||
@-webkit-keyframes spin { |
|||
0% { |
|||
-webkit-transform: rotate(0deg); |
|||
-ms-transform: rotate(0deg); |
|||
transform: rotate(0deg); |
|||
} |
|||
|
|||
100% { |
|||
-webkit-transform: rotate(360deg); |
|||
-ms-transform: rotate(360deg); |
|||
transform: rotate(360deg); |
|||
} |
|||
} |
|||
|
|||
@keyframes spin { |
|||
0% { |
|||
-webkit-transform: rotate(0deg); |
|||
-ms-transform: rotate(0deg); |
|||
transform: rotate(0deg); |
|||
} |
|||
|
|||
100% { |
|||
-webkit-transform: rotate(360deg); |
|||
-ms-transform: rotate(360deg); |
|||
transform: rotate(360deg); |
|||
} |
|||
} |
|||
|
|||
|
|||
#loader-wrapper .loader-section { |
|||
position: fixed; |
|||
top: 0; |
|||
width: 51%; |
|||
height: 100%; |
|||
background: #7171C6; |
|||
z-index: 1000; |
|||
-webkit-transform: translateX(0); |
|||
-ms-transform: translateX(0); |
|||
transform: translateX(0); |
|||
} |
|||
|
|||
#loader-wrapper .loader-section.section-left { |
|||
left: 0; |
|||
} |
|||
|
|||
#loader-wrapper .loader-section.section-right { |
|||
right: 0; |
|||
} |
|||
|
|||
|
|||
.loaded #loader-wrapper .loader-section.section-left { |
|||
-webkit-transform: translateX(-100%); |
|||
-ms-transform: translateX(-100%); |
|||
transform: translateX(-100%); |
|||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
|||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
|||
} |
|||
|
|||
.loaded #loader-wrapper .loader-section.section-right { |
|||
-webkit-transform: translateX(100%); |
|||
-ms-transform: translateX(100%); |
|||
transform: translateX(100%); |
|||
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
|||
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
|||
} |
|||
|
|||
.loaded #loader { |
|||
opacity: 0; |
|||
-webkit-transition: all 0.3s ease-out; |
|||
transition: all 0.3s ease-out; |
|||
} |
|||
|
|||
.loaded #loader-wrapper { |
|||
visibility: hidden; |
|||
-webkit-transform: translateY(-100%); |
|||
-ms-transform: translateY(-100%); |
|||
transform: translateY(-100%); |
|||
-webkit-transition: all 0.3s 1s ease-out; |
|||
transition: all 0.3s 1s ease-out; |
|||
} |
|||
|
|||
.no-js #loader-wrapper { |
|||
display: none; |
|||
} |
|||
|
|||
.no-js h1 { |
|||
color: #222222; |
|||
} |
|||
|
|||
#loader-wrapper .load_title { |
|||
font-family: 'Open Sans'; |
|||
color: #FFF; |
|||
font-size: 19px; |
|||
width: 100%; |
|||
text-align: center; |
|||
z-index: 9999999999999; |
|||
position: absolute; |
|||
top: 60%; |
|||
opacity: 1; |
|||
line-height: 30px; |
|||
} |
|||
|
|||
#loader-wrapper .load_title span { |
|||
font-weight: normal; |
|||
font-style: italic; |
|||
font-size: 13px; |
|||
color: #FFF; |
|||
opacity: 0.5; |
|||
} |
|||
</style> |
|||
<script type="module" crossorigin src="./js/index-iDzH0SQw.js"></script> |
|||
<link rel="stylesheet" crossorigin href="./css/index-Dcqqxojt.css"> |
|||
</head> |
|||
|
|||
<body> |
|||
<div id="app"> |
|||
<div id="loader-wrapper"> |
|||
<div id="loader"></div> |
|||
<div class="loader-section section-left"></div> |
|||
<div class="loader-section section-right"></div> |
|||
<div class="load_title">正在加载系统资源,请耐心等待</div> |
|||
</div> |
|||
</div> |
|||
</body> |
|||
|
|||
</html> |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue