提交 85059c5c authored 作者: taojinlong's avatar taojinlong

Merge branch 'dev' of github.com:dataease/dataease into dev

...@@ -384,7 +384,7 @@ ...@@ -384,7 +384,7 @@
<includes> <includes>
<include>**/*</include> <include>**/*</include>
</includes> </includes>
<filtering>true</filtering> <filtering>false</filtering>
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
...@@ -414,11 +414,11 @@ ...@@ -414,11 +414,11 @@
<skipTests>true</skipTests> <skipTests>true</skipTests>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <!--<plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version> <version>2.4.3</version>
</plugin> </plugin>-->
<plugin> <plugin>
<artifactId>maven-clean-plugin</artifactId> <artifactId>maven-clean-plugin</artifactId>
......
package io.dataease.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${geo.rootpath:file:/opt/dataease/data/feature/full/}")
private String geoPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/geo/**").addResourceLocations(geoPath);
}
}
...@@ -494,7 +494,12 @@ public class ChartViewService { ...@@ -494,7 +494,12 @@ public class ChartViewService {
} }
} }
if (StringUtils.equals(a.toString(), x.get(i))) { if (StringUtils.equals(a.toString(), x.get(i))) {
ss.getData().set(i, new BigDecimal(row[xAxis.size() + extStack.size()])); if (row.length > xAxis.size() + extStack.size()) {
String s = row[xAxis.size() + extStack.size()];
if (StringUtils.isNotEmpty(s)) {
ss.getData().set(i, new BigDecimal(s));
}
}
break; break;
} }
} }
......
...@@ -8,9 +8,17 @@ export const areaMapping = () => { ...@@ -8,9 +8,17 @@ export const areaMapping = () => {
}) })
} }
// export function geoJson(areaCode) {
// return request({
// url: '/api/map/resourceFull/' + areaCode,
// method: 'get',
// loading: true
// })
// }
export function geoJson(areaCode) { export function geoJson(areaCode) {
return request({ return request({
url: '/api/map/resourceFull/' + areaCode, url: '/geo/' + areaCode + '_full.json',
method: 'get', method: 'get',
loading: true loading: true
}) })
......
...@@ -19,9 +19,7 @@ ...@@ -19,9 +19,7 @@
@mouseenter="enter" @mouseenter="enter"
@mouseleave="leave" @mouseleave="leave"
> >
<setting-menu style="right:5px;position: absolute;z-index: 2"> <edit-bar v-if="active||linkageSettingStatus" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" />
<i slot="icon" class="icon iconfont icon-shezhi" />
</setting-menu>
<div <div
v-for="(handlei, indexi) in actualHandles" v-for="(handlei, indexi) in actualHandles"
:key="indexi" :key="indexi"
...@@ -46,11 +44,12 @@ let eventsFor = events.mouse ...@@ -46,11 +44,12 @@ let eventsFor = events.mouse
import eventBus from '@/components/canvas/utils/eventBus' import eventBus from '@/components/canvas/utils/eventBus'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import SettingMenu from '@/components/canvas/components/Editor/SettingMenu' import SettingMenu from '@/components/canvas/components/Editor/SettingMenu'
import EditBar from '@/components/canvas/components/Editor/EditBar'
export default { export default {
replace: true, replace: true,
name: 'VueDragResizeRotate', name: 'VueDragResizeRotate',
components: { SettingMenu }, components: { EditBar },
props: { props: {
className: { className: {
type: String, type: String,
...@@ -464,7 +463,8 @@ export default { ...@@ -464,7 +463,8 @@ export default {
'curComponent', 'curComponent',
'editor', 'editor',
'curCanvasScale', 'curCanvasScale',
'canvasStyleData' 'canvasStyleData',
'linkageSettingStatus'
]) ])
}, },
watch: { watch: {
...@@ -1540,6 +1540,9 @@ export default { ...@@ -1540,6 +1540,9 @@ export default {
removeEvent(document.documentElement, 'mouseup', this.handleUp) removeEvent(document.documentElement, 'mouseup', this.handleUp)
removeEvent(document.documentElement, 'touchend touchcancel', this.deselect) removeEvent(document.documentElement, 'touchend touchcancel', this.deselect)
removeEvent(window, 'resize', this.checkParentSize) removeEvent(window, 'resize', this.checkParentSize)
},
showViewDetails() {
this.$emit('showViewDetails')
} }
} }
...@@ -1628,26 +1631,26 @@ export default { ...@@ -1628,26 +1631,26 @@ export default {
user-select: none; user-select: none;
} }
.mouseOn >>> .icon-shezhi{ /*.mouseOn >>> .icon-shezhi{*/
z-index: 2; /* z-index: 2;*/
display:block!important; /* display:block!important;*/
} /*}*/
.vdr > i{ /*.vdr > i{*/
right: 5px; /* right: 5px;*/
color: gray; /* color: gray;*/
position: absolute; /* position: absolute;*/
} /*}*/
.vdr >>> i:hover { /*.vdr >>> i:hover {*/
color: red; /* color: red;*/
} /*}*/
.vdr:hover >>> i { /*.vdr:hover >>> i {*/
z-index: 2; /* z-index: 2;*/
display:block; /* display:block;*/
} /*}*/
.vdr>>>.icon-shezhi { /*.vdr>>>.icon-shezhi {*/
display:none /* display:none*/
} /*}*/
</style> </style>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
@click="handleClick" @click="handleClick"
@mousedown="elementMouseDown" @mousedown="elementMouseDown"
> >
<edit-bar v-if="config === curComponent" @showViewDetails="showViewDetails" /> <edit-bar v-if="config === curComponent" :element="config" @showViewDetails="showViewDetails" />
<de-out-widget <de-out-widget
v-if="config.type==='custom'" v-if="config.type==='custom'"
:id="'component' + config.id" :id="'component' + config.id"
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
/> />
<component <component
ref="wrapperChild"
:is="config.component" :is="config.component"
v-else v-else
ref="wrapperChild"
:out-style="config.style" :out-style="config.style"
:style="getComponentStyleDefault(config.style)" :style="getComponentStyleDefault(config.style)"
:prop-value="config.propValue" :prop-value="config.propValue"
...@@ -112,8 +112,8 @@ export default { ...@@ -112,8 +112,8 @@ export default {
e.stopPropagation() e.stopPropagation()
this.$store.commit('setCurComponent', { component: this.config, index: this.index }) this.$store.commit('setCurComponent', { component: this.config, index: this.index })
}, },
showViewDetails(){ showViewDetails() {
this.$refs.wrapperChild.openChartDetailsDialog(); this.$refs.wrapperChild.openChartDetailsDialog()
} }
} }
} }
......
<template> <template>
<div class="bar-main"> <div class="bar-main">
<i v-if="curComponent.type==='view'" class="icon iconfont icon-fangda" @click.stop="showViewDetails" /> <div v-if="linkageSettingStatus" style="margin-right: -1px;width: 18px">
<i v-if="activeModel==='edit'" class="icon iconfont icon-shezhi" @click.stop="showViewDetails" /> <el-checkbox v-model="linkageActiveStatus" />
<i v-if="linkageActiveStatus" class="icon iconfont icon-edit" @click.stop="linkageEdit" />
</div>
<div v-else>
<setting-menu v-if="activeModel==='edit'" style="float: right;height: 24px!important;">
<i slot="icon" class="icon iconfont icon-shezhi" />
</setting-menu>
<i v-if="activeModel==='edit'&&curComponent&&editFilter.includes(curComponent.type)" class="icon iconfont icon-edit" @click.stop="edit" />
<i v-if="curComponent.type==='view'" class="icon iconfont icon-fangda" @click.stop="showViewDetails" />
</div>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from 'vuex' import { mapState } from 'vuex'
import eventBus from '@/components/canvas/utils/eventBus' import eventBus from '@/components/canvas/utils/eventBus'
import bus from '@/utils/bus'
import SettingMenu from '@/components/canvas/components/Editor/SettingMenu'
export default { export default {
components: { SettingMenu },
props: { props: {
element: {
type: Object,
required: true
},
active: { active: {
type: Boolean, type: Boolean,
required: false, required: false,
...@@ -27,6 +44,7 @@ export default { ...@@ -27,6 +44,7 @@ export default {
data() { data() {
return { return {
componentType: null, componentType: null,
linkageActiveStatus: false,
editFilter: [ editFilter: [
'view', 'view',
'custom' 'custom'
...@@ -39,11 +57,34 @@ export default { ...@@ -39,11 +57,34 @@ export default {
'menuShow', 'menuShow',
'curComponent', 'curComponent',
'componentData', 'componentData',
'canvasStyleData' 'canvasStyleData',
'linkageSettingStatus'
]), ]),
methods: { methods: {
showViewDetails() { showViewDetails() {
this.$emit('showViewDetails') this.$emit('showViewDetails')
},
edit() {
// 编辑时临时保存 当前修改的画布
this.$store.dispatch('panel/setComponentDataTemp', JSON.stringify(this.componentData))
this.$store.dispatch('panel/setCanvasStyleDataTemp', JSON.stringify(this.canvasStyleData))
if (this.curComponent.type === 'view') {
this.$store.dispatch('chart/setViewId', null)
this.$store.dispatch('chart/setViewId', this.curComponent.propValue.viewId)
bus.$emit('PanelSwitchComponent', { name: 'ChartEdit', param: { 'id': this.curComponent.propValue.viewId, 'optType': 'edit' }})
}
if (this.curComponent.type === 'custom') {
bus.$emit('component-dialog-edit')
}
// 编辑样式组件
if (this.curComponent.type === 'v-text' || this.curComponent.type === 'rect-shape') {
bus.$emit('component-dialog-style')
}
},
linkageEdit() {
} }
} }
} }
......
...@@ -153,6 +153,7 @@ export default { ...@@ -153,6 +153,7 @@ export default {
this.searchCount++ this.searchCount++
}, refreshTime) }, refreshTime)
eventBus.$on('openChartDetailsDialog', this.openChartDetailsDialog) eventBus.$on('openChartDetailsDialog', this.openChartDetailsDialog)
this.$store.commit('setLinkageSettingStatus', false)
}, },
beforeDestroy() { beforeDestroy() {
clearInterval(this.timer) clearInterval(this.timer)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
@mousedown="handleMouseDown" @mousedown="handleMouseDown"
> >
<!-- 网格线 --> <!-- 网格线 -->
<Grid v-if="canvasStyleData.auxiliaryMatrix" :matrix-style="matrixStyle" /> <Grid v-if="canvasStyleData.auxiliaryMatrix&&!linkageSettingStatus" :matrix-style="matrixStyle" />
<!--页面组件列表展示--> <!--页面组件列表展示-->
<de-drag <de-drag
v-for="(item, index) in componentData" v-for="(item, index) in componentData"
...@@ -29,12 +29,15 @@ ...@@ -29,12 +29,15 @@
:snap="true" :snap="true"
:snap-tolerance="2" :snap-tolerance="2"
:change-style="customStyle" :change-style="customStyle"
:draggable="!linkageSettingStatus"
@refLineParams="getRefLineParams" @refLineParams="getRefLineParams"
@showViewDetails="showViewDetails(index)"
> >
<component <component
:is="item.component" :is="item.component"
v-if="item.type==='v-text'" v-if="item.type==='v-text'"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild"
class="component" class="component"
:style="getComponentStyleDefault(item.style)" :style="getComponentStyleDefault(item.style)"
:prop-value="item.propValue" :prop-value="item.propValue"
...@@ -69,6 +72,7 @@ ...@@ -69,6 +72,7 @@
:is="item.component" :is="item.component"
v-else-if="item.type==='other'" v-else-if="item.type==='other'"
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild"
class="component" class="component"
:style="getComponentStyle(item.style)" :style="getComponentStyle(item.style)"
:prop-value="item.propValue" :prop-value="item.propValue"
...@@ -80,6 +84,7 @@ ...@@ -80,6 +84,7 @@
:is="item.component" :is="item.component"
v-else v-else
:id="'component' + item.id" :id="'component' + item.id"
ref="wrapperChild"
class="component" class="component"
:style="getComponentStyleDefault(item.style)" :style="getComponentStyleDefault(item.style)"
:prop-value="item.propValue" :prop-value="item.propValue"
...@@ -245,7 +250,8 @@ export default { ...@@ -245,7 +250,8 @@ export default {
'componentData', 'componentData',
'curComponent', 'curComponent',
'canvasStyleData', 'canvasStyleData',
'editor' 'editor',
'linkageSettingStatus'
]) ])
}, },
watch: { watch: {
...@@ -275,6 +281,7 @@ export default { ...@@ -275,6 +281,7 @@ export default {
// 第一次变化 不需要 重置边界 待改进 // 第一次变化 不需要 重置边界 待改进
if (this.changeIndex++ > 0) { if (this.changeIndex++ > 0) {
this.resizeParentBounds() this.resizeParentBounds()
this.$store.state.styleChangeTimes++
} }
// this.changeScale() // this.changeScale()
}, },
...@@ -602,6 +609,9 @@ export default { ...@@ -602,6 +609,9 @@ export default {
}, },
exportExcel() { exportExcel() {
this.$refs['userViewDialog'].exportExcel() this.$refs['userViewDialog'].exportExcel()
},
showViewDetails(index) {
this.$refs.wrapperChild[index].openChartDetailsDialog()
} }
} }
} }
......
<template> <template>
<div> <div>
<div class="toolbar"> <!-- linkageActiveStatus:{{ linkageActiveStatus }}-->
<div v-if="linkageSettingStatus" class="toolbar">
<span style="float: right;">
<el-button size="mini" @click="saveLinkage">
{{ $t('commons.confirm') }}
</el-button>
<el-button size="mini" @click="cancelLinkage">
{{ $t('commons.cancel') }}
</el-button>
</span>
</div>
<div v-else class="toolbar">
<div class="canvas-config" style="margin-right: 10px"> <div class="canvas-config" style="margin-right: 10px">
<el-switch v-model="canvasStyleData.auxiliaryMatrix" :width="35" name="auxiliaryMatrix" /> <el-switch v-model="canvasStyleData.auxiliaryMatrix" :width="35" name="auxiliaryMatrix" />
...@@ -125,7 +136,8 @@ export default { ...@@ -125,7 +136,8 @@ export default {
'curComponent', 'curComponent',
'changeTimes', 'changeTimes',
'snapshotIndex', 'snapshotIndex',
'lastSaveSnapshotIndex' 'lastSaveSnapshotIndex',
'linkageSettingStatus'
]), ]),
created() { created() {
...@@ -302,6 +314,15 @@ export default { ...@@ -302,6 +314,15 @@ export default {
}, },
closeNotSave() { closeNotSave() {
this.close() this.close()
},
saveLinkage() {
this.cancelLinkageSettingStatus()
},
cancelLinkage() {
this.cancelLinkageSettingStatus()
},
cancelLinkageSettingStatus() {
this.$store.commit('setLinkageSettingStatus', false)
} }
} }
} }
......
...@@ -127,7 +127,7 @@ export default { ...@@ -127,7 +127,7 @@ export default {
tokenError: 'Token error, please login again', tokenError: 'Token error, please login again',
username_error: 'Please enter the correct ID', username_error: 'Please enter the correct ID',
password_error: 'The password can not be less than 8 digits', password_error: 'The password can not be less than 8 digits',
login_again: 'Login again' re_login: 'Login again'
}, },
commons: { commons: {
no_target_permission: 'No permission', no_target_permission: 'No permission',
...@@ -754,6 +754,7 @@ export default { ...@@ -754,6 +754,7 @@ export default {
chart_funnel: 'Funnel', chart_funnel: 'Funnel',
chart_radar: 'Radar', chart_radar: 'Radar',
chart_gauge: 'Gauge', chart_gauge: 'Gauge',
chart_map: 'Map',
dateStyle: 'Date Style', dateStyle: 'Date Style',
datePattern: 'Date Format', datePattern: 'Date Format',
y: 'Year', y: 'Year',
...@@ -822,6 +823,11 @@ export default { ...@@ -822,6 +823,11 @@ export default {
drag_block_funnel_split: 'Funnel Split', drag_block_funnel_split: 'Funnel Split',
drag_block_radar_length: 'Branch Length', drag_block_radar_length: 'Branch Length',
drag_block_radar_label: 'Branch Label', drag_block_radar_label: 'Branch Label',
stack_item: 'Stack Item',
map_range: 'Map range',
select_map_range: 'Please select map range',
area: 'Area',
placeholder_field: 'Drag Field To Here',
axis_label_rotate: 'Label Rotate' axis_label_rotate: 'Label Rotate'
}, },
dataset: { dataset: {
...@@ -976,7 +982,19 @@ export default { ...@@ -976,7 +982,19 @@ export default {
right_join: 'RIGHT JOIN', right_join: 'RIGHT JOIN',
inner_join: 'INNER JOIN', inner_join: 'INNER JOIN',
full_join: 'FULL JOIN', full_join: 'FULL JOIN',
can_not_union_diff_datasource: 'Union dataset must have same data source' can_not_union_diff_datasource: 'Union dataset must have same data source',
operator: 'Operator',
d_q_trans: 'Dimension/Quota Transform',
add_calc_field: 'Create calc field',
input_name: 'Please input name',
field_exp: 'Field Expression',
data_type: 'Data Type',
click_ref_field: 'Click Quote Field',
click_ref_function: 'Click Quote Function',
field_manage: 'Field Manage',
edit_calc_field: 'Edit calc field',
calc_field: 'Calc Field',
show_sql: 'Show SQL'
}, },
datasource: { datasource: {
datasource: 'Data Source', datasource: 'Data Source',
...@@ -1290,5 +1308,54 @@ export default { ...@@ -1290,5 +1308,54 @@ export default {
i18n_msg_type_dataset_sync_faild: 'Dataset synchronization failed', i18n_msg_type_dataset_sync_faild: 'Dataset synchronization failed',
i18n_msg_type_all: 'All type', i18n_msg_type_all: 'All type',
channel_inner_msg: 'On site news' channel_inner_msg: 'On site news'
},
denumberrange: {
label: 'Number range',
split_placeholder: 'To',
please_key_min: 'Please key min value',
please_key_max: 'Please key max value',
out_of_min: 'The min value cannot be less than the min integer -2³²',
out_of_max: 'The max value cannot be more than the max integer 2³²-1',
must_int: 'Please key interger',
min_out_max: 'The min value must be less than the max value',
max_out_min: 'The max value must be more than the min value'
},
denumberselect: {
label: 'Number selector',
placeholder: 'Please select'
},
deinputsearch: {
label: 'Text search',
placeholder: 'Please key keyword'
},
detextselect: {
label: 'Text selector',
placeholder: 'Please select'
},
detextgridselect: {
label: 'Text list',
placeholder: 'Please select'
},
denumbergridselect: {
label: 'Number list',
placeholder: 'Please select'
},
dedaterange: {
label: 'Date range',
to_placeholder: 'End date',
from_placeholder: 'Start date',
split_placeholder: 'To'
},
dedate: {
label: 'Date',
placeholder: 'Please select date'
},
deyearmonth: {
label: 'Month',
placeholder: 'Please select month'
},
deyear: {
label: 'Year',
placeholder: 'Please select year'
} }
} }
...@@ -109,25 +109,25 @@ export default { ...@@ -109,25 +109,25 @@ export default {
navbar: { navbar: {
dashboard: '首頁', dashboard: '首頁',
github: '項目地址', github: '項目地址',
logOut: '退出登', logOut: '退出登',
profile: '個人中心', profile: '個人中心',
theme: '換膚', theme: '換膚',
size: '佈局大小' size: '佈局大小'
}, },
login: { login: {
title: '系統登', title: '系統登',
welcome: '歡迎使用', welcome: '歡迎使用',
logIn: '登', logIn: '登',
username: '帳號', username: '帳號',
password: '密碼', password: '密碼',
any: '任意字符', any: '任意字符',
thirdparty: '第三方登', thirdparty: '第三方登',
thirdpartyTips: '本地不能模擬,請結合自己業務進行模擬!!!', thirdpartyTips: '本地不能模擬,請結合自己業務進行模擬!!!',
expires: '登錄信息過期,請重新登錄', expires: '登陸信息過期,請重新登陸',
tokenError: '信息錯誤,請重新登', tokenError: '信息錯誤,請重新登',
username_error: '請輸入正確的 ID', username_error: '請輸入正確的 ID',
password_error: '密碼不小於 8 位', password_error: '密碼不小於 8 位',
login_again: '重新登錄' re_login: '重新登陸'
}, },
commons: { commons: {
no_target_permission: '沒有權限', no_target_permission: '沒有權限',
...@@ -184,7 +184,7 @@ export default { ...@@ -184,7 +184,7 @@ export default {
prompt: '提示', prompt: '提示',
operating: '操作', operating: '操作',
input_limit: '長度在 {0} 到 {1} 個字符', input_limit: '長度在 {0} 到 {1} 個字符',
login: '登', login: '登',
welcome: '一站式開源數據分析平臺', welcome: '一站式開源數據分析平臺',
username: '姓名', username: '姓名',
password: '密碼', password: '密碼',
...@@ -256,7 +256,7 @@ export default { ...@@ -256,7 +256,7 @@ export default {
remove: '移除', remove: '移除',
remove_cancel: '移除取消', remove_cancel: '移除取消',
remove_success: '移除成功', remove_success: '移除成功',
tips: '認證信息已過期,請重新登', tips: '認證信息已過期,請重新登',
not_performed_yet: '尚未執行', not_performed_yet: '尚未執行',
incorrect_input: '輸入內容不正確', incorrect_input: '輸入內容不正確',
delete_confirm: '請輸入以下內容,確認刪除:', delete_confirm: '請輸入以下內容,確認刪除:',
...@@ -754,6 +754,7 @@ export default { ...@@ -754,6 +754,7 @@ export default {
chart_funnel: '漏鬥圖', chart_funnel: '漏鬥圖',
chart_radar: '雷達圖', chart_radar: '雷達圖',
chart_gauge: '儀表盤', chart_gauge: '儀表盤',
chart_map: '地圖',
dateStyle: '日期顯示', dateStyle: '日期顯示',
datePattern: '日期格式', datePattern: '日期格式',
y: '年', y: '年',
...@@ -822,6 +823,11 @@ export default { ...@@ -822,6 +823,11 @@ export default {
drag_block_funnel_split: '漏鬥分層', drag_block_funnel_split: '漏鬥分層',
drag_block_radar_length: '分支長度', drag_block_radar_length: '分支長度',
drag_block_radar_label: '分支標簽', drag_block_radar_label: '分支標簽',
map_range: '地圖範圍',
select_map_range: '請選擇地圖範圍',
area: '地區',
stack_item: '堆疊項',
placeholder_field: '拖動字段至此處',
axis_label_rotate: '標簽角度' axis_label_rotate: '標簽角度'
}, },
dataset: { dataset: {
...@@ -976,7 +982,19 @@ export default { ...@@ -976,7 +982,19 @@ export default {
right_join: '右連接', right_join: '右連接',
inner_join: '內連接', inner_join: '內連接',
full_join: '全連接', full_join: '全連接',
can_not_union_diff_datasource: '被關聯數據集必須與當前數據集的數據源一致' can_not_union_diff_datasource: '被關聯數據集必須與當前數據集的數據源一致',
operator: '操作',
d_q_trans: '維度/指標轉換',
add_calc_field: '新建计算字段',
input_name: '請輸入名稱',
field_exp: '字段表達式',
data_type: '數據類型',
click_ref_field: '點擊引用字段',
click_ref_function: '點擊引用函數',
field_manage: '字段管理',
edit_calc_field: '編輯計算字段',
calc_field: '計算字段',
show_sql: '顯示SQL'
}, },
datasource: { datasource: {
datasource: '數據源', datasource: '數據源',
...@@ -1129,7 +1147,7 @@ export default { ...@@ -1129,7 +1147,7 @@ export default {
lineHeight: '行高', lineHeight: '行高',
letterSpacing: '字間距', letterSpacing: '字間距',
textAlign: '左右對齊', textAlign: '左右對齊',
opacity: '透明度', opacity: '透明度',
verticalAlign: '上下對齊', verticalAlign: '上下對齊',
text_align_left: '左對齊', text_align_left: '左對齊',
text_align_center: '左右居中', text_align_center: '左右居中',
...@@ -1168,9 +1186,9 @@ export default { ...@@ -1168,9 +1186,9 @@ export default {
}, },
display: { display: {
logo: '頭部系統 Logo', logo: '頭部系統 Logo',
loginLogo: '登頁面頭部 Logo', loginLogo: '登頁面頭部 Logo',
loginImage: '登頁面右側圖片', loginImage: '登頁面右側圖片',
loginTitle: '登頁面標題', loginTitle: '登頁面標題',
title: '系統名稱', title: '系統名稱',
advice_size: '建議圖片大小' advice_size: '建議圖片大小'
}, },
...@@ -1290,5 +1308,54 @@ export default { ...@@ -1290,5 +1308,54 @@ export default {
i18n_msg_type_dataset_sync_faild: '數據集同步失敗', i18n_msg_type_dataset_sync_faild: '數據集同步失敗',
i18n_msg_type_all: '全部類型', i18n_msg_type_all: '全部類型',
channel_inner_msg: '站內消息' channel_inner_msg: '站內消息'
},
denumberrange: {
label: '數值區間',
split_placeholder: '至',
please_key_min: '請輸入最小值',
please_key_max: '請輸入最大值',
out_of_min: '最小值不能小于最小整數-2³²',
out_of_max: '最大值不能大于最大整數2³²-1',
must_int: '請輸入整數',
min_out_max: '最小值必須小于最大值',
max_out_min: '最大值必須大于最小值'
},
denumberselect: {
label: '數字下拉',
placeholder: '請選擇'
},
deinputsearch: {
label: '文本搜索',
placeholder: '請輸入關鍵字'
},
detextselect: {
label: '文本下拉',
placeholder: '請選擇'
},
detextgridselect: {
label: '文本列表',
placeholder: '請選擇'
},
denumbergridselect: {
label: '數字列表',
placeholder: '請選擇'
},
dedaterange: {
label: '日期範圍',
to_placeholder: '結束日期',
from_placeholder: '開始日期',
split_placeholder: '至'
},
dedate: {
label: '日期',
placeholder: '請選擇日期'
},
deyearmonth: {
label: '年月',
placeholder: '請選擇年月'
},
deyear: {
label: '年份',
placeholder: '請選擇年份'
} }
} }
...@@ -127,7 +127,7 @@ export default { ...@@ -127,7 +127,7 @@ export default {
tokenError: '登陆信息错误,请重新登录', tokenError: '登陆信息错误,请重新登录',
username_error: '请输入正确的 ID', username_error: '请输入正确的 ID',
password_error: '密码不小于 8 位', password_error: '密码不小于 8 位',
login_again: '重新登录' re_login: '重新登录'
}, },
commons: { commons: {
no_target_permission: '没有权限', no_target_permission: '没有权限',
...@@ -754,6 +754,7 @@ export default { ...@@ -754,6 +754,7 @@ export default {
chart_funnel: '漏斗图', chart_funnel: '漏斗图',
chart_radar: '雷达图', chart_radar: '雷达图',
chart_gauge: '仪表盘', chart_gauge: '仪表盘',
chart_map: '地图',
dateStyle: '日期显示', dateStyle: '日期显示',
datePattern: '日期格式', datePattern: '日期格式',
y: '年', y: '年',
...@@ -822,6 +823,11 @@ export default { ...@@ -822,6 +823,11 @@ export default {
drag_block_funnel_split: '漏斗分层', drag_block_funnel_split: '漏斗分层',
drag_block_radar_length: '分支长度', drag_block_radar_length: '分支长度',
drag_block_radar_label: '分支标签', drag_block_radar_label: '分支标签',
map_range: '地图范围',
select_map_range: '请选择地图范围',
area: '地区',
stack_item: '堆叠项',
placeholder_field: '拖动字段至此处',
axis_label_rotate: '标签角度' axis_label_rotate: '标签角度'
}, },
dataset: { dataset: {
...@@ -976,7 +982,19 @@ export default { ...@@ -976,7 +982,19 @@ export default {
right_join: '右连接', right_join: '右连接',
inner_join: '内连接', inner_join: '内连接',
full_join: '全连接', full_join: '全连接',
can_not_union_diff_datasource: '被关联数据集必须与当前数据集的数据源一致' can_not_union_diff_datasource: '被关联数据集必须与当前数据集的数据源一致',
operator: '操作',
d_q_trans: '维度/指标转换',
add_calc_field: '新建计算字段',
input_name: '请输入名称',
field_exp: '字段表达式',
data_type: '数据类型',
click_ref_field: '点击引用字段',
click_ref_function: '点击引用函数',
field_manage: '字段管理',
edit_calc_field: '编辑计算字段',
calc_field: '计算字段',
show_sql: '显示SQL'
}, },
datasource: { datasource: {
datasource: '数据源', datasource: '数据源',
...@@ -1131,7 +1149,7 @@ export default { ...@@ -1131,7 +1149,7 @@ export default {
lineHeight: '行高', lineHeight: '行高',
letterSpacing: '字间距', letterSpacing: '字间距',
textAlign: '左右对齐', textAlign: '左右对齐',
opacity: '透明度', opacity: '透明度',
verticalAlign: '上下对齐', verticalAlign: '上下对齐',
text_align_left: '左对齐', text_align_left: '左对齐',
text_align_center: '左右居中', text_align_center: '左右居中',
...@@ -1293,5 +1311,54 @@ export default { ...@@ -1293,5 +1311,54 @@ export default {
i18n_msg_type_dataset_sync_faild: '数据集同步失败', i18n_msg_type_dataset_sync_faild: '数据集同步失败',
i18n_msg_type_all: '全部类型', i18n_msg_type_all: '全部类型',
channel_inner_msg: '站内消息' channel_inner_msg: '站内消息'
},
denumberrange: {
label: '数值区间',
split_placeholder: '至',
please_key_min: '请输入最小值',
please_key_max: '请输入最大值',
out_of_min: '最小值不能小于最小整数-2³²',
out_of_max: '最大值不能大于最大整数2³²-1',
must_int: '请输入整数',
min_out_max: '最小值必须小于最大值',
max_out_min: '最大值必须大于最小值'
},
denumberselect: {
label: '数字下拉',
placeholder: '请选择'
},
deinputsearch: {
label: '文本搜索',
placeholder: '请输入关键字'
},
detextselect: {
label: '文本下拉',
placeholder: '请选择'
},
detextgridselect: {
label: '文本列表',
placeholder: '请选择'
},
denumbergridselect: {
label: '数字列表',
placeholder: '请选择'
},
dedaterange: {
label: '日期范围',
to_placeholder: '结束日期',
from_placeholder: '开始日期',
split_placeholder: '至'
},
dedate: {
label: '日期',
placeholder: '请选择日期'
},
deyearmonth: {
label: '年月',
placeholder: '请选择年月'
},
deyear: {
label: '年份',
placeholder: '请选择年份'
} }
} }
...@@ -16,7 +16,7 @@ const LinkTokenKey = Config.LinkTokenKey ...@@ -16,7 +16,7 @@ const LinkTokenKey = Config.LinkTokenKey
const service = axios.create({ const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests // withCredentials: true, // send cookies when cross-domain requests
timeout: 20000 // request timeout timeout: 10000 // request timeout
}) })
// request interceptor // request interceptor
...@@ -52,6 +52,10 @@ service.interceptors.request.use( ...@@ -52,6 +52,10 @@ service.interceptors.request.use(
} }
) )
// const defaultOptions = {
// confirmButtonText: i18n.t('login.re_login')
// }
const checkAuth = response => { const checkAuth = response => {
// 请根据实际需求修改 // 请根据实际需求修改
...@@ -63,7 +67,7 @@ const checkAuth = response => { ...@@ -63,7 +67,7 @@ const checkAuth = response => {
location.reload() location.reload()
}) })
}, { }, {
confirmButtonText: i18n.t('login.login_again'), confirmButtonText: i18n.t('login.re_login'),
showClose: false showClose: false
}) })
} }
...@@ -75,7 +79,7 @@ const checkAuth = response => { ...@@ -75,7 +79,7 @@ const checkAuth = response => {
location.reload() location.reload()
}) })
}, { }, {
confirmButtonText: i18n.t('login.login_again'), confirmButtonText: i18n.t('login.re_login'),
showClose: false showClose: false
}) })
} }
......
...@@ -113,13 +113,16 @@ export default { ...@@ -113,13 +113,16 @@ export default {
} }
geoJson(customAttr.areaCode).then(res => { geoJson(customAttr.areaCode).then(res => {
this.initMapChart(res.data, chart) // this.initMapChart(res.data, chart)
this.initMapChart(res, chart)
this.$store.dispatch('map/setGeo', { this.$store.dispatch('map/setGeo', {
key: customAttr.areaCode, key: customAttr.areaCode,
value: res.data value: res
// value: res.data
}) })
this.currentGeoJson = res.data // this.currentGeoJson = res.data
this.currentGeoJson = res
}) })
return return
} }
......
...@@ -257,13 +257,13 @@ ...@@ -257,13 +257,13 @@
<!--添加视图-选择数据集--> <!--添加视图-选择数据集-->
<el-dialog <el-dialog
v-if="selectTableFlag"
v-dialogDrag v-dialogDrag
:title="$t('chart.add_chart')" :title="$t('chart.add_chart')"
:visible="selectTableFlag" :visible="selectTableFlag"
:show-close="false" :show-close="false"
width="70%" width="70%"
class="dialog-css" class="dialog-css"
:destroy-on-close="true"
> >
<el-row style="width: 800px;"> <el-row style="width: 800px;">
<el-form ref="form" :model="table" label-width="80px" size="mini" class="form-item"> <el-form ref="form" :model="table" label-width="80px" size="mini" class="form-item">
......
...@@ -489,13 +489,13 @@ ...@@ -489,13 +489,13 @@
<!--视图更换数据集--> <!--视图更换数据集-->
<el-dialog <el-dialog
v-if="selectTableFlag"
v-dialogDrag v-dialogDrag
:title="changeDsTitle" :title="changeDsTitle"
:visible="selectTableFlag" :visible="selectTableFlag"
:show-close="false" :show-close="false"
width="70%" width="70%"
class="dialog-css" class="dialog-css"
:destroy-on-close="true"
> >
<table-selector @getTable="getTable" /> <table-selector @getTable="getTable" />
<p style="margin-top: 10px;color:#F56C6C;font-size: 12px;">{{ $t('chart.change_ds_tip') }}</p> <p style="margin-top: 10px;color:#F56C6C;font-size: 12px;">{{ $t('chart.change_ds_tip') }}</p>
...@@ -507,10 +507,10 @@ ...@@ -507,10 +507,10 @@
<!--编辑视图使用的数据集的字段--> <!--编辑视图使用的数据集的字段-->
<el-dialog <el-dialog
v-if="editDsField"
:visible="editDsField" :visible="editDsField"
:show-close="false" :show-close="false"
class="dialog-css" class="dialog-css"
:destroy-on-close="true"
:fullscreen="true" :fullscreen="true"
> >
<field-edit :param="table" /> <field-edit :param="table" />
...@@ -1352,7 +1352,7 @@ export default { ...@@ -1352,7 +1352,7 @@ export default {
return resultNode return resultNode
}, },
addStack(e) { addStack(e) {
this.dragCheckType(this.dimensionData, 'd') this.dragCheckType(this.view.extStack, 'd')
if (this.view.extStack && this.view.extStack.length > 1) { if (this.view.extStack && this.view.extStack.length > 1) {
this.view.extStack = [this.view.extStack[0]] this.view.extStack = [this.view.extStack[0]]
} }
......
...@@ -68,7 +68,6 @@ ...@@ -68,7 +68,6 @@
<script> <script>
import { isKettleRunning, post } from '@/api/dataset/dataset' import { isKettleRunning, post } from '@/api/dataset/dataset'
import { authModel } from '@/api/system/sysAuth'
import { hasDataPermission } from '@/utils/permission' import { hasDataPermission } from '@/utils/permission'
export default { export default {
...@@ -403,11 +402,14 @@ export default { ...@@ -403,11 +402,14 @@ export default {
searchTree(val) { searchTree(val) {
const queryCondition = { const queryCondition = {
withExtend: 'parent', // withExtend: 'parent',
modelType: 'dataset', // modelType: 'dataset',
name: val name: val
} }
authModel(queryCondition).then(res => { // authModel(queryCondition).then(res => {
// this.data = this.buildTree(res.data)
// })
post('/dataset/table/search', queryCondition).then(res => {
this.data = this.buildTree(res.data) this.data = this.buildTree(res.data)
}) })
}, },
...@@ -420,8 +422,8 @@ export default { ...@@ -420,8 +422,8 @@ export default {
const roots = [] const roots = []
arrs.forEach(el => { arrs.forEach(el => {
// 判断根节点 ### // 判断根节点 ###
el.type = el.modelInnerType // el.type = el.modelInnerType
el.isLeaf = el.leaf // el.isLeaf = el.leaf
if (el[this.treeProps.parentId] === null || el[this.treeProps.parentId] === 0 || el[this.treeProps.parentId] === '0') { if (el[this.treeProps.parentId] === null || el[this.treeProps.parentId] === 0 || el[this.treeProps.parentId] === '0') {
roots.push(el) roots.push(el)
return return
......
...@@ -315,6 +315,8 @@ export default { ...@@ -315,6 +315,8 @@ export default {
if (!this.fieldForm.id) { if (!this.fieldForm.id) {
this.fieldForm.type = this.fieldForm.deType this.fieldForm.type = this.fieldForm.deType
this.fieldForm.deExtractType = this.fieldForm.deType this.fieldForm.deExtractType = this.fieldForm.deType
this.fieldForm.tableId = this.param.id
this.fieldForm.columnIndex = this.tableFields.dimensionList.length + this.tableFields.quotaList.length
} }
post('/dataset/field/save', this.fieldForm).then(response => { post('/dataset/field/save', this.fieldForm).then(response => {
this.closeCalcField() this.closeCalcField()
...@@ -371,7 +373,8 @@ export default { ...@@ -371,7 +373,8 @@ export default {
padding: 0 4px; padding: 0 4px;
} }
.field-height{ .field-height{
height: calc(50% - 20px); height: calc(50% - 25px);
margin-top: 4px;
} }
.drag-list { .drag-list {
height: calc(100% - 26px); height: calc(100% - 26px);
...@@ -442,8 +445,9 @@ export default { ...@@ -442,8 +445,9 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.function-height{ .function-height{
height: calc(100% - 20px); height: calc(100% - 50px);
overflow: auto; overflow: auto;
margin-top: 4px;
} }
.function-pop>>>.el-popover{ .function-pop>>>.el-popover{
padding: 6px!important; padding: 6px!important;
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<de-container> <de-container>
<!--左侧导航栏--> <!--左侧导航栏-->
<de-aside-container class="ms-aside-container"> <de-aside-container class="ms-aside-container">
<div style="width: 60px; left: 0px; top: 0px; bottom: 0px; position: absolute"> <div v-if="!linkageSettingStatus" style="width: 60px; left: 0px; top: 0px; bottom: 0px; position: absolute">
<div style="width: 60px;height: 100%;overflow: hidden auto;position: relative;margin: 0px auto; font-size: 14px"> <div style="width: 60px;height: 100%;overflow: hidden auto;position: relative;margin: 0px auto; font-size: 14px">
<!-- 视图图表 start --> <!-- 视图图表 start -->
<div class="button-div-class" style=" width: 24px;height: 24px;text-align: center;line-height: 1;position: relative;margin: 16px auto 0px;"> <div class="button-div-class" style=" width: 24px;height: 24px;text-align: center;line-height: 1;position: relative;margin: 16px auto 0px;">
...@@ -290,7 +290,8 @@ export default { ...@@ -290,7 +290,8 @@ export default {
'isClickComponent', 'isClickComponent',
'canvasStyleData', 'canvasStyleData',
'curComponentIndex', 'curComponentIndex',
'componentData' 'componentData',
'linkageSettingStatus'
]) ])
}, },
...@@ -322,6 +323,7 @@ export default { ...@@ -322,6 +323,7 @@ export default {
listenGlobalKeyDown() listenGlobalKeyDown()
this.$store.commit('setCurComponent', { component: null, index: null }) this.$store.commit('setCurComponent', { component: null, index: null })
this.$store.commit('setLinkageSettingStatus', false)
}, },
mounted() { mounted() {
// this.insertToBody() // this.insertToBody()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论