mirror of
https://github.com/dataease/dataease.git
synced 2025-02-25 03:52:59 +08:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
b0d2f33613
16
Dockerfile
16
Dockerfile
@ -1,19 +1,15 @@
|
||||
FROM registry.cn-qingdao.aliyuncs.com/dataease/fabric8-java-alpine-openjdk8-jre:edge
|
||||
|
||||
RUN echo -e 'http://mirrors.aliyun.com/alpine/edge/main/\nhttp://mirrors.aliyun.com/alpine/edge/community/' > /etc/apk/repositories
|
||||
RUN echo -e 'https://dl-cdn.alpinelinux.org/alpine/edge/main/\nhttps://dl-cdn.alpinelinux.org/alpine/edge/community/' > /etc/apk/repositories
|
||||
|
||||
#RUN apk add chromium chromium-chromedriver fontconfig --no-cache --allow-untrusted
|
||||
|
||||
#RUN mkdir -p /usr/local/sbin/ \
|
||||
# && cp /usr/bin/chromedriver /usr/local/sbin/ \
|
||||
# && chmod a+x /usr/local/sbin/chromedriver
|
||||
RUN apk add chromium chromium-chromedriver fontconfig --no-cache --allow-untrusted
|
||||
|
||||
ADD simsun.ttc /usr/share/fonts/
|
||||
|
||||
#RUN cd /usr/share/fonts/ \
|
||||
# && mkfontscale \
|
||||
# && mkfontdir \
|
||||
# && fc-cache -fv
|
||||
RUN cd /usr/share/fonts/ \
|
||||
&& mkfontscale \
|
||||
&& mkfontdir \
|
||||
&& fc-cache -fv
|
||||
|
||||
ARG IMAGE_TAG
|
||||
|
||||
|
@ -45,11 +45,19 @@ public class PanelLinkService {
|
||||
@Resource
|
||||
private PanelLinkMappingMapper panelLinkMappingMapper;
|
||||
|
||||
@Transactional
|
||||
public void changeValid(LinkRequest request) {
|
||||
PanelLink po = new PanelLink();
|
||||
po.setResourceId(request.getResourceId());
|
||||
po.setValid(request.isValid());
|
||||
mapper.updateByExampleSelective(po, example(request.getResourceId(), AuthUtils.getUser().getUserId()));
|
||||
Long userId = AuthUtils.getUser().getUserId();
|
||||
mapper.updateByExampleSelective(po, example(request.getResourceId(), userId));
|
||||
|
||||
PanelLinkMappingExample example = new PanelLinkMappingExample();
|
||||
example.createCriteria().andResourceIdEqualTo(request.getResourceId()).andUserIdEqualTo(userId);
|
||||
PanelLinkMapping mapping = new PanelLinkMapping();
|
||||
mapping.setUuid(CodingUtil.shortUuid());
|
||||
panelLinkMappingMapper.updateByExampleSelective(mapping, example);
|
||||
}
|
||||
|
||||
private PanelLinkExample example(String panelLinkId, Long userId){
|
||||
@ -118,11 +126,6 @@ public class PanelLinkService {
|
||||
mapping.setUserId(AuthUtils.getUser().getUserId());
|
||||
mapping.setUuid(CodingUtil.shortUuid());
|
||||
panelLinkMappingMapper.insert(mapping);
|
||||
}else {
|
||||
mappings.stream().filter(mapping -> StringUtils.isBlank(mapping.getUuid())).forEach(item -> {
|
||||
item.setUuid(CodingUtil.shortUuid());
|
||||
panelLinkMappingMapper.updateByPrimaryKey(item);
|
||||
});
|
||||
}
|
||||
return convertDto(one);
|
||||
}
|
||||
@ -214,14 +217,19 @@ public class PanelLinkService {
|
||||
example.createCriteria().andResourceIdEqualTo(resourceId).andUserIdEqualTo(AuthUtils.getUser().getUserId());
|
||||
List<PanelLinkMapping> mappings = panelLinkMappingMapper.selectByExample(example);
|
||||
PanelLinkMapping mapping = mappings.get(0);
|
||||
return SHORT_URL_PREFIX + mapping.getUuid();
|
||||
String uuid = mapping.getUuid();
|
||||
return SHORT_URL_PREFIX + (StringUtils.isBlank(uuid) ? mapping.getId() : uuid);
|
||||
}
|
||||
|
||||
public String getUrlByIndex(Long index) {
|
||||
PanelLinkMapping mapping = panelLinkMappingMapper.selectByPrimaryKey(index);
|
||||
|
||||
String resourceId = mapping.getResourceId();
|
||||
Long userId = mapping.getUserId();
|
||||
PanelLink one = findOne(resourceId, userId);
|
||||
if (StringUtils.isNotBlank(mapping.getUuid())) {
|
||||
one.setResourceId("error-resource-id");
|
||||
}
|
||||
return convertDto(one).getUri();
|
||||
}
|
||||
|
||||
|
@ -1023,7 +1023,8 @@ export default {
|
||||
table_column_custom: 'Custom',
|
||||
chart_table_pivot: 'Pivot Table',
|
||||
table_pivot_row: 'Data Row',
|
||||
field_error_tips: 'This field is changed(Include dimension、quota,field type,deleted),please edit again.'
|
||||
field_error_tips: 'This field is changed(Include dimension、quota,field type,deleted),please edit again.',
|
||||
table_border_color: 'Border Color'
|
||||
},
|
||||
dataset: {
|
||||
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
|
||||
|
@ -1023,7 +1023,8 @@ export default {
|
||||
table_column_custom: '自定義',
|
||||
chart_table_pivot: '透視表',
|
||||
table_pivot_row: '數據行',
|
||||
field_error_tips: '該字段所對應的數據集原始字段發生變更(包括維度、指標,字段類型,字段被刪除等),建議重新編輯'
|
||||
field_error_tips: '該字段所對應的數據集原始字段發生變更(包括維度、指標,字段類型,字段被刪除等),建議重新編輯',
|
||||
table_border_color: '邊框顏色'
|
||||
},
|
||||
dataset: {
|
||||
sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
|
||||
|
@ -1025,7 +1025,8 @@ export default {
|
||||
table_column_custom: '自定义',
|
||||
chart_table_pivot: '透视表',
|
||||
table_pivot_row: '数据行',
|
||||
field_error_tips: '该字段所对应的数据集原始字段发生变更(包括维度、指标,字段类型,字段被删除等),建议重新编辑'
|
||||
field_error_tips: '该字段所对应的数据集原始字段发生变更(包括维度、指标,字段类型,字段被删除等),建议重新编辑',
|
||||
table_border_color: '边框颜色'
|
||||
},
|
||||
dataset: {
|
||||
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
|
||||
|
@ -2,12 +2,13 @@ export const DEFAULT_COLOR_CASE = {
|
||||
value: 'default',
|
||||
colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
|
||||
alpha: 100,
|
||||
tableHeaderBgColor: '#c1d1f6',
|
||||
tableItemBgColor: '#e2eafe',
|
||||
tableHeaderBgColor: '#e1eaff',
|
||||
tableItemBgColor: '#ffffff',
|
||||
tableFontColor: '#000000',
|
||||
tableStripe: true,
|
||||
dimensionColor: '#000000',
|
||||
quotaColor: '#000000'
|
||||
quotaColor: '#000000',
|
||||
tableBorderColor: '#cfdaf4'
|
||||
}
|
||||
export const DEFAULT_SIZE = {
|
||||
barDefault: true,
|
||||
|
@ -2,13 +2,22 @@ import { hexColorToRGBA } from '@/views/chart/chart/util'
|
||||
import { DEFAULT_COLOR_CASE, DEFAULT_SIZE } from '@/views/chart/chart/chart'
|
||||
|
||||
export function getCustomTheme(chart) {
|
||||
const headerColor = hexColorToRGBA(DEFAULT_COLOR_CASE.tableHeaderBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
const itemColor = hexColorToRGBA(DEFAULT_COLOR_CASE.tableItemBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
const borderColor = hexColorToRGBA(DEFAULT_COLOR_CASE.tableBorderColor, DEFAULT_COLOR_CASE.alpha)
|
||||
const theme = {
|
||||
background: {
|
||||
color: '#00000000'
|
||||
},
|
||||
splitLine: {
|
||||
horizontalBorderColor: borderColor,
|
||||
verticalBorderColor: borderColor
|
||||
},
|
||||
cornerCell: {
|
||||
cell: {
|
||||
backgroundColor: hexColorToRGBA(DEFAULT_COLOR_CASE.tableHeaderBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
backgroundColor: headerColor,
|
||||
horizontalBorderColor: borderColor,
|
||||
verticalBorderColor: borderColor
|
||||
},
|
||||
text: {
|
||||
fill: DEFAULT_COLOR_CASE.tableFontColor,
|
||||
@ -21,7 +30,9 @@ export function getCustomTheme(chart) {
|
||||
},
|
||||
rowCell: {
|
||||
cell: {
|
||||
backgroundColor: hexColorToRGBA(DEFAULT_COLOR_CASE.tableHeaderBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
backgroundColor: headerColor,
|
||||
horizontalBorderColor: borderColor,
|
||||
verticalBorderColor: borderColor
|
||||
},
|
||||
text: {
|
||||
fill: DEFAULT_COLOR_CASE.tableFontColor,
|
||||
@ -34,7 +45,9 @@ export function getCustomTheme(chart) {
|
||||
},
|
||||
colCell: {
|
||||
cell: {
|
||||
backgroundColor: hexColorToRGBA(DEFAULT_COLOR_CASE.tableHeaderBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
backgroundColor: headerColor,
|
||||
horizontalBorderColor: borderColor,
|
||||
verticalBorderColor: borderColor
|
||||
},
|
||||
text: {
|
||||
fill: DEFAULT_COLOR_CASE.tableFontColor,
|
||||
@ -47,7 +60,9 @@ export function getCustomTheme(chart) {
|
||||
},
|
||||
dataCell: {
|
||||
cell: {
|
||||
backgroundColor: hexColorToRGBA(DEFAULT_COLOR_CASE.tableItemBgColor, DEFAULT_COLOR_CASE.alpha)
|
||||
backgroundColor: itemColor,
|
||||
horizontalBorderColor: borderColor,
|
||||
verticalBorderColor: borderColor
|
||||
},
|
||||
text: {
|
||||
fill: DEFAULT_COLOR_CASE.tableFontColor,
|
||||
@ -62,17 +77,33 @@ export function getCustomTheme(chart) {
|
||||
// color
|
||||
if (customAttr.color) {
|
||||
const c = JSON.parse(JSON.stringify(customAttr.color))
|
||||
theme.cornerCell.cell.backgroundColor = hexColorToRGBA(c.tableHeaderBgColor, c.alpha)
|
||||
const h_c = hexColorToRGBA(c.tableHeaderBgColor, c.alpha)
|
||||
const i_c = hexColorToRGBA(c.tableItemBgColor, c.alpha)
|
||||
const b_c = c.tableBorderColor ? hexColorToRGBA(c.tableBorderColor, c.alpha) : hexColorToRGBA(DEFAULT_COLOR_CASE.tableBorderColor, c.alpha)
|
||||
theme.splitLine.horizontalBorderColor = b_c
|
||||
theme.splitLine.verticalBorderColor = b_c
|
||||
|
||||
theme.cornerCell.cell.backgroundColor = h_c
|
||||
theme.cornerCell.cell.horizontalBorderColor = b_c
|
||||
theme.cornerCell.cell.verticalBorderColor = b_c
|
||||
theme.cornerCell.bolderText.fill = c.tableFontColor
|
||||
theme.cornerCell.text.fill = c.tableFontColor
|
||||
theme.rowCell.cell.backgroundColor = hexColorToRGBA(c.tableHeaderBgColor, c.alpha)
|
||||
|
||||
theme.rowCell.cell.backgroundColor = h_c
|
||||
theme.rowCell.cell.horizontalBorderColor = b_c
|
||||
theme.rowCell.cell.verticalBorderColor = b_c
|
||||
theme.rowCell.bolderText.fill = c.tableFontColor
|
||||
theme.rowCell.text.fill = c.tableFontColor
|
||||
theme.colCell.cell.backgroundColor = hexColorToRGBA(c.tableHeaderBgColor, c.alpha)
|
||||
|
||||
theme.colCell.cell.backgroundColor = h_c
|
||||
theme.colCell.cell.horizontalBorderColor = b_c
|
||||
theme.colCell.cell.verticalBorderColor = b_c
|
||||
theme.colCell.bolderText.fill = c.tableFontColor
|
||||
theme.colCell.text.fill = c.tableFontColor
|
||||
|
||||
theme.dataCell.cell.backgroundColor = hexColorToRGBA(c.tableItemBgColor, c.alpha)
|
||||
theme.dataCell.cell.backgroundColor = i_c
|
||||
theme.dataCell.cell.horizontalBorderColor = b_c
|
||||
theme.dataCell.cell.verticalBorderColor = b_c
|
||||
theme.dataCell.text.fill = c.tableFontColor
|
||||
}
|
||||
// size
|
||||
|
@ -135,7 +135,7 @@ export default {
|
||||
methods: {
|
||||
initData() {
|
||||
let datas = []
|
||||
if (this.chart.data) {
|
||||
if (this.chart.data && this.chart.data.fields) {
|
||||
this.fields = JSON.parse(JSON.stringify(this.chart.data.fields))
|
||||
const attr = JSON.parse(this.chart.customAttr)
|
||||
this.currentPage.pageSize = parseInt(attr.size.tablePageSize ? attr.size.tablePageSize : 20)
|
||||
|
@ -63,6 +63,9 @@
|
||||
<el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.table_item_font_color')" class="form-item">
|
||||
<el-color-picker v-model="colorForm.tableFontColor" class="color-picker-style" :predefine="predefineColors" @change="changeColorCase" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.table_border_color')" class="form-item">
|
||||
<el-color-picker v-model="colorForm.tableBorderColor" class="color-picker-style" :predefine="predefineColors" @change="changeColorCase" />
|
||||
</el-form-item>
|
||||
<!-- 暂时不支持该功能-->
|
||||
<!-- <el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.stripe')" class="form-item">-->
|
||||
<!-- <el-checkbox v-model="colorForm.tableStripe" @change="changeColorCase">{{ $t('chart.stripe') }}</el-checkbox>-->
|
||||
@ -240,6 +243,8 @@ export default {
|
||||
this.customColor = this.colorForm.colors[0]
|
||||
this.colorIndex = 0
|
||||
}
|
||||
|
||||
this.colorForm.tableBorderColor = this.colorForm.tableBorderColor ? this.colorForm.tableBorderColor : DEFAULT_COLOR_CASE.tableBorderColor
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -230,7 +230,7 @@ export default {
|
||||
valid: value
|
||||
}
|
||||
switchValid(param).then(res => {
|
||||
|
||||
this.requestShort()
|
||||
})
|
||||
},
|
||||
requestShort() {
|
||||
|
Loading…
Reference in New Issue
Block a user