Pre Merge pull request !363 from Regxi/yangsj

This commit is contained in:
Regxi 2021-10-29 13:33:21 +00:00 committed by Gitee
commit 0280f41c25
453 changed files with 38369 additions and 52 deletions

View File

@ -3,13 +3,15 @@ package com.ruoyi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* 启动程序
*
*
* @author ruoyi
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@EnableAsync
public class RuoYiApplication
{
public static void main(String[] args)

View File

@ -0,0 +1,100 @@
package com.ruoyi.web.controller.system;
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.core.page.VisualRespData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.BladeVisualCategory;
import com.ruoyi.system.service.IBladeVisualCategoryService;
/**
* 可视化分类Controller
*
* @author yangsj
* @date 2021-10-25
*/
@RestController
@RequestMapping("/avue/api/category")
public class BladeVisualCategoryController extends BaseController
{
@Autowired
private IBladeVisualCategoryService bladeVisualCategoryService;
/**
* 查询可视化分类列表
*/
// @PreAuthorize("@ss.hasPermi('system:visual_category:list')")
@GetMapping("/list")
public VisualRespData list(BladeVisualCategory bladeVisualCategory)
{
startPage();
List<BladeVisualCategory> list = bladeVisualCategoryService.selectBladeVisualCategoryList(bladeVisualCategory);
return getVisualData(list);
}
// /**
// * 导出可视化分类列表
// */
// @PreAuthorize("@ss.hasPermi('system:visual_category:export')")
// @Log(title = "可视化分类", businessType = BusinessType.EXPORT)
// @GetMapping("/export")
// public AjaxResult export(BladeVisualCategory bladeVisualCategory)
// {
// List<BladeVisualCategory> list = bladeVisualCategoryService.selectBladeVisualCategoryList(bladeVisualCategory);
// ExcelUtil<BladeVisualCategory> util = new ExcelUtil<BladeVisualCategory>(BladeVisualCategory.class);
// return util.exportExcel(list, "可视化分类数据");
// }
/**
* 获取可视化分类详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:visual_category:query')")
@GetMapping(value = "/detail")
public AjaxResult getInfo(Long id)
{
return AjaxResult.success(bladeVisualCategoryService.selectBladeVisualCategoryById(id));
}
/**
* 新增可视化分类
*/
// @PreAuthorize("@ss.hasPermi('system:visual_category:add')")
@Log(title = "可视化分类", businessType = BusinessType.INSERT)
@PostMapping("/save")
public AjaxResult add(@RequestBody BladeVisualCategory bladeVisualCategory)
{
return toAjax(bladeVisualCategoryService.insertBladeVisualCategory(bladeVisualCategory));
}
/**
* 修改可视化分类
*/
// @PreAuthorize("@ss.hasPermi('system:visual_category:edit')")
@Log(title = "可视化分类", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult edit(@RequestBody BladeVisualCategory bladeVisualCategory)
{
return toAjax(bladeVisualCategoryService.updateBladeVisualCategory(bladeVisualCategory));
}
/**
* 删除可视化分类
*/
// @PreAuthorize("@ss.hasPermi('system:visual_category:remove')")
@Log(title = "可视化分类", businessType = BusinessType.DELETE)
@PostMapping("/remove")
public AjaxResult remove(Long[] ids)
{
return toAjax(bladeVisualCategoryService.deleteBladeVisualCategoryByIds(ids));
}
}

View File

@ -0,0 +1,103 @@
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.BladeVisualConfig;
import com.ruoyi.system.service.IBladeVisualConfigService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 可视化配置Controller
*
* @author yangsj
* @date 2021-10-25
*/
@RestController
@RequestMapping("/avue/config")
public class BladeVisualConfigController extends BaseController
{
@Autowired
private IBladeVisualConfigService bladeVisualConfigService;
/**
* 查询可视化配置列表
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:list')")
@GetMapping("/list")
public TableDataInfo list(BladeVisualConfig bladeVisualConfig)
{
startPage();
List<BladeVisualConfig> list = bladeVisualConfigService.selectBladeVisualConfigList(bladeVisualConfig);
return getDataTable(list);
}
/**
* 导出可视化配置列表
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:export')")
@Log(title = "可视化配置", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(BladeVisualConfig bladeVisualConfig)
{
List<BladeVisualConfig> list = bladeVisualConfigService.selectBladeVisualConfigList(bladeVisualConfig);
ExcelUtil<BladeVisualConfig> util = new ExcelUtil<BladeVisualConfig>(BladeVisualConfig.class);
return util.exportExcel(list, "可视化配置数据");
}
/**
* 获取可视化配置详细信息
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(bladeVisualConfigService.selectBladeVisualConfigById(id));
}
/**
* 新增可视化配置
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:add')")
@Log(title = "可视化配置", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BladeVisualConfig bladeVisualConfig)
{
return toAjax(bladeVisualConfigService.insertBladeVisualConfig(bladeVisualConfig));
}
/**
* 修改可视化配置
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:edit')")
@Log(title = "可视化配置", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BladeVisualConfig bladeVisualConfig)
{
return toAjax(bladeVisualConfigService.updateBladeVisualConfig(bladeVisualConfig));
}
/**
* 删除可视化配置
*/
@PreAuthorize("@ss.hasPermi('system:visual_config:remove')")
@Log(title = "可视化配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(bladeVisualConfigService.deleteBladeVisualConfigByIds(ids));
}
}

View File

@ -0,0 +1,148 @@
package com.ruoyi.web.controller.system;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.common.core.page.VisualRespEmbData;
import com.ruoyi.system.service.impl.BladeVisualConfigServiceImpl;
import com.ruoyi.web.param.BladeVisualParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.unit.DataSize;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.BladeVisual;
import com.ruoyi.system.service.IBladeVisualService;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.MultipartConfigElement;
import javax.servlet.http.HttpServletRequest;
/**
* 可视化Controller
*
* @author yangsj
* @date 2021-10-25
*/
@RestController
@RequestMapping("/avue/api/visual")
public class BladeVisualController extends BaseController
{
@Autowired
private IBladeVisualService bladeVisualService;
/**
* 查询可视化列表
*/
// @PreAuthorize("@ss.hasPermi('system:visual:list')")
@GetMapping("/list")
public VisualRespEmbData list(Long category)
{
startPage();
// List<BladeVisual> list = bladeVisualService.selectBladeVisualList(bladeVisual);
List<BladeVisual> list = bladeVisualService.selectVisualListByCategory(category);
return getVisualEmbData(list);
// return getVisualData(list);
}
// /**
// * 导出可视化列表
// */
// @PreAuthorize("@ss.hasPermi('system:visual:export')")
// @Log(title = "可视化", businessType = BusinessType.EXPORT)
// @GetMapping("/export")
// public AjaxResult export(BladeVisual bladeVisual)
// {
// List<BladeVisual> list = bladeVisualService.selectBladeVisualList(bladeVisual);
// ExcelUtil<BladeVisual> util = new ExcelUtil<BladeVisual>(BladeVisual.class);
// return util.exportExcel(list, "可视化数据");
// }
/**
* 获取可视化详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:visual:query')")
@GetMapping(value = "/detail")
public AjaxResult getInfo(Long id)
{
return AjaxResult.success(bladeVisualService.selectBladeVisualById(id));
}
@Autowired
BladeVisualConfigServiceImpl configService;
/**
* 新增可视化
*/
// @PreAuthorize("@ss.hasPermi('system:visual:add')")
@Log(title = "可视化", businessType = BusinessType.INSERT)
@PostMapping("/save")
public AjaxResult add(@RequestBody BladeVisualParam param)
{
Long id = bladeVisualService.insertBladeVisual(param.getVisual());
// 两个表id相同方便检索
param.getConfig().setId(id);
param.getConfig().setVisualId(id);
configService.insertBladeVisualConfig(param.getConfig());
HashMap<String, String> map = new HashMap<>();
map.put("id",String.valueOf(id));
return new AjaxResult(200,"操作成功",map);
}
/**
* 修改可视化
*/
// @PreAuthorize("@ss.hasPermi('system:visual:edit')")
@Log(title = "可视化", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult edit(@RequestBody BladeVisualParam param)
{
String name = SecurityContextHolder.getContext().getAuthentication().getName();
param.getVisual().setUpdateBy(name);
param.getVisual().setUpdateTime(new Date());
int i = bladeVisualService.updateBladeVisual(param.getVisual());
int j = configService.updateBladeVisualConfig(param.getConfig());
return toAjax(i > 0 && j > 0);
}
/**
* 删除可视化
*/
// @PreAuthorize("@ss.hasPermi('system:visual:remove')")
@Log(title = "可视化", businessType = BusinessType.DELETE)
@PostMapping("/remove")
public AjaxResult remove(Long[] ids)
{
return toAjax(bladeVisualService.deleteBladeVisualByIds(ids));
}
/**
* 处理大屏预览图片上传
* @param file 图片
* @return VisualRespEmbData
*/
@PostMapping("/put-file")
public @ResponseBody VisualRespEmbData uploadImg(@RequestParam("file") MultipartFile file) {
//todo 前端每次更改了同一个大屏后都重新上传一张新图片文件名和原来不同导致预览图片堆积
// 应更改前端将大屏ID作为预览图片的文件名
return bladeVisualService.uploadFile(file);
}
}

View File

@ -0,0 +1,106 @@
package com.ruoyi.web.controller.system;
import java.util.List;
import com.ruoyi.common.core.page.VisualRespEmbData;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.BladeVisualMap;
import com.ruoyi.system.service.IBladeVisualMapService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 可视化地图配置Controller
*
* @author yangsj
* @date 2021-10-25
*/
@RestController
@RequestMapping("/avue/api/map")
public class BladeVisualMapController extends BaseController
{
@Autowired
private IBladeVisualMapService bladeVisualMapService;
/**
* 查询可视化地图配置列表
*/
// @PreAuthorize("@ss.hasPermi('system:visual_map:list')")
@GetMapping("/list")
public VisualRespEmbData list(BladeVisualMap bladeVisualMap)
{
startPage();
List<BladeVisualMap> list = bladeVisualMapService.selectBladeVisualMapList(bladeVisualMap);
return getVisualEmbData(list);
// return getDataTable(list);
}
// /**
// * 导出可视化地图配置列表
// */
//// @PreAuthorize("@ss.hasPermi('system:visual_map:export')")
// @Log(title = "可视化地图配置", businessType = BusinessType.EXPORT)
// @GetMapping("/export")
// public AjaxResult export(BladeVisualMap bladeVisualMap)
// {
// List<BladeVisualMap> list = bladeVisualMapService.selectBladeVisualMapList(bladeVisualMap);
// ExcelUtil<BladeVisualMap> util = new ExcelUtil<BladeVisualMap>(BladeVisualMap.class);
// return util.exportExcel(list, "可视化地图配置数据");
// }
/**
* 获取可视化地图配置详细信息
*/
// @PreAuthorize("@ss.hasPermi('system:visual_map:query')")
@GetMapping(value = "/detail")
public AjaxResult getInfo(Long id)
{
return AjaxResult.success(bladeVisualMapService.selectBladeVisualMapById(id));
}
/**
* 新增可视化地图配置
*/
// @PreAuthorize("@ss.hasPermi('system:visual_map:add')")
@Log(title = "可视化地图配置", businessType = BusinessType.INSERT)
@PostMapping("/save")
public AjaxResult add(@RequestBody BladeVisualMap bladeVisualMap)
{
return toAjax(bladeVisualMapService.insertBladeVisualMap(bladeVisualMap));
}
/**
* 修改可视化地图配置
*/
// @PreAuthorize("@ss.hasPermi('system:visual_map:edit')")
@Log(title = "可视化地图配置", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public AjaxResult edit(@RequestBody BladeVisualMap bladeVisualMap)
{
return toAjax(bladeVisualMapService.updateBladeVisualMap(bladeVisualMap));
}
/**
* 删除可视化地图配置
*/
// @PreAuthorize("@ss.hasPermi('system:visual_map:remove')")
@Log(title = "可视化地图配置", businessType = BusinessType.DELETE)
@PostMapping("/remove")
public AjaxResult remove(Long[] ids)
{
return toAjax(bladeVisualMapService.deleteBladeVisualMapByIds(ids));
}
}

View File

@ -0,0 +1,186 @@
package com.ruoyi.web.controller.system;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.service.impl.VisualImageServiceImpl;
import com.ruoyi.web.param.VisualImageAddParam;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.unit.DataSize;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.VisualImage;
import com.ruoyi.system.service.IVisualImageService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.MultipartConfigElement;
/**
* 图片管理管理上传的图片Controller
*
* @author yangsj
* @date 2021-10-28
*/
@RestController
@RequestMapping("/system/visualImage")
public class VisualImageController extends BaseController
{
@Autowired
private IVisualImageService visualImageService;
/**
* 查询图片管理管理上传的图片列表
*/
@PreAuthorize("@ss.hasPermi('system:image:list')")
@GetMapping("/list")
public TableDataInfo list(VisualImage visualImage)
{
startPage();
List<VisualImage> list = visualImageService.selectVisualImageList(visualImage);
return getDataTable(list);
}
/**
* 导出图片
*/
@PreAuthorize("@ss.hasPermi('system:image:export')")
@Log(title = "图片管理。管理上传的图片", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(VisualImage visualImage)
{
List<VisualImage> list = visualImageService.selectVisualImageList(visualImage);
ExcelUtil<VisualImage> util = new ExcelUtil<VisualImage>(VisualImage.class);
return util.exportExcel(list, "图片管理。管理上传的图片数据");
}
/**
* 获取图片
*/
@PreAuthorize("@ss.hasPermi('system:image:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(visualImageService.selectVisualImageById(id));
}
/**
* 新增图片
*/
@PreAuthorize("@ss.hasPermi('system:image:add')")
@Log(title = "图片管理。管理上传的图片", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody VisualImage visualImage)
{
String name = SecurityContextHolder.getContext().getAuthentication().getName();
visualImage.setCreateBy(name);
visualImageService.saveThumb(visualImage);
// 切割图片是异步进行的
visualImageService.divideImage(visualImage);
return toAjax(visualImageService.insertVisualImage(visualImage));
}
// @Value("${imageDir.visualImage}")
// private String imageDir;
@PreAuthorize("@ss.hasPermi('system:image:query')")
@GetMapping("/link")
private AjaxResult getLink(@RequestParam String fileName){
IVisualImageService vService = SpringUtils.getBean(IVisualImageService.class);
Map<String, String> map = vService.getLink(fileName);
if (map == null) {
return AjaxResult.error("文件名错误");
}
return AjaxResult.success(map);
}
// @PreAuthorize("@ss.hasPermi('system:image:add')")
// @Log(title = "图片管理。管理上传的图片", businessType = BusinessType.INSERT)
@PostMapping("/upload")
private AjaxResult uploadImage(@RequestParam MultipartFile file){
//todo BUG这里自动注入失败调用服务会报空指针异常
// String newFileName = visualImageService.saveImageToLocal(file);
String imageDir = "/images";
String filePath = RuoYiConfig.getProfile() + imageDir;
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
String[] fileNameSplit = file.getOriginalFilename().split("\\.");
String fileType = fileNameSplit[fileNameSplit.length - 1];
String newFileName = UUID.fastUUID().toString(true) + "." + fileType;
String fullFileName = filePath + "/" + newFileName;
try {
FileOutputStream out = new FileOutputStream(fullFileName);
out.write(file.getBytes());
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
HashMap<String, String> map = new HashMap<>();
map.put("name",newFileName);
return AjaxResult.success(map);
}
/**
* 修改
*/
@PreAuthorize("@ss.hasPermi('system:image:edit')")
@Log(title = "图片管理。管理上传的图片", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody VisualImage visualImage)
{
String name = SecurityContextHolder.getContext().getAuthentication().getName();
visualImage.setUpdateBy(name);
return toAjax(visualImageService.updateVisualImage(visualImage));
}
/**
* 删除图片
*/
@PreAuthorize("@ss.hasPermi('system:image:remove')")
@Log(title = "图片管理。管理上传的图片", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
// todo 删除本地图片
return toAjax(visualImageService.deleteVisualImageByIds(ids));
}
@Value("${imageDir.maxImageMB}")
private Integer maxImage;
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxRequestSize(DataSize.ofMegabytes(maxImage));
factory.setMaxFileSize(DataSize.ofMegabytes(maxImage));
return factory.createMultipartConfig();
}
}

View File

@ -0,0 +1,37 @@
package com.ruoyi.web.param;
import com.ruoyi.system.domain.BladeVisual;
import com.ruoyi.system.domain.BladeVisualConfig;
public class BladeVisualParam {
private BladeVisualConfig config;
private BladeVisual visual;
public BladeVisualParam() {
}
public BladeVisualConfig getConfig() {
return config;
}
public void setConfig(BladeVisualConfig config) {
this.config = config;
}
public BladeVisual getVisual() {
return visual;
}
public void setVisual(BladeVisual visual) {
this.visual = visual;
}
@Override
public String toString() {
return "VisualAddParam{" +
"config=" + config +
", visual=" + visual +
'}';
}
}

View File

@ -0,0 +1,39 @@
package com.ruoyi.web.param;
import org.springframework.web.multipart.MultipartFile;
public class VisualImageAddParam {
private MultipartFile file;
private Integer width;
private Integer heigth;
public VisualImageAddParam() {
}
public MultipartFile getFile() {
return file;
}
public void setFile(MultipartFile file) {
this.file = file;
}
public Integer getWidth() {
return width;
}
public void setWidth(Integer width) {
this.width = width;
}
public Integer getHeigth() {
return heigth;
}
public void setHeigth(Integer heigth) {
this.heigth = heigth;
}
}

View File

@ -6,16 +6,16 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://172.17.172.240:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: password
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
@ -35,7 +35,7 @@ spring:
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
webStatFilter:
enabled: true
statViewServlet:
enabled: true
@ -54,4 +54,4 @@ spring:
merge-sql: true
wall:
config:
multi-statement-allow: true
multi-statement-allow: true

View File

@ -9,12 +9,25 @@ ruoyi:
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
profile: F:/ruoyi/uploadPath
# profile: /home/yangsj/bigScreen
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数组计算 char 字符验证
captchaType: math
imageDir:
# 大屏的预览图片存放文件夹名
bigScreen: /overview
# 其他图片存放文件夹名
visualImage: /images
# 缩略图宽高
width: 100
height: 100
# 上传图片最大MB
maxImageMB: 300
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080
@ -42,7 +55,7 @@ spring:
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
profiles:
active: druid
# 文件上传
servlet:
@ -59,13 +72,13 @@ spring:
# redis 配置
redis:
# 地址
host: localhost
host: 172.17.172.240
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
database: 4
# 密码
password:
password: ydd123456
# 连接超时时间
timeout: 10s
lettuce:
@ -87,7 +100,7 @@ token:
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期默认30分钟
expireTime: 30
# MyBatis配置
mybatis:
# 搜索指定包别名
@ -98,10 +111,10 @@ mybatis:
configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
pagehelper:
helperDialect: mysql
supportMethodsArguments: true
params: count=countSql
params: count=countSql
# Swagger配置
swagger:
@ -111,10 +124,16 @@ swagger:
pathMapping: /dev-api
# 防止XSS攻击
xss:
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
#bigScreen:
# prefix: /overview

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="/home/ruoyi/logs" />
<property name="log.path" value="/home/yangsj/logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
@ -11,7 +11,7 @@
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
@ -34,7 +34,7 @@
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
@ -56,7 +56,7 @@
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
@ -70,7 +70,7 @@
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.ruoyi" level="info" />
<!-- Spring日志级别控制 -->
@ -79,15 +79,15 @@
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>
</configuration>

View File

@ -52,7 +52,7 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@ -124,7 +124,6 @@
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
</project>
</project>

View File

@ -3,6 +3,8 @@ package com.ruoyi.common.core.controller;
import java.beans.PropertyEditorSupport;
import java.util.Date;
import java.util.List;
import com.ruoyi.common.core.page.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
@ -12,9 +14,6 @@ import com.github.pagehelper.PageInfo;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
@ -22,7 +21,7 @@ import com.ruoyi.common.utils.sql.SqlUtil;
/**
* web层通用数据处理
*
*
* @author ruoyi
*/
public class BaseController
@ -89,6 +88,31 @@ public class BaseController
return rspData;
}
protected VisualRespData getVisualData(List<?> list){
VisualRespData respData = new VisualRespData();
respData.setCode(HttpStatus.SUCCESS);
respData.setSuccess(true);
respData.setMsg("操作成功");
respData.setData(list);
return respData;
}
protected VisualRespEmbData getVisualEmbData(List<?> list){
VisualRespEmbData respData = new VisualRespEmbData();
VisualData data = new VisualData();
PageInfo<?> pageInfo = new PageInfo<>(list);
data.setTotal(pageInfo.getTotal());
data.setCurrent(pageInfo.getPageNum());
data.setRecords(list);
respData.setData(data);
return respData;
}
/**
* 返回成功
*/
@ -123,7 +147,7 @@ public class BaseController
/**
* 响应返回结果
*
*
* @param rows 影响行数
* @return 操作结果
*/
@ -134,7 +158,7 @@ public class BaseController
/**
* 响应返回结果
*
*
* @param result 结果
* @return 操作结果
*/

View File

@ -0,0 +1,84 @@
package com.ruoyi.common.core.page;
import java.awt.*;
import java.io.Serializable;
import java.util.List;
public class VisualData implements Serializable {
private static final long serialVersionUID = 1L;
{
this.hitCount = false;
this.searchCount = true;
// this.orders =
}
private Integer current;
private Boolean hitCount;
private List<?> orders;
private Integer pages;
private List<?> records;
private Boolean searchCount;
private Long total;
public VisualData() {
}
public Integer getCurrent() {
return current;
}
public void setCurrent(Integer current) {
this.current = current;
}
public Boolean getHitCount() {
return hitCount;
}
public void setHitCount(Boolean hitCount) {
this.hitCount = hitCount;
}
public List<?> getOrders() {
return orders;
}
public void setOrders(List<?> orders) {
this.orders = orders;
}
public Integer getPages() {
return pages;
}
public void setPages(Integer pages) {
this.pages = pages;
}
public List<?> getRecords() {
return records;
}
public void setRecords(List<?> records) {
this.records = records;
}
public Boolean getSearchCount() {
return searchCount;
}
public void setSearchCount(Boolean searchCount) {
this.searchCount = searchCount;
}
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
}

View File

@ -0,0 +1,62 @@
package com.ruoyi.common.core.page;
import java.io.Serializable;
import java.util.List;
public class VisualRespData implements Serializable {
private static final long serialVersionUID = 1L;
/** 消息状态码 */
private int code;
private Boolean success;
private String msg;
private List<?> data;
public VisualRespData() {
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public List<?> getData() {
return data;
}
public void setData(List<?> data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString() {
return "VisualRespData{" +
"code=" + code +
", success=" + success +
", data=" + data +
'}';
}
}

View File

@ -0,0 +1,69 @@
package com.ruoyi.common.core.page;
import java.io.Serializable;
import java.util.List;
public class VisualRespEmbData implements Serializable {
private static final long serialVersionUID = 1L;
{
this.code = 200;
this.msg = "操作成功";
this.success = true;
}
/** 消息状态码 */
private int code;
private Boolean success;
private String msg;
private Object data;
public VisualRespEmbData() {
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@Override
public String toString() {
return "VisualRespEmbData{" +
"code=" + code +
", success=" + success +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}

View File

@ -20,7 +20,7 @@ import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl;
/**
* spring security配置
*
*
* @author ruoyi
*/
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@ -31,7 +31,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
*/
@Autowired
private UserDetailsService userDetailsService;
/**
* 认证失败处理类
*/
@ -49,13 +49,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
*/
@Autowired
private JwtAuthenticationTokenFilter authenticationTokenFilter;
/**
* 跨域过滤器
*/
@Autowired
private CorsFilter corsFilter;
/**
* 解决 无法直接注入 AuthenticationManager
*
@ -107,6 +107,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
"/**/*.js",
"/profile/**"
).permitAll()
.antMatchers("/avue/api/category/list").permitAll()
// .antMatchers("/system/visualImage/link").permitAll() // 测试
.antMatchers("/avue/api/visual/put-file").permitAll()
.antMatchers("/system/visualImage/upload").anonymous()
.antMatchers("/swagger-ui.html").anonymous()
.antMatchers("/swagger-resources/**").anonymous()
.antMatchers("/webjars/**").anonymous()

View File

@ -0,0 +1,139 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 可视化对象 blade_visual
*
* @author yangsj
* @date 2021-10-25
*/
public class BladeVisual extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 大屏标题 */
@Excel(name = "大屏标题")
private String title;
/** 预览图地址 */
@Excel(name = "预览图地址")
private String backgroundUrl;
/** 大屏类型 */
@Excel(name = "大屏类型")
private Long category;
/** 发布密码 */
@Excel(name = "发布密码")
private String password;
/** 鍒涘缓閮ㄩ棬 */
@Excel(name = "鍒涘缓閮ㄩ棬")
private Long createDept;
/** 状态 */
@Excel(name = "状态")
private Long status;
/** 鏄惁宸插垹闄? */
@Excel(name = "鏄惁宸插垹闄?")
private Long isdeleted;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setTitle(String title)
{
this.title = title;
}
public String getTitle()
{
return title;
}
public void setBackgroundUrl(String backgroundUrl)
{
this.backgroundUrl = backgroundUrl;
}
public String getBackgroundUrl()
{
return backgroundUrl;
}
public void setCategory(Long category)
{
this.category = category;
}
public Long getCategory()
{
return category;
}
public void setPassword(String password)
{
this.password = password;
}
public String getPassword()
{
return password;
}
public void setCreateDept(Long createDept)
{
this.createDept = createDept;
}
public Long getCreateDept()
{
return createDept;
}
public void setStatus(Long status)
{
this.status = status;
}
public Long getStatus()
{
return status;
}
public void setIsdeleted(Long isdeleted)
{
this.isdeleted = isdeleted;
}
public Long getIsdeleted()
{
return isdeleted;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("title", getTitle())
.append("backgroundUrl", getBackgroundUrl())
.append("category", getCategory())
.append("password", getPassword())
.append("createDept", getCreateDept())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("status", getStatus())
.append("isdeleted", getIsdeleted())
.toString();
}
}

View File

@ -0,0 +1,79 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 可视化分类对象 blade_visual_category
*
* @author yangsj
* @date 2021-10-25
*/
public class BladeVisualCategory extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 鍒嗙被閿€? */
@Excel(name = "鍒嗙被閿€?")
private String categoryKey;
/** 鍒嗙被鍚嶇О */
@Excel(name = "鍒嗙被鍚嶇О")
private String categoryValue;
/** 鏄惁宸插垹闄? */
@Excel(name = "鏄惁宸插垹闄?")
private Long isDeleted;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCategoryKey(String categoryKey)
{
this.categoryKey = categoryKey;
}
public String getCategoryKey()
{
return categoryKey;
}
public void setCategoryValue(String categoryValue)
{
this.categoryValue = categoryValue;
}
public String getCategoryValue()
{
return categoryValue;
}
public void setIsDeleted(Long isDeleted)
{
this.isDeleted = isDeleted;
}
public Long getIsDeleted()
{
return isDeleted;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("categoryKey", getCategoryKey())
.append("categoryValue", getCategoryValue())
.append("isDeleted", getIsDeleted())
.toString();
}
}

View File

@ -0,0 +1,79 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 可视化配置对象 blade_visual_config
*
* @author yangsj
* @date 2021-10-25
*/
public class BladeVisualConfig extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 鍙鍖栬〃涓婚敭 */
@Excel(name = "鍙鍖栬〃涓婚敭")
private Long visualId;
/** 配置json */
@Excel(name = "配置json")
private String detail;
/** 组件json */
@Excel(name = "组件json")
private String component;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setVisualId(Long visualId)
{
this.visualId = visualId;
}
public Long getVisualId()
{
return visualId;
}
public void setDetail(String detail)
{
this.detail = detail;
}
public String getDetail()
{
return detail;
}
public void setComponent(String component)
{
this.component = component;
}
public String getComponent()
{
return component;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("visualId", getVisualId())
.append("detail", getDetail())
.append("component", getComponent())
.toString();
}
}

View File

@ -0,0 +1,65 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 可视化地图配置对象 blade_visual_map
*
* @author yangsj
* @date 2021-10-25
*/
public class BladeVisualMap extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 地图名称 */
@Excel(name = "地图名称")
private String name;
/** 地图数据 */
@Excel(name = "地图数据")
private String data;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setData(String data)
{
this.data = data;
}
public String getData()
{
return data;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("name", getName())
.append("data", getData())
.toString();
}
}

View File

@ -0,0 +1,128 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import javax.validation.constraints.Min;
/**
* 图片管理管理上传的图片对象 visual_image
*
* @author yangsj
* @date 2021-10-28
*/
public class VisualImage extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 原始文件名 */
@Excel(name = "原始文件名")
private String originName;
/** 新生成的文件名 */
@Excel(name = "新生成的文件名")
private String newName;
/** 沿宽度切割的个数 */
@Excel(name = "沿宽度切割的个数")
@Min(value = 1)
private Integer width;
/** 沿高度切割的个数 */
@Excel(name = "沿高度切割的个数")
@Min(value = 1)
private Integer height;
/** 描述信息 */
@Excel(name = "描述信息")
private String descri;
/** 删除标志0代表存在 2代表删除 */
private String delFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setOriginName(String originName)
{
this.originName = originName;
}
public String getOriginName()
{
return originName;
}
public void setNewName(String newName)
{
this.newName = newName;
}
public String getNewName()
{
return newName;
}
public void setWidth(Integer width)
{
this.width = width;
}
public Integer getWidth()
{
return width;
}
public void setHeight(Integer height)
{
this.height = height;
}
public Integer getHeight()
{
return height;
}
public String getDescri() {
return descri;
}
public void setDescri(String descri) {
this.descri = descri;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("originName", getOriginName())
.append("newName", getNewName())
.append("width", getWidth())
.append("height", getHeight())
.append("descri", getDescri())
.append("delFlag", getDelFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,46 @@
package com.ruoyi.system.domain.vo;
public class BladeImageVo {
String domain;
String link;
String name;
String originalName;
public BladeImageVo() {
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOriginalName() {
return originalName;
}
public void setOriginalName(String originalName) {
this.originalName = originalName;
}
}

View File

@ -0,0 +1,37 @@
package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.BladeVisual;
import com.ruoyi.system.domain.BladeVisualConfig;
public class BladeVisualVo {
private BladeVisualConfig config;
private BladeVisual visual;
public BladeVisualVo() {
}
public BladeVisualConfig getConfig() {
return config;
}
public void setConfig(BladeVisualConfig config) {
this.config = config;
}
public BladeVisual getVisual() {
return visual;
}
public void setVisual(BladeVisual visual) {
this.visual = visual;
}
@Override
public String toString() {
return "BladeVisualVo{" +
"config=" + config +
", visual=" + visual +
'}';
}
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualCategory;
/**
* 可视化分类Mapper接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface BladeVisualCategoryMapper
{
/**
* 查询可视化分类
*
* @param id 可视化分类主键
* @return 可视化分类
*/
public BladeVisualCategory selectBladeVisualCategoryById(Long id);
/**
* 查询可视化分类列表
*
* @param bladeVisualCategory 可视化分类
* @return 可视化分类集合
*/
public List<BladeVisualCategory> selectBladeVisualCategoryList(BladeVisualCategory bladeVisualCategory);
/**
* 新增可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
public int insertBladeVisualCategory(BladeVisualCategory bladeVisualCategory);
/**
* 修改可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
public int updateBladeVisualCategory(BladeVisualCategory bladeVisualCategory);
/**
* 删除可视化分类
*
* @param id 可视化分类主键
* @return 结果
*/
public int deleteBladeVisualCategoryById(Long id);
/**
* 批量删除可视化分类
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBladeVisualCategoryByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualConfig;
/**
* 可视化配置Mapper接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface BladeVisualConfigMapper
{
/**
* 查询可视化配置
*
* @param id 可视化配置主键
* @return 可视化配置
*/
public BladeVisualConfig selectBladeVisualConfigById(Long id);
/**
* 查询可视化配置列表
*
* @param bladeVisualConfig 可视化配置
* @return 可视化配置集合
*/
public List<BladeVisualConfig> selectBladeVisualConfigList(BladeVisualConfig bladeVisualConfig);
/**
* 新增可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
public int insertBladeVisualConfig(BladeVisualConfig bladeVisualConfig);
/**
* 修改可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
public int updateBladeVisualConfig(BladeVisualConfig bladeVisualConfig);
/**
* 删除可视化配置
*
* @param id 可视化配置主键
* @return 结果
*/
public int deleteBladeVisualConfigById(Long id);
/**
* 批量删除可视化配置
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBladeVisualConfigByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualMap;
/**
* 可视化地图配置Mapper接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface BladeVisualMapMapper
{
/**
* 查询可视化地图配置
*
* @param id 可视化地图配置主键
* @return 可视化地图配置
*/
public BladeVisualMap selectBladeVisualMapById(Long id);
/**
* 查询可视化地图配置列表
*
* @param bladeVisualMap 可视化地图配置
* @return 可视化地图配置集合
*/
public List<BladeVisualMap> selectBladeVisualMapList(BladeVisualMap bladeVisualMap);
/**
* 新增可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
public int insertBladeVisualMap(BladeVisualMap bladeVisualMap);
/**
* 修改可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
public int updateBladeVisualMap(BladeVisualMap bladeVisualMap);
/**
* 删除可视化地图配置
*
* @param id 可视化地图配置主键
* @return 结果
*/
public int deleteBladeVisualMapById(Long id);
/**
* 批量删除可视化地图配置
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBladeVisualMapByIds(Long[] ids);
}

View File

@ -0,0 +1,70 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.BladeVisual;
/**
* 可视化Mapper接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface BladeVisualMapper
{
/**
* 查询可视化
*
* @param id 可视化主键
* @return 可视化
*/
public BladeVisual selectBladeVisualById(Long id);
/**
* 通过分类查找大屏
* @param category 分类
* @return 大屏列表
*/
List<BladeVisual> selectVisualByCategory(Long category);
/**
* 查询可视化列表
*
* @param bladeVisual 可视化
* @return 可视化集合
*/
public List<BladeVisual> selectBladeVisualList(BladeVisual bladeVisual);
/**
* 新增可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
public int insertBladeVisual(BladeVisual bladeVisual);
/**
* 修改可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
public int updateBladeVisual(BladeVisual bladeVisual);
/**
* 删除可视化
*
* @param id 可视化主键
* @return 结果
*/
public int deleteBladeVisualById(Long id);
/**
* 批量删除可视化
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBladeVisualByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.VisualImage;
/**
* 图片管理管理上传的图片Mapper接口
*
* @author yangsj
* @date 2021-10-28
*/
public interface VisualImageMapper
{
/**
* 查询图片管理管理上传的图片
*
* @param id 图片管理管理上传的图片主键
* @return 图片管理管理上传的图片
*/
public VisualImage selectVisualImageById(Long id);
/**
* 查询图片管理管理上传的图片列表
*
* @param visualImage 图片管理管理上传的图片
* @return 图片管理管理上传的图片集合
*/
public List<VisualImage> selectVisualImageList(VisualImage visualImage);
/**
* 新增图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
public int insertVisualImage(VisualImage visualImage);
/**
* 修改图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
public int updateVisualImage(VisualImage visualImage);
/**
* 删除图片管理管理上传的图片
*
* @param id 图片管理管理上传的图片主键
* @return 结果
*/
public int deleteVisualImageById(Long id);
/**
* 批量删除图片管理管理上传的图片
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteVisualImageByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualCategory;
/**
* 可视化分类Service接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface IBladeVisualCategoryService
{
/**
* 查询可视化分类
*
* @param id 可视化分类主键
* @return 可视化分类
*/
public BladeVisualCategory selectBladeVisualCategoryById(Long id);
/**
* 查询可视化分类列表
*
* @param bladeVisualCategory 可视化分类
* @return 可视化分类集合
*/
public List<BladeVisualCategory> selectBladeVisualCategoryList(BladeVisualCategory bladeVisualCategory);
/**
* 新增可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
public int insertBladeVisualCategory(BladeVisualCategory bladeVisualCategory);
/**
* 修改可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
public int updateBladeVisualCategory(BladeVisualCategory bladeVisualCategory);
/**
* 批量删除可视化分类
*
* @param ids 需要删除的可视化分类主键集合
* @return 结果
*/
public int deleteBladeVisualCategoryByIds(Long[] ids);
/**
* 删除可视化分类信息
*
* @param id 可视化分类主键
* @return 结果
*/
public int deleteBladeVisualCategoryById(Long id);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualConfig;
/**
* 可视化配置Service接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface IBladeVisualConfigService
{
/**
* 查询可视化配置
*
* @param id 可视化配置主键
* @return 可视化配置
*/
public BladeVisualConfig selectBladeVisualConfigById(Long id);
/**
* 查询可视化配置列表
*
* @param bladeVisualConfig 可视化配置
* @return 可视化配置集合
*/
public List<BladeVisualConfig> selectBladeVisualConfigList(BladeVisualConfig bladeVisualConfig);
/**
* 新增可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
public int insertBladeVisualConfig(BladeVisualConfig bladeVisualConfig);
/**
* 修改可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
public int updateBladeVisualConfig(BladeVisualConfig bladeVisualConfig);
/**
* 批量删除可视化配置
*
* @param ids 需要删除的可视化配置主键集合
* @return 结果
*/
public int deleteBladeVisualConfigByIds(Long[] ids);
/**
* 删除可视化配置信息
*
* @param id 可视化配置主键
* @return 结果
*/
public int deleteBladeVisualConfigById(Long id);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.BladeVisualMap;
/**
* 可视化地图配置Service接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface IBladeVisualMapService
{
/**
* 查询可视化地图配置
*
* @param id 可视化地图配置主键
* @return 可视化地图配置
*/
public BladeVisualMap selectBladeVisualMapById(Long id);
/**
* 查询可视化地图配置列表
*
* @param bladeVisualMap 可视化地图配置
* @return 可视化地图配置集合
*/
public List<BladeVisualMap> selectBladeVisualMapList(BladeVisualMap bladeVisualMap);
/**
* 新增可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
public int insertBladeVisualMap(BladeVisualMap bladeVisualMap);
/**
* 修改可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
public int updateBladeVisualMap(BladeVisualMap bladeVisualMap);
/**
* 批量删除可视化地图配置
*
* @param ids 需要删除的可视化地图配置主键集合
* @return 结果
*/
public int deleteBladeVisualMapByIds(Long[] ids);
/**
* 删除可视化地图配置信息
*
* @param id 可视化地图配置主键
* @return 结果
*/
public int deleteBladeVisualMapById(Long id);
}

View File

@ -0,0 +1,69 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.common.core.page.VisualRespEmbData;
import com.ruoyi.system.domain.BladeVisual;
import com.ruoyi.system.domain.vo.BladeVisualVo;
import org.springframework.web.multipart.MultipartFile;
/**
* 可视化Service接口
*
* @author yangsj
* @date 2021-10-25
*/
public interface IBladeVisualService
{
/**
* 查询可视化
*
* @param id 可视化主键
* @return 可视化
*/
public BladeVisualVo selectBladeVisualById(Long id);
/**
* 查询可视化列表
*
* @param bladeVisual 可视化
* @return 可视化集合
*/
public List<BladeVisual> selectBladeVisualList(BladeVisual bladeVisual);
/**
* 新增可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
public Long insertBladeVisual(BladeVisual bladeVisual);
/**
* 修改可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
public int updateBladeVisual(BladeVisual bladeVisual);
/**
* 批量删除可视化
*
* @param ids 需要删除的可视化主键集合
* @return 结果
*/
public int deleteBladeVisualByIds(Long[] ids);
/**
* 删除可视化信息
*
* @param id 可视化主键
* @return 结果
*/
public int deleteBladeVisualById(Long id);
List<BladeVisual> selectVisualListByCategory(Long category);
VisualRespEmbData uploadFile(MultipartFile file);
}

View File

@ -0,0 +1,74 @@
package com.ruoyi.system.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.VisualImage;
import org.springframework.web.multipart.MultipartFile;
/**
* 图片管理管理上传的图片Service接口
*
* @author yangsj
* @date 2021-10-28
*/
public interface IVisualImageService
{
/**
* 查询图片管理管理上传的图片
*
* @param id 图片管理管理上传的图片主键
* @return 图片管理管理上传的图片
*/
public VisualImage selectVisualImageById(Long id);
/**
* 查询图片管理管理上传的图片列表
*
* @param visualImage 图片管理管理上传的图片
* @return 图片管理管理上传的图片集合
*/
public List<VisualImage> selectVisualImageList(VisualImage visualImage);
/**
* 新增图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
public int insertVisualImage(VisualImage visualImage);
/**
* 修改图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
public int updateVisualImage(VisualImage visualImage);
/**
* 批量删除图片管理管理上传的图片
*
* @param ids 需要删除的图片管理管理上传的图片主键集合
* @return 结果
*/
public int deleteVisualImageByIds(Long[] ids);
/**
* 删除图片管理管理上传的图片信息
*
* @param id 图片管理管理上传的图片主键
* @return 结果
*/
public int deleteVisualImageById(Long id);
int addImage(MultipartFile file, Integer heigth, Integer width);
String saveImageToLocal(MultipartFile file);
void divideImage(VisualImage visualImage);
void saveThumb(VisualImage visualImage);
Map<String,String> getLink(String fileName);
}

View File

@ -0,0 +1,93 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BladeVisualCategoryMapper;
import com.ruoyi.system.domain.BladeVisualCategory;
import com.ruoyi.system.service.IBladeVisualCategoryService;
/**
* 可视化分类Service业务层处理
*
* @author yangsj
* @date 2021-10-25
*/
@Service
public class BladeVisualCategoryServiceImpl implements IBladeVisualCategoryService
{
@Autowired
private BladeVisualCategoryMapper bladeVisualCategoryMapper;
/**
* 查询可视化分类
*
* @param id 可视化分类主键
* @return 可视化分类
*/
@Override
public BladeVisualCategory selectBladeVisualCategoryById(Long id)
{
return bladeVisualCategoryMapper.selectBladeVisualCategoryById(id);
}
/**
* 查询可视化分类列表
*
* @param bladeVisualCategory 可视化分类
* @return 可视化分类
*/
@Override
public List<BladeVisualCategory> selectBladeVisualCategoryList(BladeVisualCategory bladeVisualCategory)
{
return bladeVisualCategoryMapper.selectBladeVisualCategoryList(bladeVisualCategory);
}
/**
* 新增可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
@Override
public int insertBladeVisualCategory(BladeVisualCategory bladeVisualCategory)
{
return bladeVisualCategoryMapper.insertBladeVisualCategory(bladeVisualCategory);
}
/**
* 修改可视化分类
*
* @param bladeVisualCategory 可视化分类
* @return 结果
*/
@Override
public int updateBladeVisualCategory(BladeVisualCategory bladeVisualCategory)
{
return bladeVisualCategoryMapper.updateBladeVisualCategory(bladeVisualCategory);
}
/**
* 批量删除可视化分类
*
* @param ids 需要删除的可视化分类主键
* @return 结果
*/
@Override
public int deleteBladeVisualCategoryByIds(Long[] ids)
{
return bladeVisualCategoryMapper.deleteBladeVisualCategoryByIds(ids);
}
/**
* 删除可视化分类信息
*
* @param id 可视化分类主键
* @return 结果
*/
@Override
public int deleteBladeVisualCategoryById(Long id)
{
return bladeVisualCategoryMapper.deleteBladeVisualCategoryById(id);
}
}

View File

@ -0,0 +1,93 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BladeVisualConfigMapper;
import com.ruoyi.system.domain.BladeVisualConfig;
import com.ruoyi.system.service.IBladeVisualConfigService;
/**
* 可视化配置Service业务层处理
*
* @author yangsj
* @date 2021-10-25
*/
@Service
public class BladeVisualConfigServiceImpl implements IBladeVisualConfigService
{
@Autowired
private BladeVisualConfigMapper bladeVisualConfigMapper;
/**
* 查询可视化配置
*
* @param id 可视化配置主键
* @return 可视化配置
*/
@Override
public BladeVisualConfig selectBladeVisualConfigById(Long id)
{
return bladeVisualConfigMapper.selectBladeVisualConfigById(id);
}
/**
* 查询可视化配置列表
*
* @param bladeVisualConfig 可视化配置
* @return 可视化配置
*/
@Override
public List<BladeVisualConfig> selectBladeVisualConfigList(BladeVisualConfig bladeVisualConfig)
{
return bladeVisualConfigMapper.selectBladeVisualConfigList(bladeVisualConfig);
}
/**
* 新增可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
@Override
public int insertBladeVisualConfig(BladeVisualConfig bladeVisualConfig)
{
return bladeVisualConfigMapper.insertBladeVisualConfig(bladeVisualConfig);
}
/**
* 修改可视化配置
*
* @param bladeVisualConfig 可视化配置
* @return 结果
*/
@Override
public int updateBladeVisualConfig(BladeVisualConfig bladeVisualConfig)
{
return bladeVisualConfigMapper.updateBladeVisualConfig(bladeVisualConfig);
}
/**
* 批量删除可视化配置
*
* @param ids 需要删除的可视化配置主键
* @return 结果
*/
@Override
public int deleteBladeVisualConfigByIds(Long[] ids)
{
return bladeVisualConfigMapper.deleteBladeVisualConfigByIds(ids);
}
/**
* 删除可视化配置信息
*
* @param id 可视化配置主键
* @return 结果
*/
@Override
public int deleteBladeVisualConfigById(Long id)
{
return bladeVisualConfigMapper.deleteBladeVisualConfigById(id);
}
}

View File

@ -0,0 +1,93 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BladeVisualMapMapper;
import com.ruoyi.system.domain.BladeVisualMap;
import com.ruoyi.system.service.IBladeVisualMapService;
/**
* 可视化地图配置Service业务层处理
*
* @author yangsj
* @date 2021-10-25
*/
@Service
public class BladeVisualMapServiceImpl implements IBladeVisualMapService
{
@Autowired
private BladeVisualMapMapper bladeVisualMapMapper;
/**
* 查询可视化地图配置
*
* @param id 可视化地图配置主键
* @return 可视化地图配置
*/
@Override
public BladeVisualMap selectBladeVisualMapById(Long id)
{
return bladeVisualMapMapper.selectBladeVisualMapById(id);
}
/**
* 查询可视化地图配置列表
*
* @param bladeVisualMap 可视化地图配置
* @return 可视化地图配置
*/
@Override
public List<BladeVisualMap> selectBladeVisualMapList(BladeVisualMap bladeVisualMap)
{
return bladeVisualMapMapper.selectBladeVisualMapList(bladeVisualMap);
}
/**
* 新增可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
@Override
public int insertBladeVisualMap(BladeVisualMap bladeVisualMap)
{
return bladeVisualMapMapper.insertBladeVisualMap(bladeVisualMap);
}
/**
* 修改可视化地图配置
*
* @param bladeVisualMap 可视化地图配置
* @return 结果
*/
@Override
public int updateBladeVisualMap(BladeVisualMap bladeVisualMap)
{
return bladeVisualMapMapper.updateBladeVisualMap(bladeVisualMap);
}
/**
* 批量删除可视化地图配置
*
* @param ids 需要删除的可视化地图配置主键
* @return 结果
*/
@Override
public int deleteBladeVisualMapByIds(Long[] ids)
{
return bladeVisualMapMapper.deleteBladeVisualMapByIds(ids);
}
/**
* 删除可视化地图配置信息
*
* @param id 可视化地图配置主键
* @return 结果
*/
@Override
public int deleteBladeVisualMapById(Long id)
{
return bladeVisualMapMapper.deleteBladeVisualMapById(id);
}
}

View File

@ -0,0 +1,172 @@
package com.ruoyi.system.service.impl;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.page.VisualRespEmbData;
import com.ruoyi.system.domain.BladeVisualConfig;
import com.ruoyi.system.domain.vo.BladeImageVo;
import com.ruoyi.system.domain.vo.BladeVisualVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BladeVisualMapper;
import com.ruoyi.system.domain.BladeVisual;
import com.ruoyi.system.service.IBladeVisualService;
import org.springframework.web.multipart.MultipartFile;
/**
* 可视化Service业务层处理
*
* @author yangsj
* @date 2021-10-25
*/
@Service
public class BladeVisualServiceImpl implements IBladeVisualService
{
@Autowired
private BladeVisualMapper bladeVisualMapper;
@Autowired
private BladeVisualConfigServiceImpl configService;
/**
* 查询可视化
*
* @param id 可视化主键
* @return 可视化
*/
@Override
public BladeVisualVo selectBladeVisualById(Long id)
{
BladeVisualVo bladeVisualVo = new BladeVisualVo();
BladeVisual bladeVisual = bladeVisualMapper.selectBladeVisualById(id);
BladeVisualConfig config = configService.selectBladeVisualConfigById(id);
bladeVisualVo.setVisual(bladeVisual);
bladeVisualVo.setConfig(config);
return bladeVisualVo;
}
/**
* 查询可视化列表
*
* @param bladeVisual 可视化
* @return 可视化
*/
@Override
public List<BladeVisual> selectBladeVisualList(BladeVisual bladeVisual)
{
return bladeVisualMapper.selectBladeVisualList(bladeVisual);
}
@Override
public List<BladeVisual> selectVisualListByCategory(Long category) {
return bladeVisualMapper.selectVisualByCategory(category);
}
@Value("${server.port}")
private int serverPort;
public String getUrl() {
InetAddress address = null;
try {
address = InetAddress.getLocalHost();
} catch ( UnknownHostException e) {
e.printStackTrace();
}
return "http://"+address.getHostAddress() +":"+this.serverPort;
}
@Value("${imageDir.bigScreen}")
private String screenPrefix;
@Override
public VisualRespEmbData uploadFile(MultipartFile file) {
// 保存到本地
String filePath = RuoYiConfig.getProfile() + screenPrefix;
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
String filename = file.getOriginalFilename();
String fullFileName = filePath + "/" + filename;
// System.out.println("image fullName"+fullFileName);
try {
FileOutputStream out = new FileOutputStream(fullFileName);
out.write(file.getBytes());
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
VisualRespEmbData resp = new VisualRespEmbData();
BladeImageVo imageVo = new BladeImageVo();
imageVo.setDomain(filePath);
String link = this.getUrl() + Constants.RESOURCE_PREFIX +screenPrefix +"/"+filename;
imageVo.setLink(link);
resp.setData(imageVo);
return resp;
}
/**
* 新增可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
@Override
public Long insertBladeVisual(BladeVisual bladeVisual)
{
bladeVisual.setId(System.currentTimeMillis());
bladeVisualMapper.insertBladeVisual(bladeVisual);
return bladeVisual.getId();
}
/**
* 修改可视化
*
* @param bladeVisual 可视化
* @return 结果
*/
@Override
public int updateBladeVisual(BladeVisual bladeVisual)
{
return bladeVisualMapper.updateBladeVisual(bladeVisual);
}
/**
* 批量删除可视化
*
* @param ids 需要删除的可视化主键
* @return 结果
*/
@Override
public int deleteBladeVisualByIds(Long[] ids)
{
return bladeVisualMapper.deleteBladeVisualByIds(ids);
}
/**
* 删除可视化信息
*
* @param id 可视化主键
* @return 结果
*/
@Override
public int deleteBladeVisualById(Long id)
{
return bladeVisualMapper.deleteBladeVisualById(id);
}
}

View File

@ -0,0 +1,277 @@
package com.ruoyi.system.service.impl;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.VisualImageMapper;
import com.ruoyi.system.domain.VisualImage;
import com.ruoyi.system.service.IVisualImageService;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
/**
* 图片管理管理上传的图片Service业务层处理
*
* @author yangsj
* @date 2021-10-28
*/
@Service
public class VisualImageServiceImpl implements IVisualImageService {
@Autowired
private VisualImageMapper visualImageMapper;
/**
* 查询图片管理管理上传的图片
*
* @param id 图片管理管理上传的图片主键
* @return 图片管理管理上传的图片
*/
@Override
public VisualImage selectVisualImageById(Long id) {
return visualImageMapper.selectVisualImageById(id);
}
/**
* 查询图片管理管理上传的图片列表
*
* @param visualImage 图片管理管理上传的图片
* @return 图片管理管理上传的图片
*/
@Override
public List<VisualImage> selectVisualImageList(VisualImage visualImage) {
return visualImageMapper.selectVisualImageList(visualImage);
}
/**
* 新增图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
@Override
public int insertVisualImage(VisualImage visualImage) {
visualImage.setCreateTime(DateUtils.getNowDate());
return visualImageMapper.insertVisualImage(visualImage);
}
/**
* 修改图片管理管理上传的图片
*
* @param visualImage 图片管理管理上传的图片
* @return 结果
*/
@Override
public int updateVisualImage(VisualImage visualImage) {
visualImage.setUpdateTime(DateUtils.getNowDate());
return visualImageMapper.updateVisualImage(visualImage);
}
/**
* 批量删除图片管理管理上传的图片
*
* @param ids 需要删除的图片管理管理上传的图片主键
* @return 结果
*/
@Override
public int deleteVisualImageByIds(Long[] ids) {
return visualImageMapper.deleteVisualImageByIds(ids);
}
/**
* 删除图片管理管理上传的图片信息
*
* @param id 图片管理管理上传的图片主键
* @return 结果
*/
@Override
public int deleteVisualImageById(Long id) {
return visualImageMapper.deleteVisualImageById(id);
}
@Value("${imageDir.visualImage}")
private String imageDir;
@Override
public int addImage(MultipartFile file, Integer heigth, Integer width) {
// 1.保存到图片本地
saveImageToLocal(file);
// 2.插入记录到数据库
return 0;
}
@Override
public String saveImageToLocal(MultipartFile file) {
String filePath = RuoYiConfig.getProfile() + imageDir;
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
String[] fileNameSplit = file.getOriginalFilename().split("\\.");
String fileType = fileNameSplit[fileNameSplit.length - 1];
String newFileName = UUID.fastUUID().toString(true) + "." + fileType;
String fullFileName = filePath + "/" + newFileName;
try {
FileOutputStream out = new FileOutputStream(fullFileName);
out.write(file.getBytes());
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return newFileName;
}
@Override
@Async
public void divideImage(VisualImage visualImage) {
String rootPath = RuoYiConfig.getProfile() + imageDir;
String newFileName = rootPath + "/" + visualImage.getNewName();
// 读入大图
File file = new File(newFileName);
FileInputStream fis;
try {
fis = new FileInputStream(file);
BufferedImage image = ImageIO.read(fis);
// 分割成4*4(16)个小图
int rows = visualImage.getHeight();
int cols = visualImage.getWidth();
int chunks = rows * cols;
// 计算每个小图的宽度和高度
int chunkWidth = image.getWidth() / cols;
int chunkHeight = image.getHeight() / rows;
// 新建文件夹存放子图
String[] split = visualImage.getNewName().split("\\.");
String outputDir = rootPath + "/" + split[0];
File targetFile = new File(outputDir);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
int count = 0;
BufferedImage imgs[] = new BufferedImage[chunks];
for (int x = 0; x < rows; x++) {
for (int y = 0; y < cols; y++) {
//设置小图的大小和类型
imgs[count] = new BufferedImage(chunkWidth, chunkHeight, image.getType());
//写入图像内容
Graphics2D gr = imgs[count].createGraphics();
gr.drawImage(image, 0, 0,
chunkWidth, chunkHeight,
chunkWidth * y, chunkHeight * x,
chunkWidth * y + chunkWidth,
chunkHeight * x + chunkHeight, null);
gr.dispose();
// 输出小图
String outFileName = outputDir + "/" + x + "_" + y + "." + split[split.length - 1];
ImageIO.write(imgs[count], split[split.length - 1], new File(outFileName));
count++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Value("${imageDir.width}")
private Integer thumbWidth;
@Value("${imageDir.height}")
private Integer thumbHeigth;
@Async
@Override
public void saveThumb(VisualImage visualImage) {
String rootPath = RuoYiConfig.getProfile() + imageDir;
String newFileName = rootPath + "/" + visualImage.getNewName();
// 读入大图
File file = new File(newFileName);
FileInputStream fis;
try {
fis = new FileInputStream(file);
BufferedImage image = ImageIO.read(fis);
// 新建文件夹存放子图
String[] split = visualImage.getNewName().split("\\.");
String outputDir = rootPath + "/" + split[0];
File targetFile = new File(outputDir);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
//设置小图的大小和类型
BufferedImage imgs = new BufferedImage(thumbWidth, thumbHeigth, image.getType());
//写入图像内容
Graphics2D gr = imgs.createGraphics();
gr.drawImage(image, 0, 0, thumbWidth, thumbHeigth, null);
gr.dispose();
// 输出小图
String outFileName = outputDir +"/thumb."+ split[split.length - 1];
ImageIO.write(imgs, split[split.length - 1], new File(outFileName));
} catch (Exception e) {
e.printStackTrace();
}
}
@Value("${server.port}")
private int serverPort;
@Value("${imageDir.visualImage}")
private String imagePrefix;
public String getUrl() {
InetAddress address = null;
try {
address = InetAddress.getLocalHost();
} catch ( UnknownHostException e) {
e.printStackTrace();
}
return "http://"+address.getHostAddress() +":"+this.serverPort;
}
@Override
public Map<String, String> getLink(String fileName) {
// todo 这里应该查找数据库或本地资源判断图片是否存在
HashMap<String, String> map = new HashMap<>();
String[] split = fileName.split("\\.");
if (split.length != 2) {
return null;
}
String rootDir = this.getUrl() + Constants.RESOURCE_PREFIX +imagePrefix +"/";
map.put("subRoot",rootDir + split[0] + "/");
map.put("original",rootDir+fileName);
map.put("thumb",rootDir+"thumb."+ split[1]);
return map;
}
}

View File

@ -0,0 +1,68 @@
<?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="com.ruoyi.system.mapper.BladeVisualCategoryMapper">
<resultMap type="BladeVisualCategory" id="BladeVisualCategoryResult">
<result property="id" column="id" />
<result property="categoryKey" column="category_key" />
<result property="categoryValue" column="category_value" />
<result property="isDeleted" column="is_deleted" />
</resultMap>
<sql id="selectBladeVisualCategoryVo">
select id, category_key, category_value, is_deleted from blade_visual_category
</sql>
<select id="selectBladeVisualCategoryList" parameterType="BladeVisualCategory" resultMap="BladeVisualCategoryResult">
<include refid="selectBladeVisualCategoryVo"/>
<where>
<if test="categoryKey != null and categoryKey != ''"> and category_key = #{categoryKey}</if>
<if test="categoryValue != null and categoryValue != ''"> and category_value = #{categoryValue}</if>
<if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
</where>
</select>
<select id="selectBladeVisualCategoryById" parameterType="Long" resultMap="BladeVisualCategoryResult">
<include refid="selectBladeVisualCategoryVo"/>
where id = #{id}
</select>
<insert id="insertBladeVisualCategory" parameterType="BladeVisualCategory">
insert into blade_visual_category
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="categoryKey != null">category_key,</if>
<if test="categoryValue != null">category_value,</if>
<if test="isDeleted != null">is_deleted,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="categoryKey != null">#{categoryKey},</if>
<if test="categoryValue != null">#{categoryValue},</if>
<if test="isDeleted != null">#{isDeleted},</if>
</trim>
</insert>
<update id="updateBladeVisualCategory" parameterType="BladeVisualCategory">
update blade_visual_category
<trim prefix="SET" suffixOverrides=",">
<if test="categoryKey != null">category_key = #{categoryKey},</if>
<if test="categoryValue != null">category_value = #{categoryValue},</if>
<if test="isDeleted != null">is_deleted = #{isDeleted},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBladeVisualCategoryById" parameterType="Long">
delete from blade_visual_category where id = #{id}
</delete>
<delete id="deleteBladeVisualCategoryByIds" parameterType="String">
delete from blade_visual_category where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,68 @@
<?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="com.ruoyi.system.mapper.BladeVisualConfigMapper">
<resultMap type="BladeVisualConfig" id="BladeVisualConfigResult">
<result property="id" column="id" />
<result property="visualId" column="visual_id" />
<result property="detail" column="detail" />
<result property="component" column="component" />
</resultMap>
<sql id="selectBladeVisualConfigVo">
select id, visual_id, detail, component from blade_visual_config
</sql>
<select id="selectBladeVisualConfigList" parameterType="BladeVisualConfig" resultMap="BladeVisualConfigResult">
<include refid="selectBladeVisualConfigVo"/>
<where>
<if test="visualId != null "> and visual_id = #{visualId}</if>
<if test="detail != null and detail != ''"> and detail = #{detail}</if>
<if test="component != null and component != ''"> and component = #{component}</if>
</where>
</select>
<select id="selectBladeVisualConfigById" parameterType="Long" resultMap="BladeVisualConfigResult">
<include refid="selectBladeVisualConfigVo"/>
where id = #{id}
</select>
<insert id="insertBladeVisualConfig" parameterType="BladeVisualConfig">
insert into blade_visual_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="visualId != null">visual_id,</if>
<if test="detail != null">detail,</if>
<if test="component != null">component,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="visualId != null">#{visualId},</if>
<if test="detail != null">#{detail},</if>
<if test="component != null">#{component},</if>
</trim>
</insert>
<update id="updateBladeVisualConfig" parameterType="BladeVisualConfig">
update blade_visual_config
<trim prefix="SET" suffixOverrides=",">
<if test="visualId != null">visual_id = #{visualId},</if>
<if test="detail != null">detail = #{detail},</if>
<if test="component != null">component = #{component},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBladeVisualConfigById" parameterType="Long">
delete from blade_visual_config where id = #{id}
</delete>
<delete id="deleteBladeVisualConfigByIds" parameterType="String">
delete from blade_visual_config where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,63 @@
<?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="com.ruoyi.system.mapper.BladeVisualMapMapper">
<resultMap type="BladeVisualMap" id="BladeVisualMapResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="data" column="data" />
</resultMap>
<sql id="selectBladeVisualMapVo">
select id, name, data from blade_visual_map
</sql>
<select id="selectBladeVisualMapList" parameterType="BladeVisualMap" resultMap="BladeVisualMapResult">
<include refid="selectBladeVisualMapVo"/>
<where>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="data != null and data != ''"> and data = #{data}</if>
</where>
</select>
<select id="selectBladeVisualMapById" parameterType="Long" resultMap="BladeVisualMapResult">
<include refid="selectBladeVisualMapVo"/>
where id = #{id}
</select>
<insert id="insertBladeVisualMap" parameterType="BladeVisualMap">
insert into blade_visual_map
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="name != null">name,</if>
<if test="data != null">data,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="name != null">#{name},</if>
<if test="data != null">#{data},</if>
</trim>
</insert>
<update id="updateBladeVisualMap" parameterType="BladeVisualMap">
update blade_visual_map
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="data != null">data = #{data},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBladeVisualMapById" parameterType="Long">
delete from blade_visual_map where id = #{id}
</delete>
<delete id="deleteBladeVisualMapByIds" parameterType="String">
delete from blade_visual_map where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,109 @@
<?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="com.ruoyi.system.mapper.BladeVisualMapper">
<resultMap type="BladeVisual" id="BladeVisualResult">
<result property="id" column="id" />
<result property="title" column="title" />
<result property="backgroundUrl" column="background_url" />
<result property="category" column="category" />
<result property="password" column="password" />
<result property="createDept" column="create_dept" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="status" column="status" />
<result property="isdeleted" column="isDeleted" />
</resultMap>
<sql id="selectBladeVisualVo">
select id, title, background_url, category, password, create_dept, create_by, create_time, update_by, update_time, status, isDeleted from blade_visual
</sql>
<select id="selectBladeVisualList" parameterType="BladeVisual" resultMap="BladeVisualResult">
<include refid="selectBladeVisualVo"/>
<where>
<if test="title != null and title != ''"> and title = #{title}</if>
<if test="backgroundUrl != null and backgroundUrl != ''"> and background_url = #{backgroundUrl}</if>
<if test="category != null "> and category = #{category}</if>
<if test="password != null and password != ''"> and password = #{password}</if>
<if test="createDept != null "> and create_dept = #{createDept}</if>
<if test="status != null "> and status = #{status}</if>
<if test="isdeleted != null "> and isDeleted = #{isdeleted}</if>
</where>
</select>
<select id="selectBladeVisualById" parameterType="Long" resultMap="BladeVisualResult">
<include refid="selectBladeVisualVo"/>
where id = #{id}
</select>
<select id="selectVisualByCategory" parameterType="Long" resultMap="BladeVisualResult">
<include refid="selectBladeVisualVo"/>
where category = #{category}
</select>
<insert id="insertBladeVisual" parameterType="BladeVisual">
insert into blade_visual
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="title != null">title,</if>
<if test="backgroundUrl != null">background_url,</if>
<if test="category != null">category,</if>
<if test="password != null">password,</if>
<if test="createDept != null">create_dept,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="status != null">status,</if>
<if test="isdeleted != null">isDeleted,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="title != null">#{title},</if>
<if test="backgroundUrl != null">#{backgroundUrl},</if>
<if test="category != null">#{category},</if>
<if test="password != null">#{password},</if>
<if test="createDept != null">#{createDept},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="status != null">#{status},</if>
<if test="isdeleted != null">#{isdeleted},</if>
</trim>
</insert>
<update id="updateBladeVisual" parameterType="BladeVisual">
update blade_visual
<trim prefix="SET" suffixOverrides=",">
<if test="title != null">title = #{title},</if>
<if test="backgroundUrl != null">background_url = #{backgroundUrl},</if>
<if test="category != null">category = #{category},</if>
<if test="password != null">password = #{password},</if>
<if test="createDept != null">create_dept = #{createDept},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="status != null">status = #{status},</if>
<if test="isdeleted != null">isDeleted = #{isdeleted},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBladeVisualById" parameterType="Long">
delete from blade_visual where id = #{id}
</delete>
<delete id="deleteBladeVisualByIds" parameterType="String">
delete from blade_visual where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,96 @@
<?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="com.ruoyi.system.mapper.VisualImageMapper">
<resultMap type="VisualImage" id="VisualImageResult">
<result property="id" column="id" />
<result property="originName" column="origin_name" />
<result property="newName" column="new_name" />
<result property="width" column="width" />
<result property="height" column="height" />
<result property="descri" column="descri" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectVisualImageVo">
select id, origin_name, new_name, width, height, descri, del_flag, create_by, create_time, update_by, update_time from visual_image
</sql>
<select id="selectVisualImageList" parameterType="VisualImage" resultMap="VisualImageResult">
<include refid="selectVisualImageVo"/>
<where>
<if test="originName != null and originName != ''"> and origin_name like concat('%', #{originName}, '%')</if>
<if test="newName != null and newName != ''"> and new_name like concat('%', #{newName}, '%')</if>
<if test="width != null "> and width = #{width}</if>
<if test="height != null "> and height = #{height}</if>
<if test="descri != null and descri != ''"> and descri = #{descri}</if>
</where>
</select>
<select id="selectVisualImageById" parameterType="Long" resultMap="VisualImageResult">
<include refid="selectVisualImageVo"/>
where id = #{id}
</select>
<insert id="insertVisualImage" parameterType="VisualImage" useGeneratedKeys="true" keyProperty="id">
insert into visual_image
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="originName != null">origin_name,</if>
<if test="newName != null">new_name,</if>
<if test="width != null">width,</if>
<if test="height != null">height,</if>
<if test="descri != null">descri,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="originName != null">#{originName},</if>
<if test="newName != null">#{newName},</if>
<if test="width != null">#{width},</if>
<if test="height != null">#{height},</if>
<if test="descri != null">#{descri},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateVisualImage" parameterType="VisualImage">
update visual_image
<trim prefix="SET" suffixOverrides=",">
<if test="originName != null">origin_name = #{originName},</if>
<if test="newName != null">new_name = #{newName},</if>
<if test="width != null">width = #{width},</if>
<if test="height != null">height = #{height},</if>
<if test="descri != null">descri = #{descri},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteVisualImageById" parameterType="Long">
delete from visual_image where id = #{id}
</delete>
<delete id="deleteVisualImageByIds" parameterType="String">
delete from visual_image where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -1,11 +1,13 @@
# 页面标题
VUE_APP_TITLE = 若依管理系统
# 开发环境配置
ENV = 'development'
# 若依管理系统/开发环境
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 页面标题
VUE_APP_TITLE = 若依管理系统
port = 8090
# 开发环境配置
ENV = 'development'
# 若依管理系统/开发环境
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@ -39,6 +39,7 @@
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.21.0",
"clipboard": "2.0.6",
"codemirror": "^5.63.3",
"core-js": "3.8.1",
"echarts": "4.9.0",
"element-ui": "2.15.6",

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

9
ruoyi-ui/public/cdn/avue/avue.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,169 @@
var theme_avue = {
"version": 1,
"themeName": "avue",
"theme": {
"seriesCnt": "4",
"backgroundColor": "rgba(0,0,0,0)",
"titleColor": "#516b91",
"subtitleColor": "#93b7e3",
"textColorShow": false,
"textColor": "#333",
"markTextColor": "#eee",
"color": [
"#83bff6",
"#23b7e5",
"#188df0",
"#564aa3",
"#a5e7f0",
"#cbb0e3"
],
"borderColor": "#ccc",
"borderWidth": 0,
"visualMapColor": [
"#83bff6",
"#23b7e5",
"#188df0",
"#564aa3"
],
"legendTextColor": "#999999",
"kColor": "#edafda",
"kColor0": "transparent",
"kBorderColor": "#d680bc",
"kBorderColor0": "#8fd3e8",
"kBorderWidth": "2",
"lineWidth": "2",
"symbolSize": "6",
"symbol": "emptyCircle",
"symbolBorderWidth": "2",
"lineSmooth": true,
"graphLineWidth": 1,
"graphLineColor": "#aaa",
"mapLabelColor": "#000000",
"mapLabelColorE": "rgb(81,107,145)",
"mapBorderColor": "#516b91",
"mapBorderColorE": "#516b91",
"mapBorderWidth": 0.5,
"mapBorderWidthE": 1,
"mapAreaColor": "#f3f3f3",
"mapAreaColorE": "rgba(165,231,240,1)",
"axes": [{
"type": "all",
"name": "通用坐标轴",
"axisLineShow": true,
"axisLineColor": "#cccccc",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#999999",
"splitLineShow": true,
"splitLineColor": [
"#eeeeee"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(80,36,204,0.05)",
"rgba(223,35,35,0.02)"
]
},
{
"type": "category",
"name": "类目坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": false,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "value",
"name": "数值坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "log",
"name": "对数坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "time",
"name": "时间坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
],
"axisSeperateSetting": true,
"toolboxColor": "#999999",
"toolboxEmpasisColor": "#666666",
"tooltipAxisColor": "#f9dbdb",
"tooltipAxisWidth": 1,
"timelineLineColor": "#8fd3e8",
"timelineLineWidth": 1,
"timelineItemColor": "#8fd3e8",
"timelineItemColorE": "#8fd3e8",
"timelineCheckColor": "#8fd3e8",
"timelineCheckBorderColor": "rgba(138,124,168,0.37)",
"timelineItemBorderWidth": 1,
"timelineControlColor": "#213dbc",
"timelineControlBorderColor": "#8fd3e8",
"timelineControlBorderWidth": 0.5,
"timelineLabelColor": "#8fd3e8",
"datazoomBackgroundColor": "rgba(0,0,0,0)",
"datazoomDataColor": "rgba(255,255,255,0.3)",
"datazoomFillColor": "rgba(167,183,204,0.4)",
"datazoomHandleColor": "#2472d9",
"datazoomHandleWidth": "100",
"datazoomLabelColor": "#333333"
}
}
window.echarts.registerTheme(theme_avue.themeName, theme_avue.theme)

View File

@ -0,0 +1,181 @@
var theme_macarons = {
"version": 1,
"themeName": "macarons",
"theme": {
"seriesCnt": "4",
"backgroundColor": "rgba(0,0,0,0)",
"titleColor": "#008acd",
"subtitleColor": "#aaaaaa",
"textColorShow": false,
"textColor": "#333",
"markTextColor": "#eeeeee",
"color": [
"#2ec7c9",
"#b6a2de",
"#5ab1ef",
"#ffb980",
"#d87a80",
"#8d98b3",
"#e5cf0d",
"#97b552",
"#95706d",
"#dc69aa",
"#07a2a4",
"#9a7fd1",
"#588dd5",
"#f5994e",
"#c05050",
"#59678c",
"#c9ab00",
"#7eb00a",
"#6f5553",
"#c14089"
],
"borderColor": "#ccc",
"borderWidth": 0,
"visualMapColor": [
"#5ab1ef",
"#e0ffff"
],
"legendTextColor": "#333333",
"kColor": "#d87a80",
"kColor0": "#2ec7c9",
"kBorderColor": "#d87a80",
"kBorderColor0": "#2ec7c9",
"kBorderWidth": 1,
"lineWidth": 2,
"symbolSize": 3,
"symbol": "emptyCircle",
"symbolBorderWidth": 1,
"lineSmooth": true,
"graphLineWidth": 1,
"graphLineColor": "#aaaaaa",
"mapLabelColor": "#d87a80",
"mapLabelColorE": "rgb(100,0,0)",
"mapBorderColor": "#eeeeee",
"mapBorderColorE": "#444444",
"mapBorderWidth": 0.5,
"mapBorderWidthE": 1,
"mapAreaColor": "#dddddd",
"mapAreaColorE": "rgba(254,153,78,1)",
"axes": [{
"type": "all",
"name": "通用坐标轴",
"axisLineShow": true,
"axisLineColor": "#eeeeee",
"axisTickShow": true,
"axisTickColor": "#eeeeee",
"axisLabelShow": true,
"axisLabelColor": "#eeeeee",
"splitLineShow": true,
"splitLineColor": [
"#aaaaaa"
],
"splitAreaShow": false,
"splitAreaColor": [
"#eeeeee"
]
},
{
"type": "category",
"name": "类目坐标轴",
"axisLineShow": true,
"axisLineColor": "#008acd",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": false,
"splitLineColor": [
"#eee"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "value",
"name": "数值坐标轴",
"axisLineShow": true,
"axisLineColor": "#008acd",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#eee"
],
"splitAreaShow": true,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "log",
"name": "对数坐标轴",
"axisLineShow": true,
"axisLineColor": "#008acd",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#eee"
],
"splitAreaShow": true,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "time",
"name": "时间坐标轴",
"axisLineShow": true,
"axisLineColor": "#008acd",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#eee"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
],
"axisSeperateSetting": true,
"toolboxColor": "#2ec7c9",
"toolboxEmpasisColor": "#18a4a6",
"tooltipAxisColor": "#008acd",
"tooltipAxisWidth": "1",
"timelineLineColor": "#008acd",
"timelineLineWidth": 1,
"timelineItemColor": "#008acd",
"timelineItemColorE": "#a9334c",
"timelineCheckColor": "#2ec7c9",
"timelineCheckBorderColor": "rgba(46,199,201,0.4)",
"timelineItemBorderWidth": 1,
"timelineControlColor": "#008acd",
"timelineControlBorderColor": "#008acd",
"timelineControlBorderWidth": 0.5,
"timelineLabelColor": "#008acd",
"datazoomBackgroundColor": "rgba(47,69,84,0)",
"datazoomDataColor": "rgba(239,239,255,1)",
"datazoomFillColor": "rgba(182,162,222,0.2)",
"datazoomHandleColor": "#008acd",
"datazoomHandleWidth": "100",
"datazoomLabelColor": "#333333"
}
}
window.echarts.registerTheme(theme_macarons.themeName, theme_macarons.theme)

View File

@ -0,0 +1,168 @@
var theme_wonderland = {
"version": 1,
"themeName": "wonderland",
"theme": {
"seriesCnt": "3",
"backgroundColor": "rgba(255,255,255,0)",
"titleColor": "#666666",
"subtitleColor": "#999999",
"textColorShow": false,
"textColor": "#333",
"markTextColor": "#ffffff",
"color": [
"#4ea397",
"#22c3aa",
"#7bd9a5",
"#d0648a",
"#f58db2",
"#f2b3c9"
],
"borderColor": "#ccc",
"borderWidth": 0,
"visualMapColor": [
"#d0648a",
"#22c3aa",
"#adfff1"
],
"legendTextColor": "#999999",
"kColor": "#d0648a",
"kColor0": "transparent",
"kBorderColor": "#d0648a",
"kBorderColor0": "#22c3aa",
"kBorderWidth": "1",
"lineWidth": "3",
"symbolSize": "8",
"symbol": "emptyCircle",
"symbolBorderWidth": "2",
"lineSmooth": false,
"graphLineWidth": "1",
"graphLineColor": "#cccccc",
"mapLabelColor": "#28544e",
"mapLabelColorE": "rgb(52,158,142)",
"mapBorderColor": "#999999",
"mapBorderColorE": "#22c3aa",
"mapBorderWidth": 0.5,
"mapBorderWidthE": 1,
"mapAreaColor": "#eeeeee",
"mapAreaColorE": "rgba(34,195,170,0.25)",
"axes": [{
"type": "all",
"name": "通用坐标轴",
"axisLineShow": true,
"axisLineColor": "#cccccc",
"axisTickShow": false,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#999999",
"splitLineShow": true,
"splitLineColor": [
"#eeeeee"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.05)",
"rgba(200,200,200,0.02)"
]
},
{
"type": "category",
"name": "类目坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": false,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "value",
"name": "数值坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "log",
"name": "对数坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
},
{
"type": "time",
"name": "时间坐标轴",
"axisLineShow": true,
"axisLineColor": "#333",
"axisTickShow": true,
"axisTickColor": "#333",
"axisLabelShow": true,
"axisLabelColor": "#333",
"splitLineShow": true,
"splitLineColor": [
"#ccc"
],
"splitAreaShow": false,
"splitAreaColor": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
],
"axisSeperateSetting": false,
"toolboxColor": "#999999",
"toolboxEmpasisColor": "#666666",
"tooltipAxisColor": "#cccccc",
"tooltipAxisWidth": 1,
"timelineLineColor": "#4ea397",
"timelineLineWidth": 1,
"timelineItemColor": "#4ea397",
"timelineItemColorE": "#4ea397",
"timelineCheckColor": "#4ea397",
"timelineCheckBorderColor": "rgba(60,235,210,0.3)",
"timelineItemBorderWidth": 1,
"timelineControlColor": "#4ea397",
"timelineControlBorderColor": "#4ea397",
"timelineControlBorderWidth": 0.5,
"timelineLabelColor": "#4ea397",
"datazoomBackgroundColor": "rgba(255,255,255,0)",
"datazoomDataColor": "rgba(222,222,222,1)",
"datazoomFillColor": "rgba(114,230,212,0.25)",
"datazoomHandleColor": "#cccccc",
"datazoomHandleWidth": "100",
"datazoomLabelColor": "#999999"
}
}
window.echarts.registerTheme(theme_wonderland.themeName, theme_wonderland.theme)

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Some files were not shown because too many files have changed in this diff Show More