forked from github/dataease
Merge branch 'v1.7' of github.com:dataease/dataease into v1.7
This commit is contained in:
commit
6f7345e859
@ -284,6 +284,7 @@
|
||||
<exclude>static/**/*.woff</exclude>
|
||||
<exclude>static/**/*.woff2</exclude>
|
||||
<exclude>static/**/*.ttf</exclude>
|
||||
<exclude>static/**/*.ico</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
|
||||
@ -294,6 +295,7 @@
|
||||
<include>static/**/*.woff</include>
|
||||
<include>static/**/*.woff2</include>
|
||||
<include>static/**/*.ttf</include>
|
||||
<include>static/**/*.ico</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
@ -416,13 +418,13 @@
|
||||
</move>
|
||||
|
||||
<copy todir="src/main/resources/static/de-app">
|
||||
<fileset dir="../mobile/dist/build/h5">
|
||||
<fileset dir="../mobile/dist">
|
||||
<exclude name="*.html"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
|
||||
<copy file="../mobile/dist/build/h5/index.html" tofile="src/main/resources/templates/app.html" />
|
||||
<copy file="../mobile/dist/index.html" tofile="src/main/resources/templates/app.html" />
|
||||
|
||||
|
||||
</target>
|
||||
|
@ -2,6 +2,7 @@ package io.dataease.plugins.server;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -11,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import io.dataease.commons.exception.DEException;
|
||||
import io.dataease.commons.utils.LogUtil;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
import io.dataease.plugins.xpack.theme.dto.ThemeDto;
|
||||
import io.dataease.plugins.xpack.theme.dto.ThemeItem;
|
||||
@ -42,7 +44,13 @@ public class ThemeServer {
|
||||
themeXpackService.save(request, bodyFile);
|
||||
} catch (Exception e) {
|
||||
LogUtil.error(e.getMessage(), e);
|
||||
DEException.throwException(e);
|
||||
if (ObjectUtils.isNotEmpty(e.getMessage()) && e.getMessage().indexOf("theme_name_repeat") != -1) {
|
||||
DEException.throwException(Translator.get("theme_name_repeat"));
|
||||
} else if (ObjectUtils.isNotEmpty(e.getMessage()) && e.getMessage().indexOf("theme_name_empty") != -1) {
|
||||
DEException.throwException(Translator.get("theme_name_empty"));
|
||||
} else {
|
||||
DEException.throwException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -116,4 +116,6 @@ i18n_rp_exist=Row permission of the same type already exists
|
||||
i18n_field_name_repeat=Field name can't repeat
|
||||
i18n_calc_field_error=Field expression error
|
||||
i18n_cp_exist=Column permission of the same type already exists
|
||||
connection_failed=Connection Failed
|
||||
connection_failed=Connection Failed
|
||||
theme_name_repeat=name of theme has been existed
|
||||
theme_name_empty=name can not be empty
|
@ -116,3 +116,5 @@ i18n_field_name_repeat=字段名不能重复
|
||||
i18n_calc_field_error=字段表达式语法错误
|
||||
i18n_cp_exist=已有同类型的列权限存在
|
||||
connection_failed=连接失败
|
||||
theme_name_repeat=名称已存在
|
||||
theme_name_empty=名称不能为空
|
||||
|
@ -117,3 +117,5 @@ i18n_field_name_repeat=字段名不能重復
|
||||
i18n_calc_field_error=字段表達式語法錯誤
|
||||
i18n_cp_exist=已有同類型的列權限存在
|
||||
connection_failed=連接失敗
|
||||
theme_name_repeat=名稱已存在
|
||||
theme_name_empty=名稱不能為空
|
||||
|
@ -29,6 +29,11 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$route.params.reportId': function() {
|
||||
this.restore()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.restore()
|
||||
},
|
||||
|
@ -101,7 +101,7 @@
|
||||
:id="'component' + item.id"
|
||||
ref="wrapperChild"
|
||||
class="component"
|
||||
:filters="filterMap[item.propValue.viewId]"
|
||||
:filters="filterMap[item.propValue && item.propValue.viewId]"
|
||||
:style="getComponentStyleDefault(item.style)"
|
||||
:prop-value="item.propValue"
|
||||
:element="item"
|
||||
|
@ -64,7 +64,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
if (this.element.options.value) {
|
||||
this.value = this.element.options.value
|
||||
this.value = this.fillValueDerfault()
|
||||
this.search()
|
||||
}
|
||||
},
|
||||
|
@ -99,6 +99,11 @@ class NumberRangeServiceImpl extends WidgetService {
|
||||
return param
|
||||
}
|
||||
}
|
||||
return {
|
||||
component: element,
|
||||
value: [],
|
||||
operator: 'eq'
|
||||
}
|
||||
}
|
||||
}
|
||||
const numberRangeServiceImpl = new NumberRangeServiceImpl()
|
||||
|
@ -68,7 +68,7 @@ class TextInputServiceImpl extends WidgetService {
|
||||
})
|
||||
}
|
||||
getParam(element) {
|
||||
const value = element.options.value
|
||||
const value = this.fillValueDerfault(element)
|
||||
const param = {
|
||||
component: element,
|
||||
value: !value ? [] : Array.isArray(value) ? value : [value],
|
||||
@ -76,6 +76,11 @@ class TextInputServiceImpl extends WidgetService {
|
||||
}
|
||||
return param
|
||||
}
|
||||
fillValueDerfault(element) {
|
||||
const defaultV = element.options.value === null ? '' : element.options.value.toString()
|
||||
if (defaultV === null || typeof defaultV === 'undefined' || defaultV === '' || defaultV === '[object Object]') return null
|
||||
return defaultV.split(',')[0]
|
||||
}
|
||||
}
|
||||
const textInputServiceImpl = new TextInputServiceImpl()
|
||||
export default textInputServiceImpl
|
||||
|
@ -125,7 +125,8 @@ class TimeDateRangeServiceImpl extends WidgetService {
|
||||
getEndQuarter() {
|
||||
var now = new Date()
|
||||
var nowMonth = now.getMonth()
|
||||
const endMonth = Math.floor((nowMonth / 3)) * 3 + (nowMonth % 3)
|
||||
const quar = Math.floor(nowMonth / 3)
|
||||
const endMonth = quar * 3 + 2
|
||||
const days = (endMonth === 5 || endMonth === 8) ? 30 : 31
|
||||
return new Date(now.getFullYear(), endMonth, days)
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
<el-form-item :label="$t('chart.text_color')" class="form-item">
|
||||
<el-color-picker v-model="labelForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeLabelAttr" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="chart.type && chart.type !== 'liquid' && !chart.type.includes('line') && chart.type !== 'treemap'" :label="$t('chart.label_position')" class="form-item">
|
||||
<el-form-item v-show="chart.type && chart.type !== 'liquid' && !chart.type.includes('line') && chart.type !== 'treemap' && chart.type !== 'map'" :label="$t('chart.label_position')" class="form-item">
|
||||
<el-select v-model="labelForm.position" :placeholder="$t('chart.label_position')" @change="changeLabelAttr">
|
||||
<el-option v-for="option in labelPosition" :key="option.value" :label="option.name" :value="option.value" />
|
||||
</el-select>
|
||||
|
@ -550,6 +550,7 @@ export default {
|
||||
this.$refs['tableForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
view.title = view.name
|
||||
view.sceneId = view.pid
|
||||
post('/chart/view/save', view).then(response => {
|
||||
this.closeTable()
|
||||
this.$message({
|
||||
|
@ -426,6 +426,7 @@ export default {
|
||||
this.$refs['tableForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
table.isRename = true
|
||||
table.sceneId = table.pid
|
||||
alter(table).then(response => {
|
||||
this.closeTable()
|
||||
this.$message({
|
||||
|
@ -368,7 +368,7 @@ export default {
|
||||
}
|
||||
|
||||
if (this.canvasStyleData.openCommonStyle) {
|
||||
if (this.canvasStyleData.panel.backgroundType === 'image' && this.canvasStyleData.panel.imageUrl) {
|
||||
if (this.canvasStyleData.panel.backgroundType === 'image' && typeof (this.canvasStyleData.panel.imageUrl) === 'string') {
|
||||
style = {
|
||||
background: `url(${this.canvasStyleData.panel.imageUrl}) no-repeat`,
|
||||
...style
|
||||
|
@ -54,9 +54,9 @@ export default {
|
||||
},
|
||||
{
|
||||
head: this.$t('wizard.teaching_video'),
|
||||
content: '<a href="https://live.vhall.com/v3/lives/subscribe/533874762" target="_blank"><span style="line-height: 30px">40分钟带你玩转 DataEase </span></a><br><a href="https://live.vhall.com/v3/lives/subscribe/903960272" target="_blank">用DataEase开源工具可视化 ClickHouse数据</a>',
|
||||
content: '<a href="https://www.bilibili.com/video/BV1pb4y1E7Zg?spm_id_from=333.999.0.0" target="_blank"><span style="line-height: 30px">【DataEase教学视频】视图钻取 </span></a><br><a href="https://www.bilibili.com/video/BV1Xq4y187H9?spm_id_from=333.999.0.0" target="_blank">【DataEase教学视频】移动端布局设置</a>',
|
||||
bottom: '',
|
||||
href: 'https://e.vhall.com/v3/user/home/45637107',
|
||||
href: 'https://space.bilibili.com/510493147/channel/collectiondetail?sid=150431',
|
||||
component: 'CardDetail'
|
||||
},
|
||||
{
|
||||
|
2
mobile/.gitignore
vendored
2
mobile/.gitignore
vendored
@ -6,7 +6,7 @@ yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json
|
||||
tests/**/coverage/
|
||||
|
||||
.automator/
|
||||
# Editor directories and files
|
||||
.hbuilderx
|
||||
.idea
|
||||
|
@ -7,7 +7,7 @@
|
||||
"build": "npm run build:h5",
|
||||
"build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",
|
||||
"build:custom": "cross-env NODE_ENV=production uniapp-cli custom",
|
||||
"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",
|
||||
"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 UNI_OUTPUT_DIR=dist vue-cli-service uni-build",
|
||||
"build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build",
|
||||
"build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build",
|
||||
"build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build",
|
||||
|
Loading…
Reference in New Issue
Block a user