Authored by zhichao

Merge branch 'master-500-dev' of http://192.168.1.136:82/monitor_v3/anji-plus-re…

…port into dev-500-lzc
Showing 47 changed files with 3860 additions and 146 deletions

Too many changes to show.

To preserve performance only 47 of 47+ files are displayed.

package com.anjiplus.template.gaea.business.base;
import com.anji.plus.gaea.bean.ResponseBean;
import com.anjiplus.template.gaea.business.config.SystemConfig;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Wang
* @description 描述
* @create 2022-04-13 11:43
*/
@RestController
public class ConfigController {
private final SystemConfig systemConfig;
public ConfigController(SystemConfig systemConfig) {
this.systemConfig = systemConfig;
}
@GetMapping("getConfig")
public ResponseBean getConfig() {
return ResponseBean.builder().data(systemConfig).build();
}
}
... ...
package com.anjiplus.template.gaea.business.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "hg.config")
@Data
public class SystemConfig {
// AJ服务地址
private String serverAddr;
// 监控网关地址
private String monitorGateWay;
@Override
public String toString() {
return "配置信息: {" + "服务地址 = '" + serverAddr + '\'' + ", 监控网关地址 = '" + monitorGateWay + '\'' + '}';
}
}
... ...
package com.anjiplus.template.gaea.business.modules.dashboard.controller;
import com.anji.plus.gaea.annotation.Permission;
import com.anji.plus.gaea.annotation.log.GaeaAuditLog;
import com.anji.plus.gaea.bean.ResponseBean;
import com.anjiplus.template.gaea.business.modules.dashboard.service.ReportDashboardService;
import com.anjiplus.template.gaea.business.modules.dashboard.controller.dto.ChartDto;
import com.anjiplus.template.gaea.business.modules.dashboard.controller.dto.ReportDashboardObjectDto;
import com.anjiplus.template.gaea.business.modules.dashboard.service.ReportDashboardService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
... ... @@ -17,11 +17,12 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @desc 大屏设计 controller
* @website https://gitee.com/anji-plus/gaea
* @author Raod
* @date 2021-04-12 14:52:21.761
**/
* @author Raod
* @desc 大屏设计 controller
* @website https://gitee.com/anji-plus/gaea
* @date 2021-04-12 14:52:21.761
**/
@Slf4j
@RestController
@Api(tags = "大屏设计管理")
@Permission(code = "bigScreenManage", name = "大屏报表")
... ... @@ -33,6 +34,7 @@ public class ReportDashboardController {
/**
* 预览、查询大屏详情
*
* @param reportCode
* @return
*/
... ... @@ -44,6 +46,7 @@ public class ReportDashboardController {
/**
* 保存大屏设计
*
* @param dto
* @return
*/
... ... @@ -58,31 +61,36 @@ public class ReportDashboardController {
/**
* 获取去单个图层数据
*
* @param dto
* @return
*/
@PostMapping("/getData")
@Permission(code = "view", name = "查看大屏")
public ResponseBean getData(@RequestBody ChartDto dto) {
log.info(" ******************************************************* /n******************************************************* /n");
log.info("请求参数:{}", dto);
log.info(" ******************************************************* /n******************************************************* /n");
return ResponseBean.builder().data(reportDashboardService.getChartData(dto)).build();
}
/**
* 导出大屏
*
* @param reportCode
* @return
*/
@GetMapping("/export")
@Permission(code = "export", name = "导出大屏")
public ResponseEntity<byte[]> exportDashboard(HttpServletRequest request, HttpServletResponse response,
@RequestParam("reportCode") String reportCode, @RequestParam(value = "showDataSet",required = false, defaultValue = "1") Integer showDataSet) {
public ResponseEntity<byte[]> exportDashboard(HttpServletRequest request, HttpServletResponse response, @RequestParam("reportCode") String reportCode, @RequestParam(value = "showDataSet", required = false, defaultValue = "1") Integer showDataSet) {
return reportDashboardService.exportDashboard(request, response, reportCode, showDataSet);
}
/**
* 导入大屏
* @param file 导入的zip文件
*
* @param file 导入的zip文件
* @param reportCode
* @return
*/
... ...
package com.anjiplus.template.gaea.business.modules.dashboard.service.impl;
import com.alibaba.fastjson.JSONObject;
... ... @@ -101,11 +100,7 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
}
GaeaBeanUtils.copyAndFormatter(reportDashboard, reportDashboardDto);
List<ReportDashboardWidget> list = reportDashboardWidgetService.list(
new QueryWrapper<ReportDashboardWidget>().lambda()
.eq(ReportDashboardWidget::getReportCode, reportCode)
.orderByAsc(ReportDashboardWidget::getSort)
);
List<ReportDashboardWidget> list = reportDashboardWidgetService.list(new QueryWrapper<ReportDashboardWidget>().lambda().eq(ReportDashboardWidget::getReportCode, reportCode).orderByAsc(ReportDashboardWidget::getSort));
List<ReportDashboardWidgetDto> reportDashboardWidgetDtoList = new ArrayList<>();
list.forEach(reportDashboardWidget -> {
ReportDashboardWidgetDto reportDashboardWidgetDto = new ReportDashboardWidgetDto();
... ... @@ -155,8 +150,7 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
}
//删除reportDashboardWidget
reportDashboardWidgetService.delete(new QueryWrapper<ReportDashboardWidget>()
.lambda().eq(ReportDashboardWidget::getReportCode, reportCode));
reportDashboardWidgetService.delete(new QueryWrapper<ReportDashboardWidget>().lambda().eq(ReportDashboardWidget::getReportCode, reportCode));
List<ReportDashboardWidgetDto> widgets = dto.getWidgets();
// List<ReportDashboardWidget> reportDashboardWidgetList = new ArrayList<>();
... ... @@ -191,6 +185,9 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
DataSetDto setDto = new DataSetDto();
setDto.setSetCode(dto.getSetCode());
setDto.setContextData(dto.getContextData());
log.info("请求数据参数:{}", setDto);
OriginalDataDto result = dataSetService.getData(setDto);
List<JSONObject> data = result.getData();
//处理时间轴
... ... @@ -224,12 +221,10 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
//将涉及到的图片保存下来(1.背景图,2.组件为图片的)
String backgroundImage = detail.getDashboard().getBackgroundImage();
zipLoadImage(backgroundImage, path);
detail.getWidgets().stream()
.filter(reportDashboardWidgetDto -> "widget-image".equals(reportDashboardWidgetDto.getType()))
.forEach(reportDashboardWidgetDto -> {
String imageAddress = reportDashboardWidgetDto.getValue().getSetup().getString("imageAdress");
zipLoadImage(imageAddress, path);
});
detail.getWidgets().stream().filter(reportDashboardWidgetDto -> "widget-image".equals(reportDashboardWidgetDto.getType())).forEach(reportDashboardWidgetDto -> {
String imageAddress = reportDashboardWidgetDto.getValue().getSetup().getString("imageAdress");
zipLoadImage(imageAddress, path);
});
//showDataSet == 0 代表不包含数据集
if (0 == showDataSet) {
... ... @@ -332,14 +327,12 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
//将涉及到的图片路径替换(1.背景图,2.组件为图片的)
String backgroundImage = detail.getDashboard().getBackgroundImage();
detail.getDashboard().setBackgroundImage(replaceUrl(backgroundImage, fileMap));
detail.getWidgets().stream()
.filter(reportDashboardWidgetDto -> "widget-image".equals(reportDashboardWidgetDto.getType()))
.forEach(reportDashboardWidgetDto -> {
String imageAddress = reportDashboardWidgetDto.getValue().getSetup().getString("imageAdress");
String address = replaceUrl(imageAddress, fileMap);
reportDashboardWidgetDto.getValue().getSetup().put("imageAdress", address);
reportDashboardWidgetDto.getOptions().getJSONArray("setup").getJSONObject(4).put("value", address);
});
detail.getWidgets().stream().filter(reportDashboardWidgetDto -> "widget-image".equals(reportDashboardWidgetDto.getType())).forEach(reportDashboardWidgetDto -> {
String imageAddress = reportDashboardWidgetDto.getValue().getSetup().getString("imageAdress");
String address = replaceUrl(imageAddress, fileMap);
reportDashboardWidgetDto.getValue().getSetup().put("imageAdress", address);
reportDashboardWidgetDto.getOptions().getJSONArray("setup").getJSONObject(4).put("value", address);
});
//将新的大屏编码赋值
detail.setReportCode(reportCode);
... ... @@ -365,6 +358,7 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
/**
* 将大屏涉及到的图片存入指定文件夹
*
* @param imageAddress
* @param path
*/
... ...
package com.anjiplus.template.gaea.business.modules.dataset.service.impl;
import cn.hutool.json.JSONUtil;
... ... @@ -42,8 +41,8 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
* @desc DataSet 数据集服务实现
* @author Raod
* @desc DataSet 数据集服务实现
* @date 2021-03-18 12:11:31.150755900
**/
@Service
... ... @@ -99,11 +98,7 @@ public class DataSetServiceImpl implements DataSetService {
public DataSetDto getDetailSet(DataSetDto dto, String setCode) {
//查询参数
List<DataSetParam> dataSetParamList = dataSetParamService.list(
new QueryWrapper<DataSetParam>()
.lambda()
.eq(DataSetParam::getSetCode, setCode)
);
List<DataSetParam> dataSetParamList = dataSetParamService.list(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
List<DataSetParamDto> dataSetParamDtoList = new ArrayList<>();
dataSetParamList.forEach(dataSetParam -> {
DataSetParamDto dataSetParamDto = new DataSetParamDto();
... ... @@ -114,12 +109,7 @@ public class DataSetServiceImpl implements DataSetService {
//数据转换
List<DataSetTransform> dataSetTransformList = dataSetTransformService.list(
new QueryWrapper<DataSetTransform>()
.lambda()
.eq(DataSetTransform::getSetCode, setCode)
.orderByAsc(DataSetTransform::getOrderNum)
);
List<DataSetTransform> dataSetTransformList = dataSetTransformService.list(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode).orderByAsc(DataSetTransform::getOrderNum));
List<DataSetTransformDto> dataSetTransformDtoList = new ArrayList<>();
dataSetTransformList.forEach(dataSetTransform -> {
DataSetTransformDto dataSetTransformDto = new DataSetTransformDto();
... ... @@ -134,22 +124,22 @@ public class DataSetServiceImpl implements DataSetService {
boolean isObj = JSONUtil.isJsonObj(caseResult);
JSONArray jsonArray = null;
JSONObject jsonObject = null;
if(isObj){
if (isObj) {
JSONObject result = JSONObject.parseObject(caseResult);
Object data = result.get("data");
if (data instanceof JSONObject) {
jsonObject = (JSONObject)data;
jsonObject = (JSONObject) data;
} else {
jsonArray = jsonObject.getJSONArray("data");
jsonObject = jsonArray.getJSONObject(0);
}
} else {
jsonArray = JSONArray.parseArray(caseResult);
jsonObject = jsonArray.getJSONObject(0);
jsonArray = JSONArray.parseArray(caseResult);
jsonObject = jsonArray.getJSONObject(0);
}
dto.setSetParamList(jsonObject.keySet());
} catch (Exception e) {
log.error("error",e);
log.error("error", e);
}
}
return dto;
... ... @@ -215,18 +205,10 @@ public class DataSetServiceImpl implements DataSetService {
deleteById(id);
//2.删除查询参数
dataSetParamService.delete(
new QueryWrapper<DataSetParam>()
.lambda()
.eq(DataSetParam::getSetCode, setCode)
);
dataSetParamService.delete(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
//3.删除数据转换
dataSetTransformService.delete(
new QueryWrapper<DataSetTransform>()
.lambda()
.eq(DataSetTransform::getSetCode, setCode)
);
dataSetTransformService.delete(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode));
}
/**
... ... @@ -242,44 +224,58 @@ public class DataSetServiceImpl implements DataSetService {
String setCode = dto.getSetCode();
//1.获取数据集、参数替换、数据转换
DataSetDto dataSetDto = detailSet(setCode);
log.info("数据集详情:{}", dataSetDto);
String dynSentence = dataSetDto.getDynSentence();
//2.获取数据源
DataSource dataSource;
if (StringUtils.isNotBlank(dataSetDto.getSetType())
&& dataSetDto.getSetType().equals(SetTypeEnum.HTTP.getCodeValue())) {
if (StringUtils.isNotBlank(dataSetDto.getSetType()) && dataSetDto.getSetType().equals(SetTypeEnum.HTTP.getCodeValue())) {
//http不需要数据源,兼容已有的逻辑,将http所需要的数据塞进DataSource
dataSource = new DataSource();
dataSource.setSourceConfig(dynSentence);
dataSource.setSourceType(JdbcConstants.HTTP);
String body = JSONObject.parseObject(dynSentence).getString("body");
JSONObject jsonObject = JSONObject.parseObject(dynSentence);
String body = jsonObject.getString("body");
if (StringUtils.isNotBlank(body)) {
dynSentence = body;
}else {
// 替换动态参数,body中的内容与传入的参数比较,有相同的key则替换
Map<String, Object> contextData = dto.getContextData();
if (contextData != null && !contextData.isEmpty()) {
JSONObject bodyObj = jsonObject.getJSONObject("body");
bodyObj.forEach((k, v) -> {
Object o = contextData.get(k);
if (o != null) {
bodyObj.put(k, o);
}
});
dynSentence = bodyObj.toJSONString();
} else{
dynSentence = body;
}
} else {
dynSentence = "{}";
}
}else {
dataSource = dataSourceService.selectOne("source_code", dataSetDto.getSourceCode());
} else {
dataSource = dataSourceService.selectOne("source_code", dataSetDto.getSourceCode());
}
log.info("数据源详情:{}", dataSource);
//3.参数替换
//3.1参数校验
log.debug("参数校验替换前:{}", dto.getContextData());
// log.info("参数校验替换前:{}", dto.getContextData());
boolean verification = dataSetParamService.verification(dataSetDto.getDataSetParamDtoList(), dto.getContextData());
if (!verification) {
throw BusinessExceptionBuilder.build(ResponseCode.RULE_FIELDS_CHECK_ERROR);
}
dynSentence = dataSetParamService.transform(dto.getContextData(), dynSentence);
log.debug("参数校验替换后:{}", dto.getContextData());
// log.info("参数校验替换后:{}", dynSentence);
//4.获取数据
DataSourceDto dataSourceDto = new DataSourceDto();
BeanUtils.copyProperties(dataSource, dataSourceDto);
dataSourceDto.setDynSentence(dynSentence);
dataSourceDto.setContextData(dto.getContextData());
//获取total,判断contextData中是否传入分页参数
if (null != dto.getContextData()
&& dto.getContextData().containsKey("pageNumber")
&& dto.getContextData().containsKey("pageSize")) {
if (null != dto.getContextData() && dto.getContextData().containsKey("pageNumber") && dto.getContextData().containsKey("pageSize")) {
long total = dataSourceService.total(dataSourceDto, dto);
originalDataDto.setTotal(total);
}
... ... @@ -310,12 +306,12 @@ public class DataSetServiceImpl implements DataSetService {
String body = JSONObject.parseObject(dynSentence).getString("body");
if (StringUtils.isNotBlank(body)) {
dynSentence = body;
}else {
} else {
dynSentence = "{}";
}
}else {
dataSource = dataSourceService.selectOne("source_code", sourceCode);
} else {
dataSource = dataSourceService.selectOne("source_code", sourceCode);
}
//3.参数替换
... ... @@ -356,18 +352,13 @@ public class DataSetServiceImpl implements DataSetService {
@Override
public List<DataSet> queryAllDataSet() {
LambdaQueryWrapper<DataSet> wrapper = Wrappers.lambdaQuery();
wrapper.select(DataSet::getSetCode, DataSet::getSetName, DataSet::getSetDesc, DataSet::getId)
.eq(DataSet::getEnableFlag, Enabled.YES.getValue());
wrapper.select(DataSet::getSetCode, DataSet::getSetName, DataSet::getSetDesc, DataSet::getId).eq(DataSet::getEnableFlag, Enabled.YES.getValue());
wrapper.orderByDesc(DataSet::getUpdateTime);
return dataSetMapper.selectList(wrapper);
}
public void dataSetParamBatch(List<DataSetParamDto> dataSetParamDtoList,String setCode){
dataSetParamService.delete(
new QueryWrapper<DataSetParam>()
.lambda()
.eq(DataSetParam::getSetCode, setCode)
);
public void dataSetParamBatch(List<DataSetParamDto> dataSetParamDtoList, String setCode) {
dataSetParamService.delete(new QueryWrapper<DataSetParam>().lambda().eq(DataSetParam::getSetCode, setCode));
if (null == dataSetParamDtoList || dataSetParamDtoList.size() <= 0) {
return;
}
... ... @@ -384,12 +375,8 @@ public class DataSetServiceImpl implements DataSetService {
}
public void dataSetTransformBatch(List<DataSetTransformDto> dataSetTransformDtoList,String setCode){
dataSetTransformService.delete(
new QueryWrapper<DataSetTransform>()
.lambda()
.eq(DataSetTransform::getSetCode, setCode)
);
public void dataSetTransformBatch(List<DataSetTransformDto> dataSetTransformDtoList, String setCode) {
dataSetTransformService.delete(new QueryWrapper<DataSetTransform>().lambda().eq(DataSetTransform::getSetCode, setCode));
if (null == dataSetTransformDtoList || dataSetTransformDtoList.size() <= 0) {
return;
}
... ... @@ -408,10 +395,11 @@ public class DataSetServiceImpl implements DataSetService {
/**
* dataSetParamDtoList转map
*
* @param dataSetParamDtoList
* @return
*/
public Map<String, Object> setContextData(List<DataSetParamDto> dataSetParamDtoList){
public Map<String, Object> setContextData(List<DataSetParamDto> dataSetParamDtoList) {
Map<String, Object> map = new HashMap<>();
if (null != dataSetParamDtoList && dataSetParamDtoList.size() > 0) {
dataSetParamDtoList.forEach(dataSetParamDto -> map.put(dataSetParamDto.getParamName(), dataSetParamDto.getSampleItem()));
... ...
... ... @@ -323,6 +323,7 @@ public class DataSourceServiceImpl implements DataSourceService {
ResponseEntity<Object> exchange;
List<JSONObject> result = new ArrayList<>();
try {
log.info("== 发送请求:\n\t\t apiUrl:{}\n\t\t httpMethod:{}\n\t\t entity:{}\n\t\t ",apiUrl, httpMethod, dto.getDynSentence());
exchange = restTemplate.exchange(apiUrl, httpMethod, entity, Object.class);
} catch (HttpClientErrorException error) {
int rawStatusCode = error.getRawStatusCode();
... ...
package com.anjiplus.template.gaea.business.runner;
import com.anjiplus.template.gaea.business.config.SystemConfig;
import com.anjiplus.template.gaea.business.modules.accessauthority.service.AccessAuthorityService;
import com.anjiplus.template.gaea.business.modules.dict.service.GaeaDictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
... ... @@ -11,6 +13,7 @@ import org.springframework.boot.ApplicationRunner;
* @author WongBin <abc13579d@163.com>
* @date 2019-02-17 08:50:10.009
**/
@Slf4j
public class ApplicationInitRunner implements ApplicationRunner {
@Autowired
... ... @@ -19,6 +22,9 @@ public class ApplicationInitRunner implements ApplicationRunner {
@Autowired
private AccessAuthorityService accessAuthorityService;
@Autowired
private SystemConfig systemConfig;
@Override
public void run(ApplicationArguments args) throws Exception {
... ... @@ -27,5 +33,9 @@ public class ApplicationInitRunner implements ApplicationRunner {
//2. 建立url权限拦截体系
accessAuthorityService.scanGaeaSecurityAuthorities();
// 打印配置信息:
log.info(systemConfig.toString());
}
}
... ...
... ... @@ -9,3 +9,7 @@ customer:
file:
dist-path: D:\Workspace\AJ-Report\report-core\upload
downloadPath: http://127.0.0.1:9095/file/download
hg:
config:
server-addr: http://127.0.0.1:9095
monitor-gate-way: http://192.168.0.75:8080
... ...
... ... @@ -75,7 +75,7 @@ customer:
downloadPath: http://127.0.0.1:9095/file/download
# 跳过token验证和权限验证的url清单
skip-authenticate-urls: /gaeaDict/all, /login, /static, /file/download/, /index.html, /favicon.ico, /reportShare/detailByCode
skip-authenticate-urls: /gaeaDict/all, /login, /static, /file/download/, /index.html, /favicon.ico, /reportShare/detailByCode,/getConfig
user:
##新增用户默认密码
default:
... ...
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"gz"',
BASE_API: '"http://89.12.88.128:9095"',
MONITOR_GATEWAY: '"http://89.12.88.128:8080"'
// BASE_API: '"http://192.168.1.50:9095"',
// MONITOR_GATEWAY: '"http://192.168.1.50:8080"'
})
... ...
... ... @@ -4,10 +4,15 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
BASE_API: '"http://192.168.0.59:9095"',
MONITOR_GATEWAY: '"http://192.168.0.59:8080"'
/* BASE_API: '"http://192.168.0.75:9095"',
BASE_API: '"https://69.12.93.116:8089"',
MONITOR_GATEWAY: '"https://69.12.93.116:8080"'
// BASE_API: '"http://127.0.0.1:8089"',
// MONITOR_GATEWAY: '"http://127.0.0.1:8080"'
/*BASE_API: '"http://192.168.0.75:9095"',
MONITOR_GATEWAY: '"http://192.168.0.75:8080"'*/
/* BASE_API: '"https://192.168.0.248:8089"',
MONITOR_GATEWAY: '"https://192.168.0.248:8080"'*/
/*BASE_API: '"http://192.168.1.52:8089"',
MONITOR_GATEWAY: '"http://192.168.1.52:8080"'*/
... ...
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"dev151"',
BASE_API: '"http://192.168.0.75:9095"',
MONITOR_GATEWAY: '"http://192.168.0.75:8080"'
// BASE_API: '"http://192.168.1.50:9095"',
// MONITOR_GATEWAY: '"http://192.168.1.50:8080"'
})
... ...
'use strict'
module.exports = {
NODE_ENV: '"dev50"',
// 青海现场环境配置
BASE_API: '"http://192.168.1.50:9095"',
MONITOR_GATEWAY: '"http://192.168.0.50:8080"'
}
... ...
... ... @@ -4,5 +4,6 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"testing"',
BASE_API: '"./"'
BASE_API: '"./"',
MONITOR_GATEWAY: '"./"'
})
... ...
... ... @@ -8,6 +8,9 @@
"start": "npm run dev",
"build": "cross-env NODE_ENV=production node build/build.js",
"build:dev": "cross-env NODE_ENV=development node build/build.js",
"build:dev50": "cross-env NODE_ENV=dev50 node build/build.js",
"build:dev151": "cross-env NODE_ENV=dev151 node build/build.js",
"build:devgz": "cross-env NODE_ENV=gz node build/build.js",
"build:test": "cross-env NODE_ENV=testing node build/build.js",
"build:prod": "cross-env NODE_ENV=production node build/build.js"
},
... ...

1.27 KB | W: | H:

1.32 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

1.31 KB | W: | H:

1.32 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

1.3 KB | W: | H:

1.33 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
... ... @@ -101,3 +101,15 @@ input:-webkit-autofill {
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.tree-div .el-tree-node.is-current>.el-tree-node__content{
color:#fff;
background-color: #1e9fff;
}
.tree-div .el-tree-node__content:hover{
color:#fff;
background-color: #1e9fff;
}
.el-tabs__item.is-active{
background-color: #1e9fff;
color: #ffffff;
}
... ...
... ... @@ -23,6 +23,11 @@ import 'echarts/lib/component/tooltip'
// import 'echarts-gl'
Vue.component('v-chart', ECharts)
import echartsbd from 'echarts';
Vue.prototype.$echarts=echartsbd;
Vue.use(echartsbd)
// anji component
import anjiCrud from '@/components/AnjiPlus/anji-crud/anji-crud'
import anjiSelect from '@/components/AnjiPlus/anji-select'
... ...
... ... @@ -49,15 +49,16 @@ export default {
}
return ''
},
isBlank (val) {
if (typeof val === 'undefined') {
return true
}
if (val == null || val === '') {
return true
}
return false
},
// 重复方法
// isBlank (val) {
// if (typeof val === 'undefined') {
// return true
// }
// if (val == null || val === '') {
// return true
// }
// return false
// },
// 封装定制删除数组中的值
contains (a, obj) {
var i = a.length
... ... @@ -80,7 +81,7 @@ export default {
)
},
/**
*
*
*/
resetForm (data) {
let formKeys = Object.keys(data)
... ...
import {mapGetters} from "vuex"
export default {
data() {
return {
options: {},
optionsSetUp: {},
optionsPosition: {},
optionsData: {},
id: (new Date()).getTime(),
customState: {},
// value 历史变更内容,页面加载发送多次重复提交信息
valueChangeArr:[]
}
},
props: {
config: Object,
value: Object,
ispreview: Boolean
},
watch: {
/**
* 监听组件参数
*/
value: {
handler(val) {
let that = this;
if(that.valueChangeArr.indexOf(val) != -1){
return;
}
that.options = val;
that.optionsSetUp = val.setup;
that.optionsPosition = val.position;
that.valueChangeArr.push(val);
that.reloadPage();
},
deep: true
},
/**
* 监听组件状态数据
*/
getLastUpdateEvent: {
handler(val) {
if(!val){
return;
}
let that = this;
let key = val.split('###')[0];
let obj = that.getCustomState[key];
let eventIds = that.subEvent();
if(eventIds && typeof [] === 'object' && eventIds.length > 0){
if(eventIds.indexOf(key) != -1){
that.getCustomEventData(key,obj);
}
}
},
deep: true
}
},
mounted() {
let that = this;
that.options = that.value;
that.optionsSetUp = that.value.setup;
that.optionsPosition = that.value.position;
// 挂在完 执行页面初始化函数
that.pageInit();
},
computed: {
...mapGetters(['getCustomState','getLastUpdateEventId']),
/**
* 最后更新的事件id
* @returns {number}
*/
getLastUpdateEvent(){
return this.getLastUpdateEventId
},
// 计算样式
getStyle() {
let that = this;
// 位置信息
const position = this.optionsPosition;
let css = {};
let baseCss = {}
if (position && Object.keys(position).length > 0) {
baseCss = {
position: this.ispreview ? "absolute" : "static",
width: position.width + "px",
height: position.height + "px",
left: position.left + "px",
top: position.top + "px"
};
}
// 属性信息
const setup = that.optionsSetUp;
const config = that.config;
const items = [];
if (config && config.setup) {
let setupArr = config.setup;
setupArr.forEach(function (v) {
if (Array.isArray(v)) {
v.forEach(function (v1) {
if (v1.list) {
v1.list.forEach(function (v2) {
items.push(v2);
})
}
})
} else {
items.push(v);
}
});
}
for (const key in setup) {
let arr = items.filter(function (v) {
if (v.name == key) {
return v
}
})
if (arr && arr.length == 1) {
let val = setup[key];
// css模板
let cssTemplate = arr[0].cssTemplate;
// css 分组
let cssGroup = arr[0].cssGroup;
if (cssTemplate) {
let split = cssTemplate.replace("%s", val).split(":");
if (cssGroup) {
if (!css[cssGroup]) {
css[cssGroup] = baseCss;
}
css[cssGroup][split[0]] = split[1];
} else {
if (Object.keys(css).length == 0) {
css = baseCss;
}
css[split[0]] = split[1];
}
}
}
}
return css;
}
},
methods: {
/**
* 页面初始化
*/
pageInit() {
console.log("页面初始化,如需自定义,需要定义函数:pageInit()")
},
/**
* 页面重新加载
*/
reloadPage() {
console.log("页面重新加载函数,如需自定义,需要定义函数:reloadPage()")
},
/**
* 订阅事件
*/
subEvent(){
console.log("页面订阅事件id集合,如需自定义,需要定义函数:subEvent()")
return [];
},
/**
* 获取订阅事件的数据
* @param eventId 事件Id
* @param data 数据
*/
getCustomEventData(eventId, data) {
console.log("组件状态订阅事件数据,如需自定义,需要定义函数:getCustomEventData(事件Id,事件数据)")
console.log(`事件ID:${eventId},事件数据:`,JSON.stringify(data));
},
/**
* 推送事件数据
*/
pushEventData(evebtId, obj) {
let data = {
eventId: evebtId,
data: obj
}
this.$store.dispatch('customEventAction', data);
},
/**
* 字符串转换函数
*/
toFunc(funStr){
return new Function(`return ${funStr}`)();
},
/**
* 执行js字符串函数,返回Boolean值,错误返回false
* @param funStr js函数字符串
* @returns {*}
*/
runJSFunc(funStr, params) {
try {
var dom = this.toFunc(funStr);
return dom && dom(params);
} catch (e) {
console.error(e)
}
return undefined;
},
/**
* 获取配置项的默认值
*/
getOptionDefaultValue(name) {
let that = this;
if (!name) {
return undefined;
}
let arr = that.config.setup.filter(function (v) {
if (v.name == name) {
return v
}
})
if (arr && arr.length == 1) {
return arr[0].value;
}
return undefined;
},
/**
* 获取x天后的日期
* @param day
* @returns {string} yyyy-MM-mm
*/
getOffsetDate(day) {
var doHandMonth = (month) => {
var m = month
if (month.toString().length == 1) {
m = "0" + month
}
return m
}
var today = new Date()
var targetday = today.getTime() + 1000 * 60 * 60 * 24 * day
today.setTime(targetday)
var tYear = today.getFullYear()
var tMonth = today.getMonth()
var tDate = today.getDate()
tMonth = doHandMonth(tMonth + 1)
tDate = doHandMonth(tDate)
return tYear + "-" + tMonth + "-" + tDate
},
/**
* 获取URL所有的参数
*/
getUrlParam() {
let url = window.location.href;
let arrObj = url.split("?");
let params = Object.create(null)
if (arrObj.length > 1) {
arrObj = arrObj[1].split("&");
arrObj.forEach(item => {
item = item.split("=");
params[item[0]] = item[1]
})
}
return params;
},
/**
* 请求接口数据
* @param params 扩展参数
* @param dynamicDataKey 动态数据源,一般是:dynamicData
* @param staticDataType 静态数据源类型,一般是:staticData
* @returns {Promise<unknown>}
*/
handlerData(params,dynamicDataKey,staticDataType) {
let that = this;
const optionsData = this.value.data;
if(!staticDataType){
staticDataType = 'staticData';
}
if(!dynamicDataKey){
dynamicDataKey = 'dynamicData';
}
// 返回Promise对象
return new Promise(async (resolve) => {
if (optionsData.dataType == staticDataType) {
// 返回静态数据
let staticData = {
code: 0,
success: true,
data: optionsData[staticDataType]
}
resolve(staticData);
} else {
// 获取动态数据 start
if (optionsData[dynamicDataKey]) {
let contextData = optionsData[dynamicDataKey].contextData;
// 合并url参数
let paramsObj = that.getUrlParam();
if (paramsObj) {
for (let key of Object.keys(paramsObj)) {
let paramVal = paramsObj[key];
contextData[key] = paramVal;
}
}
// 合并自定义的参数
if (params) {
for (let key of Object.keys(params)) {
let paramVal = params[key];
if(typeof paramVal == 'object'){
paramVal = JSON.stringify(paramVal);
}
contextData[key] = paramVal;
}
}
// 请求接口
that.queryEchartsData(
optionsData[dynamicDataKey],
optionsData.refreshTime,
that.optionsSetup,
optionsData.isRefresh
).then(res => {
let data = res[0];
if (data && (data.code == 200 || data.code == 0)) {
resolve(data);
} else if (data && data.code == 401) {
let msg = 'token过期,请重新登录!';
let data401 = {
code: 401,
success: false,
msg:msg
}
resolve(data401);
console.log(msg, data);
}
});
}
// 获取动态数据 end
}
}).catch(e => {
console.error("数据请求异常:", e);
})
},
}
}
... ...
... ... @@ -140,7 +140,7 @@ export default {
LineChartFnCustomTrend(chartProperties, data) {
const ananysicData = {};
let series = [];
if(data && data[0] && data[0].code==200 && data[0].data){
if(data && data[0] && (data[0].code==200 || data[0].code==0) && data[0].data){
series = data[0].data;
}
ananysicData["series"] = series;
... ... @@ -152,8 +152,8 @@ export default {
let xAxisList = [];
let series = [];
let kpiUnit='';
if(data && data[0] ){
if(data[0].data){
if(data && data[0]){
if(data[0].data && data[0].series){
if(data[0].data.names && data[0].data.names.length>0){
xAxisList=data[0].data.names;
}else{
... ... @@ -173,42 +173,122 @@ export default {
}];
}
}else{
//容量分析柱线图数据结构
let seriesCapacityData=[];//容量
let seriesUsageRateData=[];//使用率
let seriesUsageValueData=[];//使用量
data.map(item=>{
xAxisList.push(item.periodVal);
seriesCapacityData.push(item.capacityValue)
seriesUsageRateData.push(item.usageRate)
seriesUsageValueData.push(item.usageValue)
let dataData='';
if(data[0].data && data[0].data.length>=0){
dataData=data[0].data;
}else{
dataData=data;
}
if(dataData.length>0){
//容量分析柱线图数据结构
let seriesCapacityData=[];//容量
let seriesUsageRateData=[];//使用率
let seriesUsageValueData=[];//使用量
let seriesGrowthData=[];//增长量
dataData.map(item=>{
xAxisList.push(item.periodVal);
if(item.capacityValue || item.capacityValue==0){
seriesCapacityData.push(item.capacityValue)
}
if(item.usageRate || item.usageRate==0){
seriesUsageRateData.push(item.usageRate)
}
if(item.usageValue || item.usageValue==0){
seriesUsageValueData.push(item.usageValue)
}
//增长量
if(item.growth || item.growth==0){
seriesGrowthData.push(item.growth);
}
})
if(seriesUsageValueData.length>0){
series.push({
type:'bar',
name:'使用量',
data:seriesUsageValueData
})
}else{
series.push({
type:'bar',
name:'',
data:seriesUsageValueData
})
}
if(seriesCapacityData.length>0){
series.push({
type:'bar',
name:'容量',
data:seriesCapacityData
})
}else{
series.push({
type:'bar',
name:'',
data:seriesCapacityData
})
}
if(seriesGrowthData.length>0){
series.push({
type:'bar',
name:'增长量',
data:seriesGrowthData
})
}else{
series.push({
type:'bar',
name:'',
data:seriesGrowthData
})
}
if(seriesUsageRateData.length>0){
series.push({
type:'line',
name:'使用率',
data:seriesUsageRateData
})
}else{
series.push({
type:'line',
name:'',
data:seriesUsageRateData
})
}
})
series.push({
type:'bar',
name:'使用量',
data:seriesUsageValueData
})
series.push({
type:'line',
name:'容量',
data:seriesCapacityData
})
series.push({
type:'line',
name:'使用率',
data:seriesUsageRateData
})
}else{
xAxisList=[];
series=[];
/* series = [{
name: "使用量",
type:'bar',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},{
name: "容量",
type:'line',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},{
name: "使用率",
type:'line',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}];*/
}
}
}else{
// xAxisList=['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00']
xAxisList=[]
series = [{
name: "",
xAxisList=[];
series=[];
/*series = [{
name: "使用量",
type:'bar',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}];
},{
name: "容量",
type:'line',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
},{
name: "使用率",
type:'line',
data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}];*/
}
ananysicData["xAxis"] = xAxisList;
ananysicData["series"] = series;
... ...
... ... @@ -2,6 +2,7 @@ import cacheView from "./modules/cachaView"
import tableHead from "./modules/tableHead"
import buttonVal from "./modules/button";
import elTreeData from "./modules/elTree";
import select from "./modules/select";
const getters = {
sidebar: state => state.app.sidebar,
... ... @@ -16,6 +17,11 @@ const getters = {
//按钮月季度年切换
buttonVals:state => state.buttonVal.buttonValData,
//树形控件点击切换
elTreeDatas:state => state.elTreeData.treeDatas
elTreeDatas:state => state.elTreeData.treeDatas,
//进度条的数据
progressDatas:state => state.progress.progressData,
//下拉选择列表选中数据-
selectValues:state => state.select.selectValArr,
}
export default getters
... ...
... ... @@ -11,6 +11,10 @@ import help from './modules/help'
import tableHead from './modules/tableHead'
import buttonVal from "./modules/button";
import elTreeData from "./modules/elTree";
import progress from "./modules/progress";
import select from "./modules/select";
import common from "./modules/common";
Vue.use(Vuex)
... ... @@ -25,7 +29,10 @@ const store = new Vuex.Store({
help,
tableHead,
buttonVal,
elTreeData
elTreeData,
progress,
select,
common
},
state: { },
plugins: [initPlugin],
... ...
const common = {
state: {
/**
* 自定义状态数据
*/
customState: {},
updateEventId:0
},
mutations: {
CUSTOM_TOGGLE_EVENT: (state, obj) => {
let eventId = obj.eventId;
let data = obj.data;
state.customState[eventId] = data
state.updateEventId = eventId+'###'+(new Date()).getTime()
},
},
getters: {
/**
* 获取数据
* @param state
* @returns {*}
*/
getCustomState(state) {
return state.customState
},
getLastUpdateEventId(state) {
return state.updateEventId
},
},
actions: {
/**
* 自定义组件,事件订阅函数
* @param commit
* @param obj {
* eventId:uuid,
* data:{}
* }
*/
customEventAction({commit}, obj) {
commit('CUSTOM_TOGGLE_EVENT', obj)
},
}
}
export default common
... ...
const progress = {
state: {
progressData: ''
},
mutations: {
CHANGE_PROGRESS: (state, val) => {
state.progressData=val;
}
},
actions: {
}
}
export default progress
... ...
const select = {
state: {
selectVal: '',
selectValArr:[]
},
mutations: {
SELECT_VAL: (state, val) => {
state.selectVal=val;
},
SELECT_VAL_ARR: (state, val) => {
state.selectValArr=val;
}
},
actions: {
}
}
export default select
... ...
... ... @@ -154,9 +154,9 @@ export default {
echoDynamicData(val) {
const chartProperties = this.deepClone(val.chartProperties);
this.chartProperties = chartProperties;
if (this.userNameList.length > 0) {
if (this.setParamList && this.userNameList.length > 0) {
}
if (this.setParamList.length > 0) {
if (this.setParamList && this.setParamList.length > 0) {
for (let i = 0; i < this.setParamList.length; i++) {
const item = this.setParamList[i];
if (chartProperties.hasOwnProperty(item)) {
... ...
<template>
<div>
<el-button
type="primary"
size="small"
icon="el-icon-plus"
plain
@click="handleAddClick">新增
</el-button>
<el-table :data="formData" style="width: 100%">
<!-- 表格标题-->
<el-table-column prop="name" label="名称" width="120"/>
<!-- 关联的数据表示-->
<el-table-column prop="key" label="key值" width="70"/>
<el-table-column prop="width" label="宽度" width="100"/>
<el-table-column prop="sort" label="排序" width="80"/>
<el-table-column prop="bgColor" label="表头背景色" width="100"/>
<el-table-column prop="component" label="组件" width="100"/>
<!--
<el-table-column prop="successState" label="成功状态标识" width="100"/>
-->
<el-table-column prop="drill" label="下探" width="120"/>
<el-table-column prop="ddic" label="转移字典Code" width="120"/>
<el-table-column prop="isSearch" label="搜索" width="100"/>
<el-table-column label="操作" width="100" fixed="right">
<template slot-scope="scope">
<div class="button-group">
<el-button
@click="handleEditorClick(scope.$index, scope.row)"
type="text"
size="small"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click="handleDeleteClick(scope.$index, scope.row)"
>删除
</el-button
>
</div>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新增"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-form :model="rowFormData" label-width="100px">
<el-form-item label="名称:">
<el-input
v-model.trim="rowFormData['name']"
placeholder="请输入名称"
size="mini"></el-input>
</el-form-item>
<el-form-item label="key值:">
<el-input
v-model.trim="rowFormData['key']"
placeholder="请输入key值"
size="mini"></el-input>
</el-form-item>
<el-form-item label="宽度:">
<el-input
v-model.trim="rowFormData['width']"
placeholder="请输入宽度"
size="mini"></el-input>
</el-form-item>
<el-form-item label="排序:">
<el-input
v-model.trim="rowFormData['sort']"
placeholder="请输入排序"
type="number"
size="mini"></el-input>
</el-form-item>
<el-form-item label="背景色:">
<el-input
v-model.trim="rowFormData['bgColor']"
placeholder="背景色"
size="mini"></el-input>
</el-form-item>
<el-form-item label="组件:">
<el-select v-model="rowFormData['component']" placeholder="请输入下探类型">
<el-option label="无" value=""> </el-option>
<el-option label="进度条" value="progress"> </el-option>
<el-option label="状态组件" value="status"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="下探:">
<el-select multiple v-model="rowFormData['drill']" placeholder="请输入下探类型">
<el-option label="无" value=""> </el-option>
<el-option label="详情页" value="detail"> </el-option>
<el-option label="拓扑" value="topology"> </el-option>
<el-option label="报表" value="openJimu"> </el-option>
<el-option label="设计页面" value="openAJ"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="转义:">
<el-input
v-model.trim="rowFormData['ddic']"
placeholder="请输入字典code"
size="mini"></el-input>
</el-form-item>
<el-form-item label="是否是搜索:">
<el-switch
v-model="rowFormData['isSearch']"
active-text="是"
inactive-text="否">
</el-switch>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="dialogVisible = false">取 消</el-button>
<el-button size="mini" type="primary" @click="handleSaveClick">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
model: {
prop: "formData",
event: "input"
},
props: {
formData: Array
},
data() {
return {
dialogVisible: false,
rowFormData: {
name: "",
key: "",
width: ""
},
flag: true, // true 新增, false 编辑
indexEditor: -1, // 编辑第几个数据
tableData: []
};
},
methods: {
// 新增
handleAddClick() {
this.rowFormData = {};
this.flag = true;
this.dialogVisible = true;
},
// 编辑
handleEditorClick(index, row) {
this.flag = false;
this.rowFormData = this.deepClone(row);
this.indexEditor = index;
this.dialogVisible = true;
},
// 关闭
handleClose() {
this.dialogVisible = false;
},
// 保存
handleSaveClick() {
if (this.flag) {
// 新增
this.formData.push(this.rowFormData);
this.dialogVisible = false;
} else {
// 编辑
this.formData[this.indexEditor] = this.rowFormData;
this.$set(this.formData, this.indexEditor, this.rowFormData);
this.dialogVisible = false;
}
this.$emit("input", this.formData);
this.$emit("change", this.formData);
},
// 删除
handleDeleteClick(index) {
this.formData.splice(index, 1);
this.$emit("input", this.formData);
this.$emit("change", this.formData);
}
}
};
</script>
<style lang="scss" scoped>
/deep/ ::-webkit-scrollbar-track-piece {
background-color: transparent;
}
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
width: 0; // 横向滚动条
height: 8px; // 纵向滚动条 必写
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
border-radius: 5px;
background-color: rgba(144, 146, 152, 0.3);
}
/deep/ .el-table,
/deep/ .el-table__expanded-cell,
/deep/ .el-table th,
/deep/ .el-table tr {
background-color: transparent !important;
color: #859094 !important;
font-size: 12px !important;
}
/deep/ .el-table td,
/deep/ .el-table th.is-leaf {
border-bottom: none;
line-height: 26px;
}
/deep/ .el-table tbody tr:hover {
background-color: #263445 !important;
}
/deep/ .el-table tbody tr:hover > td {
background-color: #263445 !important;
}
/deep/ .el-table::before {
height: 0;
}
.button-group .el-button {
padding: 0;
}
</style>
... ...
... ... @@ -157,6 +157,12 @@
:chart-type="item.chartType"
@change="changed($event, item.name)"
/>
<dynamic-custom-table
v-if="item.type == 'dynamic-custom-table' && inputShow[item.name]"
v-model="formData[item.name]"
:chart-type="item.chartType"
@change="changed($event, item.name)"
/>
</div>
<div v-else-if="isShowForm(item, '[object Array]')" :key="'a-' + index">
<el-collapse accordion>
... ... @@ -289,6 +295,9 @@ import customColorComponents from "./customColorComponents";
import dynamicAddTable from "./dynamicAddTable.vue";
import customUpload from "./customUpload.vue";
// 自定i表格扩展
import dynamicCustomTable from "./dynamicCustomTable";
import configureIndicators from "./configureIndicators.vue";
import configureIndicatorsInformation from "./configureIndicatorsInformation.vue";
... ... @@ -302,7 +311,8 @@ export default {
dynamicAddTable,
customUpload,
configureIndicators,
configureIndicatorsInformation
configureIndicatorsInformation,
dynamicCustomTable
},
model: {
prop: "value",
... ...
... ... @@ -250,6 +250,7 @@
v-model="widget.value"
:index="index"
:step="step"
:options="widget.options"
:type="widget.type"
:bigscreen="{ bigscreenWidth, bigscreenHeight }"
@onActivated="setOptionsOnClickWidget"
... ...
/**
* 积木报表按钮跳转到积木报表
*/
export const monitorAjButton = {
code: 'monitor-aj-button',
type: 'html',
label: 'AJ报表',
icon: 'iconbiaoge',
options: {
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: 'AJ报表按钮',
},
{
type: 'el-input-text',
label: '按钮文本',
name: 'buttonText',
required: false,
placeholder: '',
value: '报表',
},
{
type: 'el-input-text',
label: '报表编号',
name: 'ajCode',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: '指标Id',
name: 'kpiId',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: 'flag',
name: 'flag',
required: false,
placeholder: '',
value: ''
}
],
data: [],
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 30,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 30,
},
],
}
}
... ...
... ... @@ -26,6 +26,14 @@ export const monitorBgBorder = {
placeholder: '',
value: require("../../../../../../../assets/images/monitor/capacityAnalysis/icon-plat-info.png"),
},
{
type: 'el-input-text',
label: 'kpiId',
name: 'vuexFlagKpiId',
required: false,
placeholder: '',
value: '',
},
[{
name: '标题设置',
list: [
... ...
/*
* @Descripttion: 业务卡片
* @version:
* @Author: lsq
* @Date: 2022-05-18
* @LastEditors: lsq
* @LastEditTime: 2022-05-18
*/
export const monitorBusCard = {
code: 'monitor-bus-card',
type: 'chart',
label: '业务-卡片',
icon: 'iconbaifenbi',
options: {
// 配置
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '业务-卡片',
},
{
type: 'vue-color',
label: '背景颜色',
name: 'background',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-switch',
label: '是否显示拓扑',
name: 'isToop',
required: false,
placeholder: '',
value: true
},
{
type: 'el-select',
label: '拓扑图标',
name: 'toop',
required: false,
placeholder: '',
selectOptions: [
{code: 'el-icon-my-toop', name: '蓝色图标'},
{code: 'el-icon-my-toop-white', name: '白色图标'},
{code: 'el-icon-my-toop-yellow', name: '黄色图标'},
],
value: 'el-icon-my-toop'
},
{
type: 'el-switch',
label: '是否有跳转',
name: 'isNextPage',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '跳转路由',
name: 'nextRouter',
required: false,
placeholder: '',
value: '',
},
[
{
name: '卡片设置',
list: [
{
type: 'vue-color',
label: '卡片背景颜色',
name: 'backgroundItem',
required: false,
placeholder: '',
value: '#fff'
},
{
type: 'el-switch',
label: '加边框',
name: 'isBorder',
required: false,
placeholder: '',
value: true
},
{
type: 'el-input-number',
label: '边框宽度',
name: 'borderWidth',
required: false,
placeholder: '',
value: 1,
},
{
type: 'vue-color',
label: '边框颜色',
name: 'borderColor',
required: false,
placeholder: '',
value: 'rgba(151, 151, 151, 0.13)',
},
{
type: 'el-input-number',
label: '边框圆角',
name: 'radiusCard',
required: false,
placeholder: '',
value: 3,
},
{
type: 'el-input-number',
label: '宽度',
name: 'widthCard',
required: false,
placeholder: '',
value: 450,
},
{
type: 'el-input-number',
label: '高度',
name: 'heightCard',
required: false,
placeholder: '',
value: 200,
},
{
type: 'vue-color',
label: '小圆点优颜色',
name: 'normalColor',
required: false,
placeholder: '',
value: '#0BAC33',
},
{
type: 'vue-color',
label: '小圆点良颜色',
name: 'worseColor',
required: false,
placeholder: '',
value: '#FF7E00',
},
{
type: 'vue-color',
label: '小圆点中颜色',
name: 'worstColor',
required: false,
placeholder: '',
value: '#d81e06',
},
]
},
{
name: '标题设置',
list: [
{
type: 'el-switch',
label: '是否有标题',
name: 'isTitle',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '标题名称',
name: 'titleName',
required: false,
placeholder: '',
value: 'vmware-80.12.89.77',
},
{
type: 'vue-color',
label: '背景颜色',
name: 'titleBgColor',
required: false,
placeholder: '',
value: 'rgb(244, 245, 250)'
},
{
type: 'el-select',
label: '字体位置',
name: 'textAlign',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'center'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'titleFontSize',
required: false,
placeholder: '',
value: '18'
},
{
type: 'vue-color',
label: '字体颜色',
name: 'titleColor',
required: false,
placeholder: '',
value: '#666'
},
{
type: 'el-select',
label: '字体粗细',
name: 'titleFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
]
},
{
name: '数值设置',
list: [
{
type: 'el-input-number',
label: '数值字体大小',
name: 'textNumFontSize',
required: false,
placeholder: '',
value: 20
},
{
type: 'el-select',
label: '字体粗细',
name: 'textNumFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
}
],
},
{
name: '数值名称设置',
list: [
{
type: 'el-input-number',
label: '数值字体大小',
name: 'textNameFontSize',
required: false,
placeholder: '',
value: 20
},
{
type: 'el-select',
label: '字体粗细',
name: 'textNameFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
}
],
}
],
],
// 数据
data: [
{
type: 'el-radio-group',
label: '数据类型',
name: 'dataType',
require: false,
placeholder: '',
selectValue: true,
selectOptions: [
{
code: 'staticData',
name: '静态数据',
},
{
code: 'dynamicData',
name: '动态数据',
},
],
value: 'staticData',
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: 5000
},
{
type: 'el-button',
label: '静态数据',
name: 'staticData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
relactiveDomValue: 'staticData',
value:[
{
"busId": "b64bd18a248c4f08ae14a5d67d64a2c1",
"parentId": "0",
"busTypeCode": "xianbus",
"busTypeName": "西安公司业务",
"busTypeDesc": "西安公司业务",
"admin": "wanganjun",
"adminTel": null,
"createTime": "2022-03-03 10:55:55",
"streamId": null,
"isUse": 1,
"important": 1,
"sort": 100,
"isLeaf": 1,
"nickname": "王安军",
"result": null,
"resourceId": null,
"healthStatus": null,
"healthStatusName": null,
"jtopoId": null,
"businessNum": null,
"successRate": null,
"responseRate": null,
"score": null,
"resNum": null,
"normal": 4,
"worse": 0,
"worst": 4,
"total": 8,
"resType": "b64bd18a248c4f08ae14a5d67d64a2c1",
"resTypeName": "西安公司业务",
"useable": null,
"child": null,
"alarmNum": null,
"hostNum": null,
"databaseNum": null,
"middwareNum": null,
"parentName": null,
"userCount": null,
"showType": null,
"isOps": 0,
"taskType": null,
"isvirtual": null,
"system_type": null,
"principal": null,
"principalName": null
}, {
"busId": "1d4ff0198a2e440ea42e0d9099aca133",
"parentId": "0",
"busTypeCode": "fdchj",
"busTypeName": "房地产核价系统",
"busTypeDesc": "房地产核价系统",
"admin": "童浏靓",
"adminTel": "18997480219",
"createTime": "2019-09-04 18:49:17",
"streamId": null,
"isUse": 1,
"important": 1,
"sort": 100,
"isLeaf": 1,
"nickname": "童浏靓",
"result": null,
"resourceId": null,
"healthStatus": null,
"healthStatusName": null,
"jtopoId": null,
"businessNum": null,
"successRate": null,
"responseRate": null,
"score": null,
"resNum": null,
"normal": 1,
"worse": 0,
"worst": 5,
"total": 6,
"resType": "1d4ff0198a2e440ea42e0d9099aca133",
"resTypeName": "房地产核价系统",
"useable": null,
"child": null,
"alarmNum": null,
"hostNum": null,
"databaseNum": null,
"middwareNum": null,
"parentName": null,
"userCount": null,
"showType": null,
"isOps": 0,
"taskType": null,
"isvirtual": null,
"system_type": null,
"principal": null,
"principalName": null
}
]
},
{
type: 'dycustComponents',
label: '',
name: 'dynamicData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
chartType: 'widget-table',
dictKey: 'TEXT_PROPERTIES',
relactiveDomValue: 'dynamicData',
value: '',
},
],
// 坐标
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 1800,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 240,
},
],
}
}
... ...
/**
* 忙时分析页面
*/
export const monitorJimuButton = {
code: 'monitor-busy-analysis',
type: 'html',
label: '忙时分析报表',
icon: 'iconbiaoge',
options: {
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '忙时分析报表',
},
{
type: 'el-input-text',
label: '按钮文本',
name: 'buttonText',
required: false,
placeholder: '',
value: '报表',
},
{
type: 'el-input-text',
label: '报表编号',
name: 'reportCode',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: '指标Id',
name: 'kpiId',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: 'flag',
name: 'flag',
required: false,
placeholder: '',
value: ''
}
],
data: [],
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 30,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 30,
},
],
}
}
... ...
/*
* @Descripttion: 柱线图
* @version:
* @Author: lsq
* @Date: 2022-03-01
* @LastEditors: lsq
* @LastEditTime: 2022-03-01
*/
export const monitorCustomBarLineChartArray = {
code: 'monitor-custom-bar-line-chart-array',
type: 'chart',
label: '柱线图-双线-循环',
icon: 'iconzhuxiantu',
options: {
// 配置
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '柱线图',
},
{
type: 'vue-color',
label: '背景颜色',
name: 'background',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-switch',
label: '与按钮组件联动',
name: 'isVuex',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '与flag联动',
name: 'isFlag',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-number',
label: '柱线图高度',
name: 'itemHeight',
required: false,
placeholder: '',
value: 250
},
{
type: 'el-input-number',
label: '柱线图下边距',
name: 'itemMarginBottom',
required: false,
placeholder: '',
value: 5
},
{
type: 'vue-color',
label: '每组柱线图背景色',
name: 'itemBackground',
required: false,
placeholder: '',
value: '#fff'
},
[
{
name: '折线设置',
list: [
{
type: 'el-switch',
label: '标记点',
name: 'markPoint',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-slider',
label: '点大小',
name: 'pointSize',
required: false,
placeholder: '',
value: 5,
},
{
type: 'el-switch',
label: '平滑曲线',
name: 'smoothCurve',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '面积堆积',
name: 'area',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-slider',
label: '面积厚度',
name: 'areaThickness',
required: false,
placeholder: '',
value: 5,
},
{
type: 'el-slider',
label: '线条宽度',
name: 'lineWidth',
required: false,
placeholder: '',
value: 2,
},
],
},
{
name: '柱体设置',
list: [
{
type: 'el-slider',
label: '最大宽度',
name: 'maxWidth',
required: false,
placeholder: '',
value: 10,
},
{
type: 'el-slider',
label: '圆角',
name: 'radius',
require: false,
placeholder: '',
value: 5,
},
{
type: 'el-slider',
label: '最小高度',
name: 'minHeight',
require: false,
placeholder: '',
value: 0,
},
],
},
{
name: '标题设置',
list: [
{
type: 'el-switch',
label: '标题',
name: 'isNoTitle',
required: false,
placeholder: '',
value: true
},
{
type: 'el-input-text',
label: '标题',
name: 'titleText',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '字体颜色',
name: 'textColor',
required: false,
placeholder: '',
value: '#1e9fff'
},
{
type: 'el-select',
label: '字体粗细',
name: 'textFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'bold'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'textFontSize',
required: false,
placeholder: '',
value: 16
},
{
type: 'el-select',
label: '字体位置',
name: 'textAlign',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'left'
},
{
type: 'el-select',
label: '标题垂直位置',
name: 'textAlignVertical',
required: false,
placeholder: '',
selectOptions: [
{code: 'top', name: '靠上'},
{code: 'bottom', name: '靠下'},
],
value: 'top'
},
{
type: 'el-input-text',
label: '副标题',
name: 'subText',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '字体颜色',
name: 'subTextColor',
required: false,
placeholder: '',
value: '#fff'
},
{
type: 'el-select',
label: '字体粗细',
name: 'subTextFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'subTextFontSize',
required: false,
placeholder: '',
value: 20
},
],
},
{
name: 'X轴设置',
list: [
{
type: 'el-switch',
label: '显示',
name: 'hideX',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '坐标名',
name: 'xName',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '坐标名颜色',
name: 'nameColorX',
required: false,
placeholder: '',
value: '#fff',
},
{
type: 'el-input-number',
label: '坐标字号',
name: 'nameFontSizeX',
required: false,
placeholder: '',
value: 14,
},
{
type: 'vue-color',
label: '数值颜色',
name: 'Xcolor',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '数值字号',
name: 'fontSizeX',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-slider',
label: '数值角度',
name: 'textAngle',
required: false,
placeholder: '',
value: 0
},
{
type: 'el-input-number',
label: '数值间隔',
name: 'textInterval',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-switch',
label: '轴反转',
name: 'reversalX',
required: false,
placeholder: '',
value: false
},
{
type: 'vue-color',
label: '轴颜色',
name: 'lineColorX',
required: false,
placeholder: '',
value: '#c9c9c9',
},
{
type: 'el-switch',
label: '分割线显示',
name: 'isShowSplitLineX',
require: false,
placeholder: '',
value: false,
},
{
type: 'vue-color',
label: '分割线颜色',
name: 'splitLineColorX',
required: false,
placeholder: '',
value: '#fff',
}
],
},
{
name: 'Y轴设置',
list: [
{
type: 'el-switch',
label: '左显示',
name: 'isShowYLeft',
require: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '左坐标名',
name: 'textNameYLeft',
require: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '左坐标名颜色',
name: 'nameColorYLeft',
required: false,
placeholder: '',
value: '#fff',
},
{
type: 'el-input-number',
label: '左坐标字号',
name: 'namefontSizeYLeft',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-input-number',
label: '左均分',
name: 'splitNumberLeft',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-switch',
label: '右显示',
name: 'isShowYRight',
require: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '右坐标名',
name: 'textNameYRight',
require: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '右坐标名颜色',
name: 'nameColorYRight',
required: false,
placeholder: '',
value: '#fff',
},
{
type: 'el-input-number',
label: '右坐标字号',
name: 'namefontSizeYRight',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-input-number',
label: '右均分',
name: 'splitNumberRight',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '数值颜色',
name: 'colorY',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '数值字号',
name: 'fontSizeY',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-switch',
label: '轴反转',
name: 'reversalY',
required: false,
placeholder: '',
value: false
},
{
type: 'vue-color',
label: '轴颜色',
name: 'lineColorY',
required: false,
placeholder: '',
value: '#c9c9c9',
},
],
},
{
name: '折线数值设定',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShowLine',
required: false,
placeholder: '',
value: false
},
{
type: 'el-input-number',
label: '距离',
name: 'distanceLine',
required: false,
placeholder: '',
value: 5
},
{
type: 'el-input-number',
label: '字体字号',
name: 'fontSizeLine',
required: false,
placeholder: '',
value: 14
},
{
type: 'vue-color',
label: '字体颜色',
name: 'subTextColorLine',
required: false,
placeholder: '',
value: '#666'
},
{
type: 'el-select',
label: '字体粗细',
name: 'fontWeightLine',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
],
},
{
name: '柱体数值设定',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShowBar',
required: false,
placeholder: '',
value: false
},
{
type: 'el-input-number',
label: '距离',
name: 'distanceBar',
required: false,
placeholder: '',
value: 5
},
{
type: 'el-input-number',
label: '字体字号',
name: 'fontSizeBar',
required: false,
placeholder: '',
value: 14
},
{
type: 'vue-color',
label: '字体颜色',
name: 'subTextColorBar',
required: false,
placeholder: '',
value: '#666'
},
{
type: 'el-select',
label: '字体粗细',
name: 'fontWeightBar',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
],
},
{
name: '提示语设置',
list: [
{
type: 'el-input-number',
label: '字体大小',
name: 'tipFontSize',
required: false,
placeholder: '',
value: 12
},
{
type: 'vue-color',
label: '字体颜色',
name: 'lineColor',
required: false,
placeholder: '',
value: '#e68b55'
},
],
},
{
name: '坐标轴边距设置',
list: [
{
type: 'el-slider',
label: '左边距(像素)',
name: 'marginLeft',
required: false,
placeholder: '',
value: 10,
}, {
type: 'el-slider',
label: '顶边距(像素)',
name: 'marginTop',
required: false,
placeholder: '',
value: 50,
}, {
type: 'el-slider',
label: '右边距(像素)',
name: 'marginRight',
required: false,
placeholder: '',
value: 40,
}, {
type: 'el-slider',
label: '底边距(像素)',
name: 'marginBottom',
required: false,
placeholder: '',
value: 10,
},
],
},
{
name: '图例操作',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShowLegend',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '图例文字显示',
name: 'isShowLegendText',
required: false,
placeholder: '',
value: true,
},
{
type: 'vue-color',
label: '字体颜色',
name: 'lengedColor',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '字体大小',
name: 'lengedFontSize',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-input-number',
label: '图例宽度',
name: 'lengedWidth',
required: false,
placeholder: '',
value: 15,
},
{
type: 'el-select',
label: '横向位置',
name: 'lateralPosition',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'center'
},
{
type: 'el-select',
label: '纵向位置',
name: 'longitudinalPosition',
required: false,
placeholder: '',
selectOptions: [
{code: 'top', name: '顶部'},
{code: 'bottom', name: '底部'},
],
value: 'top'
},
{
type: 'el-select',
label: '布局前置',
name: 'layoutFront',
required: false,
placeholder: '',
selectOptions: [
{code: 'vertical', name: '竖排'},
{code: 'horizontal', name: '横排'},
],
value: 'horizontal'
},
],
},
{
name: '自定义配色',
list: [
{
type: 'customColor',
label: '',
name: 'customColor',
required: false,
value: [{color: '#3b91ff'}, {color: '#ff1111'}, {color: '#2c2f90'}],
},
],
},
],
],
// 数据
data: [
{
type: 'el-radio-group',
label: '数据类型',
name: 'dataType',
require: false,
placeholder: '',
selectValue: true,
selectOptions: [
{
code: 'staticData',
name: '静态数据',
},
{
code: 'dynamicData',
name: '动态数据',
},
],
value: 'staticData',
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: 5000
},
{
type: 'el-button',
label: '静态数据',
name: 'staticData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
relactiveDomValue: 'staticData',
value: [
{"axis": "1月", "bar": 2.6, "line": 2},
{"axis": "2月", "bar": 5.9, "line": 2.2},
{"axis": "3月", "bar": 9, "line": 3.3},
{"axis": "4月", "bar": 26.4, "line": 4.5},
{"axis": "5月", "bar": 28.7, "line": 6.3},
{"axis": "6月", "bar": 70.7, "line": 10.2},
{"axis": "7月", "bar": 175.6, "line": 20.3},
{"axis": "8月", "bar": 182.2, "line": 23.4},
{"axis": "9月", "bar": 48.7, "line": 23},
{"axis": "10月", "bar": 18.8, "line": 16.5},
{"axis": "11月", "bar": 6, "line": 12},
{"axis": "12月", "bar": 2.3, "line": 6.2},
]
},
{
type: 'dycustComponents',
label: '',
name: 'dynamicData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
chartType: 'custom-barlinechart',
dictKey: 'BAR_LINE_PROPERTIES',
relactiveDomValue: 'dynamicData',
},
],
// 坐标
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 1403,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 800,
},
],
}
}
... ...
... ... @@ -38,6 +38,65 @@ export const monitorCustomBarLineChart = {
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '与下拉列表联动',
name: 'isVuexSelect',
required: false,
placeholder: '',
value: false,
},
{
type: 'el-input-text',
label: '下拉列表联动kpi',
name: 'vuexFlagKpiId',
required: false,
placeholder: '',
value: '',
},
[
{
name: '工具栏设置',
list: [
{
type: 'el-switch',
label: '数据视图',
name: 'dataView',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '导出',
name: 'download',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-select',
label: '工具栏位置',
name: 'toolBoxOrient',
required: false,
placeholder: '',
selectOptions: [
{code: 'vertical', name: '垂直'},
{code: 'horizontal', name: '水平'}
],
value: 'vertical'
},
{
type: 'el-input-number',
label: '工具栏右边距',
name: 'rightMargin',
required: false,
placeholder: '',
value: 150
},
]
},
],
[
{
name: '折线设置',
... ... @@ -119,6 +178,19 @@ export const monitorCustomBarLineChart = {
placeholder: '',
value: 0,
},
{
type: 'el-select',
label: '叠加类型',
name: 'stackStype',
required: false,
placeholder: '',
selectOptions: [
{code: 'total', name: '堆叠'},
{code: 'barGap', name: '叠加'},
{code: 'noStack', name: '不堆叠'},
],
value: 'total'
},
],
},
{
... ... @@ -679,6 +751,14 @@ export const monitorCustomBarLineChart = {
value: 'top'
},
{
type: 'el-input-number',
label: '距离顶部/底部距离',
name: 'legendHeight',
required: false,
placeholder: '',
value: 30,
},
{
type: 'el-select',
label: '布局前置',
name: 'layoutFront',
... ... @@ -700,7 +780,7 @@ export const monitorCustomBarLineChart = {
label: '',
name: 'customColor',
required: false,
value: [{color: '#3b91ff'}, {color: '#ff1111'}, {color: '#2c2f90'}],
value: [{color: '#FF795D'}, {color: '#24AAFF'}, {color: '#ff1111'}],
},
],
},
... ... @@ -728,6 +808,14 @@ export const monitorCustomBarLineChart = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ...
... ... @@ -646,6 +646,14 @@ export const monitorCustomLineTrend = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ...
... ... @@ -42,6 +42,14 @@ export const monitorCustomLiquidFillChart = {
],
value: 'column'
},
{
type: 'el-input-text',
label: '提示信息',
name: 'formula',
required: false,
placeholder: '',
value: '增长率=(本次值-上次值)/上次值;平均增长率 = 总增长率/总增长次数',
},
[
{
name: '水球设置',
... ... @@ -332,6 +340,14 @@ export const monitorCustomLiquidFillChart = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ...
/**
* 三点图
*/
export const monitorCustomScatterWeight = {
code: 'monitor-custom-scatter-weight',
type: 'chart',
label: '散点图',
icon: 'iconduidietu',
options: {
// 配置
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '散点图',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-switch',
label: '竖展示',
name: 'verticalShow',
required: false,
placeholder: '',
value: false,
},
{
type: 'vue-color',
label: '背景颜色',
name: 'background',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-select',
label: 'kpiId',
name: 'kpiId',
required: false,
placeholder: '',
selectOptions: [
{code: 'KPI449F5365', name: 'KPI449F5365(文件系统使用率)'},
{code: 'KPI97373ED0', name: 'KPI97373ED0(磁盘IO读速率)'},
{code: 'KPI95378FE0', name: 'KPI95378FE0(磁盘IO写速率)'},
{code: 'KPI66BD013F', name: 'KPI66BD013F(磁盘IO处理时间)'},
{code: 'KPI3E6ED38B', name: 'KPI3E6ED38B(磁盘IO响应时间)'}
],
value: 'KPI449F5365',
},
[
{
name: '折线设置',
list: [
{
type: 'el-switch',
label: '标记点',
name: 'markPoint',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-slider',
label: '点大小',
name: 'pointSize',
required: false,
placeholder: '',
value: 6,
},
{
type: 'el-switch',
label: '平滑曲线',
name: 'smoothCurve',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '面积堆积',
name: 'area',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-slider',
label: '面积厚度',
name: 'areaThickness',
required: false,
placeholder: '',
value: 5,
},
{
type: 'el-slider',
label: '线条宽度',
name: 'lineWidth',
required: false,
placeholder: '',
value: 1,
},
],
},
{
name: '标题设置',
list: [
{
type: 'el-switch',
label: '标题',
name: 'isNoTitle',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: '标题',
name: 'titleText',
required: false,
placeholder: '',
value: '文件系统使用率',
},
{
type: 'vue-color',
label: '字体颜色',
name: 'textColor',
required: false,
placeholder: '',
value: '#1e9fff'
},
{
type: 'el-select',
label: '字体粗细',
name: 'textFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'bold'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'textFontSize',
required: false,
placeholder: '',
value: 16
},
{
type: 'el-select',
label: '字体位置',
name: 'textAlign',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'left'
},
{
type: 'el-input-text',
label: '副标题',
name: 'subText',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '字体颜色',
name: 'subTextColor',
required: false,
placeholder: '',
value: 'rgba(30, 144, 255, 1)'
},
{
type: 'el-select',
label: '字体粗细',
name: 'subTextFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'subTextFontSize',
required: false,
placeholder: '',
value: 20
},
],
},
{
name: 'X轴设置',
list: [
{
type: 'el-switch',
label: '显示',
name: 'hideX',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: 'X轴别名',
name: 'xName',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '别名颜色',
name: 'xNameColor',
required: false,
placeholder: '',
value: '#fff'
},
{
type: 'el-input-number',
label: '别名字号',
name: 'xNameFontSize',
required: false,
placeholder: '',
value: 14
},
{
type: 'el-switch',
label: '轴反转',
name: 'reversalX',
required: false,
placeholder: '',
value: false
},
{
type: 'el-slider',
label: '文字角度',
name: 'textAngleX',
required: false,
placeholder: '',
value: 0
},
{
type: 'el-input-number',
label: '文字间隔',
name: 'textInterval',
required: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '文字颜色',
name: 'Xcolor',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '文字字号',
name: 'fontSizeX',
required: false,
placeholder: '',
value: 14,
},
{
type: 'vue-color',
label: '轴颜色',
name: 'lineColorX',
required: false,
placeholder: '',
value: '#c9c9c9',
},
{
type: 'el-switch',
label: '分割线显示',
name: 'isShowSplitLineX',
require: false,
placeholder: '',
value: false,
},
{
type: 'vue-color',
label: '分割线颜色',
name: 'splitLineColorX',
required: false,
placeholder: '',
value: '#fff',
},
{
type: 'el-switch',
label: '分割区显示',
name: 'splitArea',
require: false,
placeholder: '',
value: true,
},
{
type: 'vue-color',
label: '分割区颜色',
name: 'splitAreaColor',
required: false,
placeholder: '',
value: 'rgba(200,200,200,0.1)',
},
],
},
{
name: 'Y轴设置',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShowY',
require: false,
placeholder: '',
value: true,
},
{
type: 'el-input-text',
label: 'Y轴别名',
name: 'textNameY',
require: false,
placeholder: '',
value: ''
},
{
type: 'vue-color',
label: '别名颜色',
name: 'NameColorY',
required: false,
placeholder: '',
value: '#fff',
},
{
type: 'el-input-number',
label: '别名字号',
name: 'NameFontSizeY',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-switch',
label: '轴反转',
name: 'reversalY',
required: false,
placeholder: '',
value: false
},
{
type: 'el-slider',
label: '文字角度',
name: 'textAngleY',
required: false,
placeholder: '',
value: 0
},
{
type: 'vue-color',
label: '文字颜色',
name: 'colorY',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '文字字号',
name: 'fontSizeY',
required: false,
placeholder: '',
value: 14,
},
{
type: 'vue-color',
label: '轴颜色',
name: 'lineColorY',
required: false,
placeholder: '',
value: '#c9c9c9',
}, {
type: 'el-switch',
label: '分割线显示',
name: 'isShowSplitLineY',
require: false,
placeholder: '',
value: false,
}, {
type: 'vue-color',
label: '分割线颜色',
name: 'splitLineColorY',
required: false,
placeholder: '',
value: '#fff',
}
],
},
{
name: '数值设定',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShow',
required: false,
placeholder: '',
value: false
},
{
type: 'el-input-number',
label: '字体大小',
name: 'fontSize',
required: false,
placeholder: '',
value: 14
},
{
type: 'vue-color',
label: '字体颜色',
name: 'subTextColor',
required: false,
placeholder: '',
value: '#666'
},
{
type: 'el-select',
label: '字体粗细',
name: 'fontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
],
},
{
name: '提示语设置',
list: [
{
type: 'el-input-number',
label: '字体大小',
name: 'tipsFontSize',
required: false,
placeholder: '',
value: 16
},
{
type: 'vue-color',
label: '字体颜色',
name: 'lineColor',
required: false,
placeholder: '',
},
],
},
{
name: '坐标轴边距设置',
list: [
{
type: 'el-slider',
label: '左边距(像素)',
name: 'marginLeft',
required: false,
placeholder: '',
value: 10,
}, {
type: 'el-slider',
label: '顶边距(像素)',
name: 'marginTop',
required: false,
placeholder: '',
value: 50,
}, {
type: 'el-slider',
label: '右边距(像素)',
name: 'marginRight',
required: false,
placeholder: '',
value: 40,
}, {
type: 'el-slider',
label: '底边距(像素)',
name: 'marginBottom',
required: false,
placeholder: '',
value: 10,
},
],
},
{
name: '图例操作',
list: [
{
type: 'el-switch',
label: '显示',
name: 'isShowLegend',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '图例文字显示',
name: 'isShowLegendText',
required: false,
placeholder: '',
value: false,
},
{
type: 'vue-color',
label: '字体颜色',
name: 'lengedColor',
required: false,
placeholder: '',
value: '#666',
},
{
type: 'el-input-number',
label: '字体大小',
name: 'lengedFontSize',
required: false,
placeholder: '',
value: 14,
},
{
type: 'el-input-number',
label: '图例宽度',
name: 'lengedWidth',
required: false,
placeholder: '',
value: 15,
},
{
type: 'el-select',
label: '横向位置',
name: 'lateralPosition',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'center'
},
{
type: 'el-select',
label: '纵向位置',
name: 'longitudinalPosition',
required: false,
placeholder: '',
selectOptions: [
{code: 'top', name: '顶部'},
{code: 'bottom', name: '底部'},
],
value: 'top'
},
{
type: 'el-select',
label: '布局前置',
name: 'layoutFront',
required: false,
placeholder: '',
selectOptions: [
{code: 'vertical', name: '竖排'},
{code: 'horizontal', name: '横排'},
],
value: 'horizontal'
},
],
},
{
name: '自定义配色',
list: [
{
type: 'customColor',
label: '',
name: 'customColor',
required: false,
value: [{color: '#facf5b'}, {color: '#C04DD8'}, {color: '#F5A1EB'}, {color: '#F36093'},
{color: '#C2E74D'},{color:'#3DC3FF'},{color:'#B850ED'}],
},
],
},
],
],
// 数据
data: [
{
type: 'el-radio-group',
label: '数据类型',
name: 'dataType',
require: false,
placeholder: '',
selectValue: true,
selectOptions: [
{
code: 'staticData',
name: '静态数据',
},
{
code: 'dynamicData',
name: '动态数据',
},
],
value: 'staticData',
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: 5000
},
{
type: 'el-button',
label: '静态数据',
name: 'staticData',
required: false,
placeholder: '静态数据源',
relactiveDom: 'dataType',
relactiveDomValue: 'staticData',
value: [{
"year": 2022,
"month": 4,
"day": 28,
"hour": 10,
"kpiName": "内存分配率",
"kpiUnit": "%",
"valMin": 67.94,
"valAvg": 67.94,
"valMax": 67.94
}],
},
{
type: 'dycustComponents',
label: '',
name: 'dynamicData',
required: false,
placeholder: '动态数据源',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
chartType: '',
dictKey: 'STACK_PROPERTIES',
value: '',
},
],
// 坐标
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 400,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 200,
},
],
}
}
... ...
/**
* 积木报表按钮跳转到积木报表
*/
export const monitorJimuButton = {
code: 'monitor-jimu-button',
type: 'html',
label: '积木报表',
icon: 'iconbiaoge',
options: {
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '积木报表按钮',
},
{
type: 'el-input-text',
label: '按钮文本',
name: 'buttonText',
required: false,
placeholder: '',
value: '报表',
},
{
type: 'el-input-text',
label: '报表编号',
name: 'reportCode',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: '指标Id',
name: 'kpiId',
required: false,
placeholder: '',
value: ''
},
{
type: 'el-input-text',
label: 'flag',
name: 'flag',
required: false,
placeholder: '',
value: ''
}
],
data: [],
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 30,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 30,
},
],
}
}
... ...
... ... @@ -74,6 +74,15 @@ export const monitorProgressInformation = {
],
value: 'column'
},
{
type: 'el-input-number',
label: '每组进度条高度',
name: 'itemHeight',
required: false,
placeholder: '',
value: '250'
},
[
{
name: '标题设置',
... ...
/*
* 下拉列表
* author lsq
* 2022/05/17
* */
export const monitorSelectOption = {
code: 'monitor-select-option',
type: 'html',
label: '下拉列表',
icon: 'iconchaolianjie',
options: {
setup: [
{
type: 'el-input-text',
label: '图层名称',
name: 'layerName',
required: false,
placeholder: '',
value: '背景',
},
{
type: 'el-input-text',
label: 'placeholder',
name: 'placeholderVal',
required: false,
placeholder: '',
value: '请选择',
},
{
type: 'el-input-text',
label: '全部的值',
name: 'allValue',
required: false,
placeholder: '',
value: 'disk-all',
},
{
type: 'el-switch',
label: '是否可清空',
name: 'clearable',
required: false,
placeholder: '',
value: true
},
{
type: 'el-switch',
label: '是否可筛选',
name: 'filterable',
required: false,
placeholder: '',
value: true
},
/* {
type: 'el-switch',
label: '是否可多选',
name: 'multiple',
required: false,
placeholder: '',
value: false
},*/
{
type: 'el-switch',
label: '是否加全部',
name: 'isAll',
required: false,
placeholder: '',
value: true
},
{
type: 'el-input-number',
label: '下拉列表宽度',
name: 'selectWidth',
required: false,
placeholder: '',
value: '160'
},
/* {
type: 'el-input-number',
label: '下拉列表高度',
name: 'selectHeight',
required: false,
placeholder: '',
value: '28'
},*/
{
type: 'el-switch',
label: '加边框',
name: 'isBorder',
required: false,
placeholder: '',
value: true
},
{
type: 'vue-color',
label: '边框颜色',
name: 'borderColor',
required: false,
placeholder: '',
value: 'rgba(151, 151, 151, 0.13)',
},
{
type: 'custom-upload',
label: '标题图标',
name: 'titleIcon',
required: false,
placeholder: '',
value: require("../../../../../../../assets/images/monitor/capacityAnalysis/icon-trend.png"),
},
{
type: 'vue-color',
label: '背景颜色',
name: 'bgColor',
required: false,
placeholder: '',
value: '',
},
{
type: 'custom-upload',
label: '背景图片',
name: 'imageAdress',
required: false,
placeholder: '',
value: '',
},
{
type: 'el-input-number',
label: '字体大小',
name: 'fontSize',
required: false,
placeholder: '',
value: '14'
},
[
{
name: '标题设置',
list: [
{
type: 'el-switch',
label: '是否有标题',
name: 'isTitle',
required: false,
placeholder: '',
value: false,
},
{
type: 'el-input-text',
label: '标题名称',
name: 'titleName',
required: false,
placeholder: '',
value: '系统信息',
},
{
type: 'el-select',
label: '字体位置',
name: 'textAlign',
required: false,
placeholder: '',
selectOptions: [
{code: 'center', name: '居中'},
{code: 'left', name: '左对齐'},
{code: 'right', name: '右对齐'},
],
value: 'left'
},
{
type: 'el-input-number',
label: '字体大小',
name: 'titleFontSize',
required: false,
placeholder: '',
value: '18'
},
{
type: 'vue-color',
label: '字体颜色',
name: 'titleColor',
required: false,
placeholder: '',
value: '#666'
},
{
type: 'el-select',
label: '字体粗细',
name: 'titleFontWeight',
required: false,
placeholder: '',
selectOptions: [
{code: 'normal', name: '正常'},
{code: 'bold', name: '粗体'},
{code: 'bolder', name: '特粗体'},
{code: 'lighter', name: '细体'}
],
value: 'normal'
},
]
},
{
name: '按钮组设置',
list: [
{
type: 'el-switch',
label: '年是否显示',
name: 'isYear',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '季度是否显示',
name: 'isQuarter',
required: false,
placeholder: '',
value: true,
},
{
type: 'el-switch',
label: '月是否显示',
name: 'isMonth',
required: false,
placeholder: '',
value: true,
},
]
},
],
],
data: [
{
type: 'el-radio-group',
label: '数据类型',
name: 'dataType',
require: false,
placeholder: '',
selectValue: true,
selectOptions: [
{
code: 'staticData',
name: '静态数据',
},
{
code: 'dynamicData',
name: '动态数据',
},
],
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: 30000
},
{
type: 'el-button',
label: '静态数据',
name: 'staticData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
relactiveDomValue: 'staticData',
value: [{value:1,label:'选项1',disabled:false},{value:2,label:'选项3',disabled:true}],
},
{
type: 'dycustComponents',
label: '',
name: 'dynamicData',
required: false,
placeholder: '',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
chartType: 'widget-table',
dictKey: 'TEXT_PROPERTIES', //表格的暂不起作用
value: '',
},
],
position: [
{
type: 'el-input-number',
label: '左边距',
name: 'left',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '上边距',
name: 'top',
required: false,
placeholder: '',
value: 0,
},
{
type: 'el-input-number',
label: '宽度',
name: 'width',
required: false,
placeholder: '该容器在1920px大屏中的宽度',
value: 550,
},
{
type: 'el-input-number',
label: '高度',
name: 'height',
required: false,
placeholder: '该容器在1080px大屏中的高度',
value: 50,
},
]
}
}
... ...
... ... @@ -206,6 +206,14 @@ export const monitorSystemInformation = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ...
... ... @@ -291,6 +291,14 @@ export const monitorTablePage = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: false
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ...
... ... @@ -48,6 +48,22 @@ export const monitorTreeShape = {
},
{
type: 'el-input-text',
label: '业务二级页不同类型相关页面编码',
name: 'serviceSecondCode',
required: false,
placeholder: '',
value: 'service_capacity_analysis_second,service_capacity_analysis_second_mem,service_capacity_analysis_second_tps',
},
{
type: 'el-input-text',
label: '业务三级页不同类型相关页面编码',
name: 'serviceTertiaryCode',
required: false,
placeholder: '',
value: 'service_capacity_analysis_tertiary,service_capacity_analysis_tertiary,service_capacity_analysis_tertiary_tps',
},
{
type: 'el-input-text',
label: '资源系统相关页面编码',
name: 'resourceCode',
required: false,
... ... @@ -55,6 +71,38 @@ export const monitorTreeShape = {
value: 'resource_capacity_analysis',
},
{
type: 'el-input-text',
label: '资源二级页不同类型相关页面编码',
name: 'resourceSecondCode',
required: false,
placeholder: '',
value: 'resource_capacity_analysis,service_capacity_analysis_second_mem,service_capacity_analysis_second_tps',
},
{
type: 'el-input-text',
label: '资源三级页不同类型相关页面编码',
name: 'resourceTertiaryCode',
required: false,
placeholder: '',
value: 'service_capacity_analysis_tertiary,service_capacity_analysis_tertiary,service_capacity_analysis_tertiary_tps',
},
{
type: 'el-input-text',
label: '字树节点',
name: 'propsChildren',
required: false,
placeholder: '',
value: 'children',
},
{
type: 'el-input-text',
label: '节点标签',
name: 'propsLabel',
required: false,
placeholder: '',
value: 'label',
},
{
type: 'el-switch',
label: '加边框',
name: 'isBorder',
... ... @@ -140,6 +188,14 @@ export const monitorTreeShape = {
value: 'staticData',
},
{
type: 'el-switch',
label: '是否刷新',
name: 'isRefresh',
relactiveDom: 'dataType',
relactiveDomValue: 'dynamicData',
value: true
},
{
type: 'el-input-number',
label: '刷新时间(毫秒)',
name: 'refreshTime',
... ... @@ -242,7 +298,7 @@ export const monitorTreeShape = {
required: false,
placeholder: '',
relactiveDom: 'dataType',
chartType: 'widget-piechart',
chartType: 'widget-table',
dictKey: 'TEXT_PROPERTIES',
relactiveDomValue: 'dynamicData',
value: '',
... ...