Commit 05c78451 by Tippi.Rao

eslint 修复

parent bdfaaeb2
......@@ -7,19 +7,19 @@ module.exports = {
env: {
browser: true,
node: true,
es6: true,
es6: true
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
// it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/no-mutating-props": "off",
"vue/multi-word-component-names": "off",
"vue/require-default-prop": "off",
"vue/no-v-html": "off",
'vue/singleline-html-element-content-newline': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/no-mutating-props': 'off',
'vue/multi-word-component-names': 'off',
'vue/require-default-prop': 'off',
'vue/no-v-html': 'off',
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
......@@ -42,8 +42,8 @@ module.exports = {
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {
"null": "ignore"
'eqeqeq': ['error', 'always', {
'null': 'ignore'
}],
'generator-star-spacing': [2, {
'before': true,
......@@ -191,8 +191,8 @@ module.exports = {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never'],
"vue/no-use-v-if-with-v-for": ["error", {
"allowUsingIterationVar": true
'vue/no-use-v-if-with-v-for': ['error', {
'allowUsingIterationVar': true
}]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dataease-server</artifactId>
<groupId>io.dataease</groupId>
<version>${dataease.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>frontend</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<frontend-maven-plugin.version>1.9.1</frontend-maven-plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend-maven-plugin.version}</version>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<!-- See https://nodejs.org/en/download/ for latest node and npm (lts) versions -->
<nodeVersion>v15.12.0</nodeVersion>
<npmVersion>7.6.3</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<!-- Optional configuration which provides for running any npm command -->
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<template>
<div id="app">
<router-view />
<plugin-com v-show="false" ref="de-theme" component-name="ThemeSetting" />
<plugin-com
v-show="false"
ref="de-theme"
component-name="ThemeSetting"
/>
<el-dialog
v-if="$route.path !== '/login'"
:visible.sync="showPasswordModifiedDialog"
......@@ -9,42 +13,42 @@
:title="$t('user.change_password')"
:show-close="false"
>
<PasswordUpdateForm oldPwd="dataease" />
<PasswordUpdateForm old-pwd="dataease" />
</el-dialog>
</div>
</template>
<script>
import PluginCom from "@/views/system/plugin/PluginCom";
import { mapState } from "vuex";
import PasswordUpdateForm from "@/views/system/user/PasswordUpdateForm.vue";
import PluginCom from '@/views/system/plugin/PluginCom'
import { mapState } from 'vuex'
import PasswordUpdateForm from '@/views/system/user/PasswordUpdateForm.vue'
export default {
name: "App",
name: 'App',
components: { PluginCom, PasswordUpdateForm },
computed: {
...mapState("user", ["passwordModified"]),
...mapState('user', ['passwordModified'])
},
data() {
return {
showPasswordModifiedDialog: false,
};
},
mounted() {
const passwordModified = JSON.parse(
localStorage.getItem("passwordModified")
);
if (typeof passwordModified === "boolean") {
this.$store.commit("user/SET_PASSWORD_MODIFIED", passwordModified);
showPasswordModifiedDialog: false
}
},
watch: {
passwordModified: {
handler(val) {
this.showPasswordModifiedDialog = !val;
this.showPasswordModifiedDialog = !val
},
immediate: true,
},
immediate: true
}
},
};
mounted() {
const passwordModified = JSON.parse(
localStorage.getItem('passwordModified')
)
if (typeof passwordModified === 'boolean') {
this.$store.commit('user/SET_PASSWORD_MODIFIED', passwordModified)
}
}
}
</script>
......@@ -153,7 +153,6 @@ export const viewOptions = panelId => {
})
}
export function getDatasourceRelationship(id) {
return request({
url: `/api/relation/datasource/${id}`,
......@@ -162,7 +161,6 @@ export function getDatasourceRelationship(id) {
})
}
export function getDatasetRelationship(id) {
return request({
url: `/api/relation/dataset/${id}`,
......@@ -171,7 +169,6 @@ export function getDatasetRelationship(id) {
})
}
export function getPanelRelationship(id) {
return request({
url: `/api/relation/panel/${id}`,
......
......@@ -138,7 +138,7 @@ export function fieldList(id, showLoading = true) {
}
export function fieldListWithPermission(id, showLoading = true) {
//初始模板中的过滤组件无需走后台
// 初始模板中的过滤组件无需走后台
if (id.indexOf('no_auth') > -1) {
return new Promise(function(resolve) {
resolve({
......
......@@ -66,9 +66,9 @@ export function loadGenerate(resourceId) {
})
}
export function loadResource(resourceId,userId) {
export function loadResource(resourceId, userId) {
return request({
url: 'api/link/resourceDetail/' + resourceId+'/'+ userId,
url: 'api/link/resourceDetail/' + resourceId + '/' + userId,
method: 'get'
})
}
......
......@@ -192,7 +192,7 @@ export function initPanelData(panelId, useCache = false, callback) {
watermarkOpen: response.data.watermarkOpen,
watermarkInfo: watermarkInfo
})
const targetPanelId = response.data.panelType==='system'?response.data.source:panelId
const targetPanelId = response.data.panelType === 'system' ? response.data.source : panelId
// 刷新联动信息
getPanelAllLinkageInfo(targetPanelId).then(rsp => {
store.commit('setNowPanelTrackInfo', rsp.data)
......
......@@ -24,7 +24,7 @@
>
<el-tooltip :content="item.tooltip">
<span style="float: left;">
<i :class="item.icon"/>
<i :class="item.icon" />
</span>
</el-tooltip>
</el-radio-button>
......@@ -47,7 +47,7 @@
:value="item.value"
>
<span style="float: left;">
<i :class="item.icon"/>
<i :class="item.icon" />
</span>
<span style="float: right; color: #8492a6; font-size: 12px">{{ item.label }}</span>
</el-option>
......@@ -257,7 +257,7 @@
@click="goColor"
/>
</el-tooltip>
<div :style="letterDivColor"/>
<div :style="letterDivColor" />
<el-color-picker
ref="colorPicker"
v-model="styleInfo.color"
......@@ -279,7 +279,7 @@
@click="goBoardColor"
/>
</el-tooltip>
<div :style="boardDivColor"/>
<div :style="boardDivColor" />
<el-color-picker
ref="boardColorPicker"
v-model="styleInfo.borderColor"
......@@ -302,7 +302,7 @@
@click="goBackgroundColor"
/>
</el-tooltip>
<div :style="backgroundDivColor"/>
<div :style="backgroundDivColor" />
<el-color-picker
ref="backgroundColorPicker"
v-model="styleInfo.backgroundColor"
......@@ -318,7 +318,7 @@
style="width: 20px;float: left;margin-top: 2px;margin-left: 2px;"
>
<el-tooltip :content="$t('panel.video_info')">
<VideoLinks :link-info="curComponent.videoLinks"/>
<VideoLinks :link-info="curComponent.videoLinks" />
</el-tooltip>
</div>
......@@ -327,7 +327,7 @@
style="width: 20px;float: left;margin-top: 2px;margin-left: 2px;"
>
<el-tooltip :content="$t('panel.stream_media_info')">
<StreamMediaLinks :link-info="curComponent.streamMediaLinks"/>
<StreamMediaLinks :link-info="curComponent.streamMediaLinks" />
</el-tooltip>
</div>
......@@ -336,7 +336,7 @@
style="width: 20px;float: left;margin-top: 2px;margin-left: 2px;"
>
<el-tooltip :content="$t('panel.web_addr')">
<FrameLinks :link-info="curComponent.frameLinks"/>
<FrameLinks :link-info="curComponent.frameLinks" />
</el-tooltip>
</div>
<div
......@@ -356,7 +356,7 @@
style="width: 20px;float: left;margin-top: 2px;margin-left: 10px;"
>
<el-tooltip :content="$t('panel.tab_inner_style')">
<tab-style :style-info="styleInfo"/>
<tab-style :style-info="styleInfo" />
</el-tooltip>
</div>
......
......@@ -159,8 +159,8 @@ export default {
computed: {
chart() {
if (this.config.propValue?.viewId) {
const viewInfo = this.panelViewDetailsInfo[this.config.propValue.viewId];
return viewInfo?JSON.parse(viewInfo):null
const viewInfo = this.panelViewDetailsInfo[this.config.propValue.viewId]
return viewInfo ? JSON.parse(viewInfo) : null
}
return null
},
......
......@@ -126,7 +126,7 @@
:canvas-id="canvasId"
/>
<!-- 右击菜单 -->
<ContextMenu/>
<ContextMenu />
<!-- 对齐标线 -->
<span
......@@ -1142,7 +1142,7 @@ export default {
return this.$refs['wrapperChild']
},
getAllWrapperChildRefs() {
let allChildRefs = []
const allChildRefs = []
const currentChildRefs = this.getWrapperChildRefs()
if (currentChildRefs && currentChildRefs.length > 0) {
allChildRefs.push.apply(allChildRefs, currentChildRefs)
......
......@@ -145,7 +145,7 @@
:target="curComponent.hyperlinks.openMode "
:href="curComponent.hyperlinks.content "
>
<i class="icon iconfont icon-com-jump"/>
<i class="icon iconfont icon-com-jump" />
</a>
</span>
......
<template>
<div @mousedown="fieldsAreaDown" class="field-main">
<div
class="field-main"
@mousedown="fieldsAreaDown"
>
<el-button
v-for="(field) in fields"
:key="field.id"
......
......@@ -459,7 +459,7 @@ export default {
return this.$refs['viewWrapperChild']
},
getAllWrapperChildRefs() {
let allChildRefs = []
const allChildRefs = []
const currentChildRefs = this.getWrapperChildRefs()
if (currentChildRefs && currentChildRefs.length > 0) {
allChildRefs.push.apply(allChildRefs, currentChildRefs)
......@@ -705,7 +705,7 @@ export default {
},
exportViewImg() {
this.imageDownloading = true
this.$refs['userViewDialog-canvas-main'].exportViewImg(()=>{
this.$refs['userViewDialog-canvas-main'].exportViewImg(() => {
this.imageDownloading = false
})
},
......
......@@ -5,7 +5,7 @@
trigger="click"
@mouseup="handleMouseUp"
>
<slot name="icon"/>
<slot name="icon" />
<el-dropdown-menu v-if="curComponent">
<el-dropdown-item
v-if="editFilter.includes(curComponent.type)"
......@@ -17,8 +17,7 @@
v-if="curComponent.type != 'custom-button'"
icon="el-icon-document-copy"
@click.native="copy"
><span>{{ $t('panel.copy') }}&nbsp(<span v-show="systemOS==='Mac'"><i class="icon iconfont icon-command"
/>+ D</span> <span v-show="systemOS!=='Mac'">Control + D</span>)</span>
><span>{{ $t('panel.copy') }}&nbsp(<span v-show="systemOS==='Mac'"><i class="icon iconfont icon-command" />+ D</span> <span v-show="systemOS!=='Mac'">Control + D</span>)</span>
</el-dropdown-item>
<el-dropdown-item
icon="el-icon-delete"
......@@ -34,7 +33,7 @@
<el-dropdown-item v-if="!curComponent.auxiliaryMatrix">
<el-dropdown placement="right-start">
<span class="el-icon-copy-document">
{{ $t('panel.level') }} <i class="el-icon-arrow-right el-icon--right"/>
{{ $t('panel.level') }} <i class="el-icon-arrow-right el-icon--right" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
......@@ -93,13 +92,13 @@
<el-dropdown-item
v-if="curComponent.type != 'custom-button'"
@click.native="hyperlinksSet"
><i class="icon iconfont icon-chaolianjie1"/>{{ $t('panel.hyperlinks') }}
><i class="icon iconfont icon-chaolianjie1" />{{ $t('panel.hyperlinks') }}
</el-dropdown-item>
<el-dropdown-item
v-if="curComponent.type !== 'view' && !curComponent.auxiliaryMatrix"
@click.native="positionAdjust"
>
<i class="el-icon-map-location"/>
<i class="el-icon-map-location" />
{{ $t('panel.position_adjust') }}
</el-dropdown-item>
</el-dropdown-menu>
......@@ -180,7 +179,7 @@ import TabCarouselDialog from '@/components/canvas/components/editor/TabCarousel
import CustomTabsSort from '@/components/widget/deWidget/CustomTabsSort'
export default {
components: { CustomTabsSort, HyperlinksDialog,TabCarouselDialog },
components: { CustomTabsSort, HyperlinksDialog, TabCarouselDialog },
data() {
return {
tabCarouselVisible: false,
......
......@@ -66,8 +66,8 @@ export default {
}
},
onSubmit() {
this.curComponent.style.carouselEnable = this.carouselEnable
this.curComponent.style.switchTime = this.switchTime
this.curComponent.style.carouselEnable = this.carouselEnable
this.curComponent.style.switchTime = this.switchTime
this.$store.commit('canvasChange')
this.onClose()
},
......
<template>
<div>
<el-dropdown
trigger="click">
trigger="click"
>
<input
id="input"
ref="trackButton"
......
......@@ -45,7 +45,7 @@
class="info-class"
>
<span>{{ $t('panel.link_add_tips_pre') }}</span>
<i class="icon iconfont icon-chaolianjie"/>
<i class="icon iconfont icon-chaolianjie" />
<span>{{ $t('panel.web_add_tips_suf') }}</span>
</div>
</el-row>
......
......@@ -156,11 +156,11 @@ export default {
bus.$off('fieldSelect-' + this.element.propValue.viewId)
},
methods: {
changeRightDrawOpen(param){
if(param){
changeRightDrawOpen(param) {
if (param) {
this.drawLeft = 'auto!important'
this.drawRight = '380px'
}else{
} else {
this.drawLeft = 'none'
this.drawRight = 'auto'
}
......@@ -302,4 +302,3 @@ export default {
}
</style>
......@@ -33,7 +33,7 @@
class="info-stream-class"
>
<span>{{ $t('panel.link_add_tips_pre') }}</span>
<i class="icon iconfont icon-chaolianjie"/>
<i class="icon iconfont icon-chaolianjie" />
<span>{{ $t('panel.stream_media_add_tips') }}</span>
</div>
</el-row>
......
......@@ -27,7 +27,7 @@
class="info-class"
>
<span>{{ $t('panel.link_add_tips_pre') }}</span>
<i class="icon iconfont icon-chaolianjie"/>
<i class="icon iconfont icon-chaolianjie" />
<span>{{ $t('panel.video_add_tips') }}</span>
</div>
</el-row>
......
......@@ -620,7 +620,7 @@ export default {
},
exportViewImg() {
this.imageDownloading = true
this.$refs['userViewDialog'].exportViewImg(()=>{
this.$refs['userViewDialog'].exportViewImg(() => {
this.imageDownloading = false
})
},
......
......@@ -224,7 +224,7 @@ export default {
}
})
}
const result = { ...temp, ...{ DetailAreaCode: DetailAreaCode } }
const result = { ...temp, ...{ DetailAreaCode: DetailAreaCode }}
this.setLastMapChart(result)
return result
}
......
......@@ -150,13 +150,13 @@ export default {
}
})
chartBatchCopy({ 'sourceAndTargetIds': sourceAndTargetIds }, state.panel.panelInfo.id).then((rsp) => {
needAdaptor && adaptCurThemeCommonStyle(newCop,'copy')
needAdaptor && adaptCurThemeCommonStyle(newCop, 'copy')
store.commit('addComponent', { component: newCop })
})
} else {
const newCop = deepCopy(data)
newCop.id = uuid.v1()
needAdaptor && adaptCurThemeCommonStyle(newCop,'copy')
needAdaptor && adaptCurThemeCommonStyle(newCop, 'copy')
store.commit('addComponent', { component: newCop })
}
if (state.isCut) {
......
......@@ -375,7 +375,7 @@ export function adaptCurTheme(customStyle, customAttr, chartType) {
}
}
export function adaptCurThemeCommonStyle(component,adaptFrom = 'them') {
export function adaptCurThemeCommonStyle(component, adaptFrom = 'them') {
const commonStyle = store.state.canvasStyleData.chartInfo.chartCommonStyle
for (const key in commonStyle) {
Vue.set(component.commonBackground, key, commonStyle[key])
......@@ -383,9 +383,9 @@ export function adaptCurThemeCommonStyle(component,adaptFrom = 'them') {
if (isFilterComponent(component.component)) {
const filterStyle = store.state.canvasStyleData.chartInfo.filterStyle
for (const styleKey in filterStyle) {
if(adaptFrom === 'copy'){
if (adaptFrom === 'copy') {
Vue.set(component.style, styleKey, filterStyle[styleKey])
}else if (adaptFrom === 'them' && styleKey !== 'horizontal' && styleKey !== 'vertical') {
} else if (adaptFrom === 'them' && styleKey !== 'horizontal' && styleKey !== 'vertical') {
// 主题变化位置属性不修改
Vue.set(component.style, styleKey, filterStyle[styleKey])
}
......
......@@ -219,7 +219,7 @@ export function checkViewTitle(opt, id, tile) {
}
}
export function exportImg(imgName,callback) {
export function exportImg(imgName, callback) {
const canvasID = document.getElementById('chartCanvas')
const a = document.createElement('a')
html2canvas(canvasID).then(canvas => {
......@@ -385,12 +385,12 @@ export function insertBatchTreeNode(nodeInfoArray, tree) {
export function updateCacheTree(opt, treeName, nodeInfoFull, tree) {
const nodeInfo = deepCopy(nodeInfoFull)
if( nodeInfo instanceof Array){
nodeInfo.forEach(item=>{
if (nodeInfo instanceof Array) {
nodeInfo.forEach(item => {
delete item.panelData
delete item.panelStyle
})
}else{
} else {
delete nodeInfo.panelData
delete nodeInfo.panelStyle
}
......
......@@ -47,7 +47,7 @@ export default {
data() {
return {
asideHidden: false,
currentWidth: '',
currentWidth: ''
}
},
computed: {
......
......@@ -66,7 +66,7 @@
@mousedown.stop.prevent="handleDown(handlei, $event)"
@touchstart.stop.prevent="handleTouchDown(handlei, $event)"
>
<slot :name="handlei"/>
<slot :name="handlei" />
</div>
<div
:id="componentCanvasId"
......@@ -74,22 +74,22 @@
class="main-background"
>
<div
v-show="!this.element.editing"
v-show="!element.editing"
class="de-drag-area de-drag-top"
@mousedown="elementMouseDown"
/>
<div
v-show="!this.element.editing && this.element.type !=='de-tabs'"
v-show="!element.editing && element.type !=='de-tabs'"
class="de-drag-area de-drag-right"
@mousedown="elementMouseDown"
/>
<div
v-show="!this.element.editing && this.element.type !=='de-tabs'"
v-show="!element.editing && element.type !=='de-tabs'"
class="de-drag-area de-drag-bottom"
@mousedown="elementMouseDown"
/>
<div
v-show="!this.element.editing && this.element.type !=='de-tabs'"
v-show="!element.editing && element.type !=='de-tabs'"
class="de-drag-area de-drag-left"
@mousedown="elementMouseDown"
/>
......@@ -99,7 +99,7 @@
class="svg-background"
:icon-class="mainSlotSvgInner"
/>
<slot/>
<slot />
</div>
</div>
</div>
......
......@@ -42,7 +42,7 @@ export default {
})
},
withLink(options, confirmButtonTextInfo) {
const h = this.$createElement;
const h = this.$createElement
const that = this
const { title, content, type = 'danger', cb, confirmButtonText = confirmButtonTextInfo || this.$t('commons.delete'), showCancelButton = true, cancelButtonText = this.$t('commons.cancel'), cancelCb = () => {}, finallyCb = () => {}, link = '', templateDel, linkTo } = options
const customClass = `de-confirm de-confirm-fail de-use-html`
......@@ -55,14 +55,14 @@ export default {
title,
content,
link
},
}
},
on: {
change: () => {
linkTo()
}
}
}),
})
]),
duration: 0,
confirmButtonText,
......@@ -71,18 +71,18 @@ export default {
cancelButtonClass: 'de-confirm-btn de-confirm-plain-cancel',
confirmButtonClass,
customClass,
iconClass: 'el-icon-warning',
iconClass: 'el-icon-warning'
}).then(action => {
if ('confirm' === action) {
if (action === 'confirm') {
cb()
}
})
.catch((action) => {
cancelCb(action)
})
.finally(() => {
finallyCb()
})
.catch((action) => {
cancelCb(action)
})
.finally(() => {
finallyCb()
})
}
}
}
......@@ -16,8 +16,8 @@
:key-word="keyWord"
popper-class="coustom-de-select"
:list="data"
@resetKeyWords="filterMethod"
:custom-style="customStyle"
@resetKeyWords="filterMethod"
@change="changeValue"
@focus="setOptionWidth"
@blur="onBlur"
......
......@@ -75,8 +75,8 @@
style="width: 100%;height:100%"
>
<Preview
:component-data="tabCanvasComponentData(item.name)"
:ref="'canvasTabRef-'+item.name"
:component-data="tabCanvasComponentData(item.name)"
:canvas-style-data="canvasStyleData"
:canvas-id="element.id+'-'+item.name"
:panel-info="panelInfo"
......@@ -313,9 +313,9 @@ export default {
return Boolean(this.$store.state.dragComponentInfo)
},
headClass() {
if(this.tabsAreaScroll){
if (this.tabsAreaScroll) {
return 'tab-head-left'
}else{
} else {
return 'tab-head-' + this.element.style.headPosition
}
},
......@@ -464,7 +464,7 @@ export default {
bus.$on('add-new-tab', this.addNewTab)
this.$nextTick(() => {
this.activeTabName = this.element.options.tabList[0].name
});
})
this.$store.commit('setTabActiveTabNameMap', { tabId: this.element.id, activeTabName: this.activeTabName })
this.setContentThemeStyle()
},
......@@ -476,12 +476,12 @@ export default {
bus.$off('add-new-tab', this.addNewTab)
},
methods: {
calcTabLength(){
this.$nextTick(()=>{
if(this.element.options.tabList.length>1){
const containerDom = document.getElementById("tab-"+this.element.options.tabList[this.element.options.tabList.length -1].name)
calcTabLength() {
this.$nextTick(() => {
if (this.element.options.tabList.length > 1) {
const containerDom = document.getElementById('tab-' + this.element.options.tabList[this.element.options.tabList.length - 1].name)
this.tabsAreaScroll = containerDom.parentNode.scrollWidth > containerDom.parentNode.parentNode.scrollWidth
}else{
} else {
this.tabsAreaScroll = false
}
})
......@@ -490,7 +490,7 @@ export default {
return this.element.type
},
getWrapperChildRefs() {
let refsSubAll = []
const refsSubAll = []
const _this = this
this.element.options.tabList.forEach(tabItem => {
const refsSub = _this.$refs['canvasTabRef-' + tabItem.name]
......@@ -530,7 +530,7 @@ export default {
if (targetRef) {
targetRef[0]?.restore()
}
});
})
}, switchTime)
}
},
......
......@@ -1930,8 +1930,8 @@ export default {
jsonpath_info: 'Please fill in JsonPath',
req_param: 'Request parameters',
headers: 'Request header',
query_param: "QUERY param",
query_info: "Follow in the address bar? The following parameters, such as: updateAPI? id=112",
query_param: 'QUERY param',
query_info: 'Follow in the address bar? The following parameters, such as: updateAPI? id=112',
key: 'Key',
value: 'Value',
data_path: 'Extract data',
......
......@@ -1924,8 +1924,8 @@ export default {
jsonpath_info: '請輸入JsonPath',
req_param: '請求參數',
headers: '請求頭',
query_param: "QUERY參數",
query_info: "地址欄中跟在?後面的參數,如:updateapi? id=112",
query_param: 'QUERY參數',
query_info: '地址欄中跟在?後面的參數,如:updateapi? id=112',
key: '鍵',
value: '值',
data_path: '提取數據',
......
......@@ -1938,8 +1938,8 @@ export default {
jsonpath_info: '请填入JsonPath',
req_param: '请求参数',
headers: '请求头',
query_param: "QUERY参数",
query_info: "地址栏中跟在?后面的参数,如: updateapi?id=112",
query_param: 'QUERY参数',
query_info: '地址栏中跟在?后面的参数,如: updateapi?id=112',
key: '键',
value: '值',
data_path: '提取数据',
......
import Vue from "vue";
import Cookies from "js-cookie";
import "@/styles/index.scss"; // global css
import ElementUI from "element-ui";
import Vuetify from "vuetify";
import Fit2CloudUI from "fit2cloud-ui";
import i18n from "./lang"; // internationalization
import App from "./App";
import store from "./store";
import router from "./router";
import message from "./utils/message";
import "@/icons"; // icon
import "@/permission"; // permission control
import api from "@/api/index.js";
import filter from "@/filter/filter";
import directives from "./directive";
import VueClipboard from "vue-clipboard2";
import widgets from "@/components/widget";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import "./utils/dialog";
import DeComplexInput from "@/components/business/conditionTable/DeComplexInput";
import DeComplexSelect from "@/components/business/conditionTable/DeComplexSelect";
import DeViewSelect from "@/components/deViewSelect";
import RemarkEditor from "@/views/chart/components/componentStyle/dialog/RemarkEditor";
import TitleRemark from "@/views/chart/view/TitleRemark";
import "@/components/canvas/customComponent"; // 注册自定义组件
import deBtn from "@/components/deCustomCm/DeBtn.vue";
import "@/utils/DateUtil";
import draggable from "vuedraggable";
import deWebsocket from "@/websocket";
import { GaodeMap } from "@antv/l7-maps";
import * as echarts from "echarts";
import UmyUi from "umy-ui";
import Vue from 'vue'
import Cookies from 'js-cookie'
import '@/styles/index.scss' // global css
import ElementUI from 'element-ui'
import Vuetify from 'vuetify'
import Fit2CloudUI from 'fit2cloud-ui'
import i18n from './lang' // internationalization
import App from './App'
import store from './store'
import router from './router'
import message from './utils/message'
import '@/icons' // icon
import '@/permission' // permission control
import api from '@/api/index.js'
import filter from '@/filter/filter'
import directives from './directive'
import VueClipboard from 'vue-clipboard2'
import widgets from '@/components/widget'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import './utils/dialog'
import DeComplexInput from '@/components/business/conditionTable/DeComplexInput'
import DeComplexSelect from '@/components/business/conditionTable/DeComplexSelect'
import DeViewSelect from '@/components/deViewSelect'
import RemarkEditor from '@/views/chart/components/componentStyle/dialog/RemarkEditor'
import TitleRemark from '@/views/chart/view/TitleRemark'
import '@/components/canvas/customComponent' // 注册自定义组件
import deBtn from '@/components/deCustomCm/DeBtn.vue'
import '@/utils/DateUtil'
import draggable from 'vuedraggable'
import deWebsocket from '@/websocket'
import { GaodeMap } from '@antv/l7-maps'
import * as echarts from 'echarts'
import UmyUi from 'umy-ui'
// 全屏插件
import fullscreen from "vue-fullscreen";
import VueFriendlyIframe from "vue-friendly-iframe";
import vueToPdf from "vue-to-pdf";
import VueVideoPlayer from "vue-video-player";
import "video.js/dist/video-js.css";
import fullscreen from 'vue-fullscreen'
import VueFriendlyIframe from 'vue-friendly-iframe'
import vueToPdf from 'vue-to-pdf'
import VueVideoPlayer from 'vue-video-player'
import 'video.js/dist/video-js.css'
// 控制标签宽高成比例的指令
import proportion from "vue-proportion-directive";
import proportion from 'vue-proportion-directive'
import xss from "xss";
import xss from 'xss'
// 定义全局XSS解决方法
Object.defineProperty(Vue.prototype, "$xss", {
value: xss,
});
Object.defineProperty(Vue.prototype, '$xss', {
value: xss
})
Vue.config.productionTip = false;
Vue.use(VueClipboard);
Vue.use(widgets);
Vue.component("Draggable", draggable);
Vue.prototype.$api = api;
Vue.config.productionTip = false
Vue.use(VueClipboard)
Vue.use(widgets)
Vue.component('Draggable', draggable)
Vue.prototype.$api = api
Vue.prototype.$echarts = echarts;
Vue.prototype.$gaodeMap = GaodeMap;
Vue.prototype.$echarts = echarts
Vue.prototype.$gaodeMap = GaodeMap
Vue.use(UmyUi);
Vue.use(UmyUi)
Vue.use(fullscreen);
Vue.use(fullscreen)
Vue.use(VueFriendlyIframe);
Vue.use(Vuetify);
Vue.use(VueFriendlyIframe)
Vue.use(Vuetify)
// import TEditor from '@/components/Tinymce/index.vue'
// Vue.component('TEditor', TEditor)
......@@ -75,7 +75,7 @@ Vue.use(Vuetify);
* Currently MockJs will be used in the production environment,
* please remove it before going online ! ! !
*/
if (process.env.NODE_ENV === "production") {
if (process.env.NODE_ENV === 'production') {
// const { mockXHR } = require('../mock')
// mockXHR()
}
......@@ -83,75 +83,75 @@ if (process.env.NODE_ENV === "production") {
// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui,按如下方式声明
ElementUI.Dialog.props.closeOnClickModal.default = false;
ElementUI.Dialog.props.closeOnPressEscape.default = false;
ElementUI.Dialog.props.closeOnClickModal.default = false
ElementUI.Dialog.props.closeOnPressEscape.default = false
Vue.use(ElementUI, {
size: Cookies.get("size") || "medium", // set element-ui default size
i18n: (key, value) => i18n.t(key, value),
});
size: Cookies.get('size') || 'medium', // set element-ui default size
i18n: (key, value) => i18n.t(key, value)
})
Vue.use(Fit2CloudUI, {
i18n: (key, value) => i18n.t(key, value),
});
i18n: (key, value) => i18n.t(key, value)
})
// Vue.use(VueAxios, axios)
Vue.use(filter);
Vue.use(directives);
Vue.use(message);
Vue.component("Treeselect", Treeselect);
Vue.component("DeComplexInput", DeComplexInput);
Vue.component("DeComplexSelect", DeComplexSelect);
Vue.component("DeViewSelect", DeViewSelect);
Vue.component("RemarkEditor", RemarkEditor);
Vue.component("TitleRemark", TitleRemark);
Vue.component("DeBtn", deBtn);
Vue.use(filter)
Vue.use(directives)
Vue.use(message)
Vue.component('Treeselect', Treeselect)
Vue.component('DeComplexInput', DeComplexInput)
Vue.component('DeComplexSelect', DeComplexSelect)
Vue.component('DeViewSelect', DeViewSelect)
Vue.component('RemarkEditor', RemarkEditor)
Vue.component('TitleRemark', TitleRemark)
Vue.component('DeBtn', deBtn)
Vue.config.productionTip = false;
Vue.config.productionTip = false
Vue.use(vueToPdf);
Vue.use(vueToPdf)
Vue.use(VueVideoPlayer);
Vue.use(VueVideoPlayer)
Vue.use(proportion);
Vue.use(proportion)
Vue.prototype.hasDataPermission = function (pTarget, pSource) {
if (this.$store.state.user.user.isAdmin || pSource === "ignore") {
return true;
Vue.prototype.hasDataPermission = function(pTarget, pSource) {
if (this.$store.state.user.user.isAdmin || pSource === 'ignore') {
return true
}
if (pSource && pTarget) {
return pSource.indexOf(pTarget) > -1;
return pSource.indexOf(pTarget) > -1
}
return false;
};
return false
}
Vue.prototype.checkPermission = function (pers) {
const permissions = store.getters.permissions;
Vue.prototype.checkPermission = function(pers) {
const permissions = store.getters.permissions
const hasPermission = pers.every((needP) => {
const result = permissions.includes(needP);
return result;
});
return hasPermission;
};
Vue.use(deWebsocket);
Vue.prototype.$currentHttpRequestList = new Map();
Vue.prototype.$cancelRequest = function (cancelkey) {
const result = permissions.includes(needP)
return result
})
return hasPermission
}
Vue.use(deWebsocket)
Vue.prototype.$currentHttpRequestList = new Map()
Vue.prototype.$cancelRequest = function(cancelkey) {
if (cancelkey) {
if (cancelkey.indexOf("/**") > -1) {
if (cancelkey.indexOf('/**') > -1) {
Vue.prototype.$currentHttpRequestList.forEach((item, key) => {
key.indexOf(cancelkey.split("/**")[0]) > -1 &&
item("Operation canceled by the user.");
});
key.indexOf(cancelkey.split('/**')[0]) > -1 &&
item('Operation canceled by the user.')
})
} else {
Vue.prototype.$currentHttpRequestList.get(cancelkey) &&
Vue.prototype.$currentHttpRequestList.get(cancelkey)(
"Operation canceled by the user."
);
'Operation canceled by the user.'
)
}
}
};
}
new Vue({
router,
store,
i18n,
render: (h) => h(App),
}).$mount("#app");
render: (h) => h(App)
}).$mount('#app')
......@@ -70,7 +70,7 @@ const mutations = {
},
SET_PASSWORD_MODIFIED: (state, passwordModified) => {
state.passwordModified = passwordModified
},
}
}
const actions = {
......@@ -110,8 +110,8 @@ const actions = {
reject('Verification failed, please Login again.')
}
const historyUserId = localStorage.getItem('userId')
if(historyUserId && historyUserId !== data.userId+''){
const clearLocalStorage = [ 'panel-main-tree', 'panel-default-tree','chart-tree','dataset-tree']
if (historyUserId && historyUserId !== data.userId + '') {
const clearLocalStorage = ['panel-main-tree', 'panel-default-tree', 'chart-tree', 'dataset-tree']
clearLocalStorage.forEach((item) => {
localStorage.removeItem(item)
})
......
......@@ -118,7 +118,7 @@ service.interceptors.response.use(response => {
if (msg.length > 600) {
msg = msg.slice(0, 600)
}
!config.hideMsg && (!headers['authentication-status']) && !msg?.startsWith("MultiLoginError") && $error(msg)
!config.hideMsg && (!headers['authentication-status']) && !msg?.startsWith('MultiLoginError') && $error(msg)
return Promise.reject(config.url === '/dataset/table/sqlPreview' ? msg : error)
})
const checkDownError = response => {
......
......@@ -51,12 +51,12 @@
>
<el-color-picker
ref="colorPicker"
@change="colorChange"
v-model="curComponent.commonBackground.color"
:disabled="!curComponent.commonBackground.backgroundColorSelect"
size="mini"
class="color-picker-style"
:predefine="predefineColors"
@change="colorChange"
/>
</el-col>
<el-col :span="3">
......
......@@ -35,7 +35,7 @@ export const DEFAULT_COLOR_CASE = {
mapStyle: 'normal',
mapLineGradient: false,
mapLineSourceColor: '#146C94',
mapLineTargetColor: '#576CBC',
mapLineTargetColor: '#576CBC'
}
export const DEFAULT_COLOR_CASE_DARK = {
......@@ -57,7 +57,7 @@ export const DEFAULT_COLOR_CASE_DARK = {
mapStyle: 'darkblue',
mapLineGradient: false,
mapLineSourceColor: '#2F58CD',
mapLineTargetColor: '#3795BD',
mapLineTargetColor: '#3795BD'
}
export const DEFAULT_SIZE = {
barDefault: true,
......
......@@ -67,8 +67,8 @@
>
{{ $t('chart.total') }}
<span>{{
(chart.datasetMode === 0 && !not_support_page_dataset.includes(chart.datasourceType)) ? chart.totalItems : ((chart.data && chart.data.tableRow) ? chart.data.tableRow.length : 0)
}}</span>
(chart.datasetMode === 0 && !not_support_page_dataset.includes(chart.datasourceType)) ? chart.totalItems : ((chart.data && chart.data.tableRow) ? chart.data.tableRow.length : 0)
}}</span>
{{ $t('chart.items') }}
</span>
<de-pagination
......
......@@ -13,7 +13,7 @@
@click="add('group')"
/>
</el-row>
<el-divider/>
<el-divider />
<el-row style="margin-bottom: 10px">
<el-col :span="16">
<el-input
......@@ -31,7 +31,7 @@
size="mini"
type="primary"
>
{{ searchMap[searchType] }}<i class="el-icon-arrow-down el-icon--right"/>
{{ searchMap[searchType] }}<i class="el-icon-arrow-down el-icon--right" />
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="searchTypeClick('all')">{{ $t('commons.all') }}</el-dropdown-item>
......@@ -63,7 +63,7 @@
>
<span style="display: flex;flex: 1;width: 0;">
<span>
<i class="el-icon-folder"/>
<i class="el-icon-folder" />
</span>
<span
style="margin-left: 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"
......@@ -152,7 +152,7 @@
class="custom-tree-node-list father"
>
<span style="display: flex;flex: 1;width: 0;">
<span><svg-icon :icon-class="data.modelInnerType"/></span>
<span><svg-icon :icon-class="data.modelInnerType" /></span>
<span
style="margin-left: 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"
:title="data.name"
......@@ -225,7 +225,7 @@
:label="$t('commons.name')"
prop="name"
>
<el-input v-model="groupForm.name"/>
<el-input v-model="groupForm.name" />
</el-form-item>
</el-form>
<div
......@@ -266,7 +266,7 @@
:label="$t('commons.name')"
prop="name"
>
<el-input v-model="tableForm.name"/>
<el-input v-model="tableForm.name" />
</el-form-item>
</el-form>
<div
......@@ -322,8 +322,8 @@
:active="createActive"
align-center
>
<el-step :title="$t('chart.select_dataset')"/>
<el-step :title="$t('chart.select_chart_type')"/>
<el-step :title="$t('chart.select_dataset')" />
<el-step :title="$t('chart.select_chart_type')" />
</el-steps>
<table-selector
......@@ -397,8 +397,8 @@
size="mini"
@click="createPreview"
>{{
$t('chart.preview')
}}
$t('chart.preview')
}}
</el-button>
<el-button
v-if="createActive === 1"
......@@ -447,8 +447,8 @@
size="mini"
@click="saveMoveGroup(tGroup)"
>{{
$t('dataset.confirm')
}}
$t('dataset.confirm')
}}
</el-button>
</div>
</el-dialog>
......@@ -481,8 +481,8 @@
size="mini"
@click="saveMoveDs(tDs)"
>{{
$t('dataset.confirm')
}}
$t('dataset.confirm')
}}
</el-button>
</div>
</el-dialog>
......
<template>
<div class="de-dataset-form">
<div class="top" v-loading="loading">
<div
v-loading="loading"
class="top"
>
<span class="name">
<i
class="el-icon-arrow-left"
......
......@@ -9,7 +9,7 @@
class="arrow-right"
@click="showLeft = true"
>
<i class="el-icon-d-arrow-right"/>
<i class="el-icon-d-arrow-right" />
</p>
<div
v-show="showLeft"
......@@ -172,8 +172,8 @@
class="data"
>
<span class="result-num">{{
`${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')}`
}}</span>
`${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')}`
}}</span>
<div class="table-grid">
<ux-grid
ref="plxTable"
......
......@@ -24,7 +24,7 @@
</el-button>
</el-row>
</el-row>
<el-divider/>
<el-divider />
<el-row>
<el-form :inline="true">
<el-form-item
......
......@@ -9,7 +9,7 @@
class="arrow-right"
@click="showLeft = true"
>
<i class="el-icon-d-arrow-right"/>
<i class="el-icon-d-arrow-right" />
</p>
<div
v-show="showLeft"
......@@ -179,8 +179,8 @@
class="data"
>
<span class="result-num">{{
`${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')}`
}}</span>
`${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')}`
}}</span>
<div class="table-grid">
<ux-grid
ref="plxTable"
......
......@@ -8,7 +8,7 @@
class="arrow-right"
@click="showLeft = true"
>
<i class="el-icon-d-arrow-right"/>
<i class="el-icon-d-arrow-right" />
</p>
<div
v-show="showLeft"
......@@ -21,16 +21,16 @@
effect="dark"
placement="right"
>
<div slot="content">
{{ $t('dataset.excel_info_1') }}<br>
{{ $t('dataset.excel_info_2') }}<br>
{{ $t('dataset.excel_info_3') }}
</div>
<svg-icon icon-class="icon_info_outlined" /></el-tooltip></span>
<i
class="el-icon-d-arrow-left"
@click="showLeft = false"
/>
<div slot="content">
{{ $t('dataset.excel_info_1') }}<br>
{{ $t('dataset.excel_info_2') }}<br>
{{ $t('dataset.excel_info_3') }}
</div>
<svg-icon icon-class="icon_info_outlined" /></el-tooltip></span>
<i
class="el-icon-d-arrow-left"
@click="showLeft = false"
/>
</p>
<el-upload
:action="baseUrl + 'dataset/table/excel/upload'"
......@@ -150,14 +150,14 @@
min-width="200px"
:field="field.fieldName"
:title="field.remarks"
:fieldType="field.fieldType"
:field-type="field.fieldType"
:resizable="true"
>
<template #header>
<el-dropdown
:key="field.fieldName + field.fieldType"
placement="bottom-start"
trigger="click"
:key="field.fieldName + field.fieldType"
@command="(type) => handleCommand(type, field)"
>
<span class="type-switch">
......@@ -179,7 +179,7 @@
icon-class="field_value"
class="field-icon-value"
/>
<i class="el-icon-arrow-down el-icon--right"/></span>
<i class="el-icon-arrow-down el-icon--right" /></span>
<el-dropdown-menu
slot="dropdown"
style="width: 178px"
......@@ -237,7 +237,7 @@ import { $alert } from '@/utils/message'
import store from '@/store'
import msgCfm from '@/components/msgCfm/index'
import cancelMix from './cancelMix'
import Config from "@/settings";
import Config from '@/settings'
import { updateCacheTree } from '@/components/canvas/utils/utils'
const token = getToken()
......
......@@ -53,8 +53,8 @@
<div class="sql-title">
{{ $t('deDataset.data_preview') }}
<span class="result-num">{{
`(${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')})`
}}</span>
`(${$t('dataset.preview_show')} 1000 ${$t('dataset.preview_item')})`
}}</span>
<span
class="drag"
@mousedown="mousedownDrag"
......@@ -96,8 +96,8 @@
secondary
@click="closeSelectDs()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</deBtn>
<deBtn
:disabled="!tempDs.id"
......@@ -122,21 +122,21 @@
size="840px"
direction="rtl"
>
<union-edit :union-param="unionParam"/>
<union-edit :union-param="unionParam" />
<div class="de-foot">
<deBtn
secondary
@click="closeEditUnion()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</deBtn>
<deBtn
type="primary"
@click="confirmEditUnion()"
>{{
$t('dataset.confirm')
}}
$t('dataset.confirm')
}}
</deBtn>
</div>
</el-drawer>
......
import pyjs from 'js-pinyin'
export function zh2py(str) {
return pyjs.getFullChars(str).toLowerCase().charCodeAt()
return pyjs.getFullChars(str).toLowerCase().charCodeAt()
}
export function pySort(arr = []) {
arr.sort((a, b) => {
return zh2py(a.name[0]) - zh2py(b.name[0])
})
return arr
}
\ No newline at end of file
arr.sort((a, b) => {
return zh2py(a.name[0]) - zh2py(b.name[0])
})
return arr
}
......@@ -17,14 +17,14 @@
v-if="table.mode === 0"
class="de-tag primary"
>{{
$t('dataset.direct_connect')
}}</span>
$t('dataset.direct_connect')
}}</span>
<span
v-if="table.mode === 1"
class="de-tag warning"
>{{
$t('dataset.sync_data')
}}</span>
$t('dataset.sync_data')
}}</span>
</template>
<span
v-if="syncStatus === 'Underway'"
......@@ -33,7 +33,7 @@
>
{{ $t('dataset.dataset_sync') }}
</span>
<el-divider direction="vertical"/>
<el-divider direction="vertical" />
<span class="create-by">{{ $t('dataset.create_by') }}</span>
<span class="create-by">:{{ table.creatorName || 'N/A' }}</span>
<el-popover
......@@ -48,7 +48,11 @@
:data="table"
:tab-status="tabStatus"
/>
<svg-icon slot="reference" class="detail" icon-class="icon_info_outlined" />
<svg-icon
slot="reference"
class="detail"
icon-class="icon_info_outlined"
/>
</el-popover>
</el-col>
<el-col
......@@ -77,11 +81,11 @@
</deBtn>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="0">
<svg-icon icon-class="icon_add-entry_outlined"/>
<svg-icon icon-class="icon_add-entry_outlined" />
{{ $t('dataset.excel_replace') + $t('chart.chart_data') }}
</el-dropdown-item>
<el-dropdown-item command="1">
<svg-icon icon-class="icon_doc-replace_outlined"/>
<svg-icon icon-class="icon_doc-replace_outlined" />
{{ $t('dataset.excel_add') + $t('chart.chart_data') }}
</el-dropdown-item>
</el-dropdown-menu>
......@@ -218,7 +222,7 @@
>
<div class="tree-cont">
<div class="content">
<rowAuth ref="rowAuth"/>
<rowAuth ref="rowAuth" />
</div>
</div>
</el-form-item>
......
......@@ -18,7 +18,7 @@
:label="$t('dataset.name')"
prop="name"
>
<el-input v-model="datasetForm.name"/>
<el-input v-model="datasetForm.name" />
</el-form-item>
<el-form-item
:label="$t('deDataset.folder')"
......@@ -45,7 +45,7 @@
class="custom-tree-node-dataset"
>
<span v-if="data.modelInnerType === 'group'">
<svg-icon icon-class="scene"/>
<svg-icon icon-class="scene" />
</span>
<span
style="
......
......@@ -111,8 +111,8 @@
class="no-tdata-new"
@click="() => clickAdd()"
>{{
$t('deDataset.create')
}}</span>
$t('deDataset.create')
}}</span>
</div>
<el-tree
v-else
......@@ -134,7 +134,7 @@
>
<span style="display: flex; flex: 1; width: 0">
<span>
<svg-icon icon-class="scene"/>
<svg-icon icon-class="scene" />
</span>
<span
style="
......@@ -242,15 +242,15 @@
class="de-card-dropdown"
>
<el-dropdown-item command="rename">
<svg-icon icon-class="de-ds-rename"/>
<svg-icon icon-class="de-ds-rename" />
{{ $t('dataset.rename') }}
</el-dropdown-item>
<el-dropdown-item command="move">
<svg-icon icon-class="de-ds-move"/>
<svg-icon icon-class="de-ds-move" />
{{ $t('dataset.move_to') }}
</el-dropdown-item>
<el-dropdown-item command="delete">
<svg-icon icon-class="de-ds-trash"/>
<svg-icon icon-class="de-ds-trash" />
{{ $t('dataset.delete') }}
</el-dropdown-item>
</el-dropdown-menu>
......@@ -353,15 +353,15 @@
class="de-card-dropdown"
>
<el-dropdown-item command="editTable">
<svg-icon icon-class="de-ds-rename"/>
<svg-icon icon-class="de-ds-rename" />
{{ $t('dataset.rename') }}
</el-dropdown-item>
<el-dropdown-item command="moveDs">
<svg-icon icon-class="de-ds-move"/>
<svg-icon icon-class="de-ds-move" />
{{ $t('dataset.move_to') }}
</el-dropdown-item>
<el-dropdown-item command="deleteTable">
<svg-icon icon-class="de-ds-trash"/>
<svg-icon icon-class="de-ds-trash" />
{{ $t('dataset.delete') }}
</el-dropdown-item>
</el-dropdown-menu>
......@@ -434,7 +434,7 @@
:label="$t('dataset.name')"
prop="name"
>
<el-input v-model="tableForm.name"/>
<el-input v-model="tableForm.name" />
</el-form-item>
</el-form>
<div
......@@ -445,8 +445,8 @@
secondary
@click="closeTable()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</deBtn>
<deBtn
type="primary"
......@@ -469,8 +469,8 @@
:title="moveDialogTitle"
class="text-overflow"
>{{
moveDialogTitle
}}</span>
moveDialogTitle
}}</span>
{{ $t('dataset.m2') }}
</template>
<group-move-selector
......@@ -483,8 +483,8 @@
secondary
@click="closeMoveGroup()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</deBtn>
<deBtn
:disabled="groupMoveConfirmDisabled"
......@@ -508,8 +508,8 @@
:title="moveDialogTitle"
class="text-overflow"
>{{
moveDialogTitle
}}</span>
moveDialogTitle
}}</span>
{{ $t('dataset.m2') }}
</template>
<group-move-selector
......@@ -521,8 +521,8 @@
secondary
@click="closeMoveDs()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</deBtn>
<deBtn
:disabled="dsMoveConfirmDisabled"
......@@ -534,7 +534,7 @@
</el-drawer>
<!-- 新增数据集文件夹 -->
<CreatDsGroup ref="CreatDsGroup"/>
<CreatDsGroup ref="CreatDsGroup" />
</el-col>
</template>
......@@ -890,8 +890,7 @@ export default {
_this.expandedArray.push(table.sceneId)
_this.$refs.datasetTreeRef.setCurrentKey(table.id)
const renameNode = { id: table.id, name: table.name, label: table.name }
updateCacheTree('rename', 'dataset-tree', renameNode, this.tData)
('rename', 'dataset-tree', response.data, this.tData)
updateCacheTree('rename', 'dataset-tree', renameNode, this.tData)('rename', 'dataset-tree', response.data, this.tData)
this.$emit('switchComponent', { name: '' })
})
} else {
......
......@@ -24,7 +24,7 @@
>
<span style="display: flex; flex: 1; width: 0">
<span v-if="data.modelInnerType === 'group'">
<svg-icon icon-class="scene"/>
<svg-icon icon-class="scene" />
</span>
<span
style="
......
......@@ -77,7 +77,7 @@ export default {
})
},
setPanelInfo() {
loadResource(this.resourceId,this.user).then(res => {
loadResource(this.resourceId, this.user).then(res => {
this.show = false
let loadingCount = 0
const watermarkInfo = {
......
......@@ -77,7 +77,7 @@
:label="dialogTitleLabel"
prop="name"
>
<el-input v-model="templateEditForm.name"/>
<el-input v-model="templateEditForm.name" />
</el-form-item>
<el-form-item
:label="$t('app_template.app_group_icon')"
......@@ -95,7 +95,7 @@
:http-request="upload"
:file-list="fileList"
>
<i class="el-icon-plus"/>
<i class="el-icon-plus" />
</el-upload>
<el-dialog
top="25vh"
......@@ -161,8 +161,7 @@
:source-template-info="currentMoveItem"
@closeDialog="moveItemDialogShow=false"
@templateMoveClose="templateMoveClose"
>
</template-move-list>
/>
</el-dialog>
</div>
</template>
......
......@@ -29,18 +29,18 @@
trigger="click"
@command="handleCommand"
>
<i class="el-icon-more"/>
<i class="el-icon-more" />
<el-dropdown-menu
slot="dropdown"
class="de-card-dropdown"
>
<slot>
<el-dropdown-item command="update">
<i class="el-icon-edit"/>
<i class="el-icon-edit" />
{{ $t('commons.update') }}
</el-dropdown-item>
<el-dropdown-item command="delete">
<i class="el-icon-delete"/>
<i class="el-icon-delete" />
{{ $t('commons.uninstall') }}
</el-dropdown-item>
<el-dropdown-item
......
......@@ -47,7 +47,7 @@
@command="(type) => clickMore(type, ele)"
>
<span class="el-dropdown-link">
<i class="el-icon-more"/>
<i class="el-icon-more" />
</span>
<el-dropdown-menu
slot="dropdown"
......
......@@ -43,16 +43,16 @@
secondary
@click="cancel()"
>{{
$t('commons.cancel')
}}
$t('commons.cancel')
}}
</deBtn>
<deBtn
type="primary"
@click="save()"
:disabled="!activeTemplate"
@click="save()"
>{{
$t('commons.confirm')
}}
$t('commons.confirm')
}}
</deBtn>
</el-row>
</div>
......
......@@ -165,12 +165,12 @@
v-show=" show &&showIndex===1"
:canvas-id="canvasId"
/>
<subject-setting v-show=" show &&showIndex===2"/>
<assist-component v-show=" show &&showIndex===3"/>
<subject-setting v-show=" show &&showIndex===2" />
<assist-component v-show=" show &&showIndex===3" />
</div>
</el-drawer>
<!--PC端画布区域-->
<canvas-opt-bar v-if="!previewVisible&&!mobileLayoutStatus"/>
<canvas-opt-bar v-if="!previewVisible&&!mobileLayoutStatus" />
<de-canvas
v-if="!previewVisible&&!mobileLayoutStatus"
ref="canvasMainRef"
......@@ -196,7 +196,7 @@
:style="customCanvasMobileStyle"
class="this_mobile_canvas"
>
<el-row class="this_mobile_canvas_top"/>
<el-row class="this_mobile_canvas_top" />
<el-row class="this_mobile_canvas_inner_top">
{{ panelInfo.name }}
</el-row>
......@@ -205,7 +205,7 @@
class="this_mobile_canvas_main"
:style="mobileCanvasStyle"
>
<canvas-opt-bar v-if="!previewVisible&&mobileLayoutStatus"/>
<canvas-opt-bar v-if="!previewVisible&&mobileLayoutStatus" />
<de-canvas
v-if="!previewVisible&&mobileLayoutStatus"
ref="canvasMainRef"
......@@ -243,14 +243,14 @@
/>
</el-col>
</el-row>
<el-row class="this_mobile_canvas_bottom"/>
<el-row class="this_mobile_canvas_bottom" />
</div>
</el-col>
<el-col
:span="16"
class="this_mobile_canvas_cell this_mobile_canvas_wait_cell"
>
<component-wait/>
<component-wait />
</el-col>
</el-row>
</de-main-container>
......@@ -268,7 +268,7 @@
/>
</div>
<div v-if="showBatchViewToolsAside">
<chart-style-batch-set/>
<chart-style-batch-set />
</div>
<div v-if="!showViewToolsAside&&!showBatchViewToolsAside">
<el-row style="height: 40px">
......@@ -287,7 +287,7 @@
>{{ $t('panel.position_adjust') }}</span>
</el-row>
<el-row>
<position-adjust v-if="curComponent&&!curComponent.auxiliaryMatrix"/>
<position-adjust v-if="curComponent&&!curComponent.auxiliaryMatrix" />
<div
v-else
class="view-selected-message-class"
......
......@@ -302,7 +302,7 @@
clearable
/>
<div class="field-height">
<el-divider/>
<el-divider />
<draggable
v-model="linkJumpInfoArray"
:options="{group:{name: 'drag',pull:'clone'},sort: true}"
......
......@@ -174,7 +174,7 @@
/>
</span>
<span v-if="data.nodeType === 'folder'">
<svg-icon icon-class="scene"/>
<svg-icon icon-class="scene" />
</span>
<span
:class="data.status"
......@@ -211,7 +211,7 @@
<el-dropdown-item
:command="beforeClickEdit('folder', 'new', data, node)"
>
<svg-icon icon-class="scene"/>
<svg-icon icon-class="scene" />
<span style="margin-left: 5px">{{ $t('panel.groupAdd') }}</span>
</el-dropdown-item>
<el-dropdown-item
......@@ -334,7 +334,7 @@
:label="$t('commons.name')"
prop="name"
>
<el-input v-model="groupForm.name"/>
<el-input v-model="groupForm.name" />
</el-form-item>
</el-form>
<div
......@@ -345,8 +345,8 @@
size="mini"
@click="close()"
>{{
$t('panel.cancel')
}}
$t('panel.cancel')
}}
</el-button>
<el-button
type="primary"
......@@ -422,8 +422,8 @@
size="mini"
@click="closeMoveGroup()"
>{{
$t('dataset.cancel')
}}
$t('dataset.cancel')
}}
</el-button>
<el-button
:disabled="groupMoveConfirmDisabled"
......
......@@ -8,7 +8,7 @@
@tab-click="handleClick"
>
<el-tab-pane name="PanelList">
<span slot="label"><i class="el-icon-document tablepanel-i"/>{{ $t('panel.panel_list') }}</span>
<span slot="label"><i class="el-icon-document tablepanel-i" />{{ $t('panel.panel_list') }}</span>
<panel-list
v-show="activeName==='PanelList'"
ref="panelList"
......@@ -18,14 +18,14 @@
name="panels_star"
:lazy="true"
>
<span slot="label"><i class="el-icon-star-off tablepanel-i"/>{{ $t('panel.store') }}</span>
<enshrine v-if="activeName==='panels_star'"/>
<span slot="label"><i class="el-icon-star-off tablepanel-i" />{{ $t('panel.store') }}</span>
<enshrine v-if="activeName==='panels_star'" />
</el-tab-pane>
<el-tab-pane
name="panels_share"
:lazy="true"
>
<span slot="label"><i class="el-icon-share tablepanel-i"/>{{ $t('panel.share') }}</span>
<span slot="label"><i class="el-icon-share tablepanel-i" />{{ $t('panel.share') }}</span>
<share-tree
v-if="showShare"
ref="share_tree"
......
......@@ -17,7 +17,7 @@
style="border-bottom: 1px solid;border-bottom-color:#E6E6E6;"
>
<div style="height: 100%;">
<share-head/>
<share-head />
</div>
</el-row>
<el-row
......@@ -31,10 +31,13 @@
:span="12"
style="font-size: 14px;display: flex"
>
<div :title="showName" style="text-overflow:ellipsis;overflow: hidden;white-space: nowrap;font-size: 14px;max-width: 300px"><span
class="panel-name"
>
{{ panelInfo.name || '测试仪表板' }}</span>
<div
:title="showName"
style="text-overflow:ellipsis;overflow: hidden;white-space: nowrap;font-size: 14px;max-width: 300px"
><span
class="panel-name"
>
{{ panelInfo.name || '测试仪表板' }}</span>
<span
v-if="panelInfo.isDefault"
style="color: green;font-size: 12px"
......@@ -49,41 +52,47 @@
v-if="!hasStar && panelInfo && showType !== 1&&panelInfo.status==='publish'"
style="margin-left: 9px"
>
<el-tooltip :content="$t('panel.store')">
<i
class="el-icon-star-off"
@click="star"
/>
</el-tooltip>
</span>
<el-tooltip :content="$t('panel.store')">
<i
class="el-icon-star-off"
@click="star"
/>
</el-tooltip>
</span>
<span
v-if="hasStar && panelInfo && showType !== 1&&panelInfo.status==='publish'"
style="margin-left: 9px"
>
<el-tooltip :content="$t('commons.cancel') + $t('panel.store')">
<i
class="el-icon-star-on"
@click="unstar"
/>
</el-tooltip>
</span>
<el-tooltip :content="$t('commons.cancel') + $t('panel.store')">
<i
class="el-icon-star-on"
@click="unstar"
/>
</el-tooltip>
</span>
<template v-if="panelInfo.creatorName">
<el-divider
style="margin: 0 16px;"
direction="vertical"
/>
<span :title="panelInfo.creatorName" class="panel-create">
{{ $t('panel.create_by') + ':' + panelInfo.creatorName }}
</span>
<span
:title="panelInfo.creatorName"
class="panel-create"
>
{{ $t('panel.create_by') + ':' + panelInfo.creatorName }}
</span>
</template>
<el-popover
placement="right-start"
width="400"
trigger="click"
>
<panel-detail-info/>
<svg-icon slot="reference" style="margin-left: 4px;cursor: pointer;font-size: 14px;" class="icon-class"
icon-class="icon_info_outlined"
<panel-detail-info />
<svg-icon
slot="reference"
style="margin-left: 4px;cursor: pointer;font-size: 14px;"
class="icon-class"
icon-class="icon_info_outlined"
/>
</el-popover>
</div>
......@@ -433,14 +442,14 @@ export default {
}
},
computed: {
showName(){
showName() {
let name = this.panelInfo.name || '测试仪表板'
if(this.panelInfo.isDefault){
name = name +'('+ this.$t('panel.default_panel_name') +':'+ this.panelInfo.defaultPanelName +')'
if (this.panelInfo.isDefault) {
name = name + '(' + this.$t('panel.default_panel_name') + ':' + this.panelInfo.defaultPanelName + ')'
}
if(this.panelInfo.sourcePanelName){
name = name +'('+ this.$t('panel.source_panel_name') +':'+ this.panelInfo.sourcePanelName +')'
if (this.panelInfo.sourcePanelName) {
name = name + '(' + this.$t('panel.source_panel_name') + ':' + this.panelInfo.sourcePanelName + ')'
}
return name
},
......
......@@ -47,7 +47,7 @@
@command="(type) => clickMore(type, ele)"
>
<span class="el-dropdown-link">
<i class="el-icon-more"/>
<i class="el-icon-more" />
</span>
<el-dropdown-menu
slot="dropdown"
......
......@@ -37,23 +37,34 @@
</el-tab-pane>
<!--query 参数-->
<el-tab-pane :label="$t('datasource.query_param')" name="parameters">
<el-tooltip class="item-tabs" effect="dark" :content="$t('datasource.query_info')"
placement="top-start" slot="label">
<span>{{ $t('datasource.query_param') }}
<div class="el-step__icon is-text ms-api-col ms-header" v-if="request.arguments.length>1">
<div class="el-step__icon-inner">{{ request.arguments.length - 1 }}</div>
</div>
</span>
<el-tab-pane
:label="$t('datasource.query_param')"
name="parameters"
>
<el-tooltip
slot="label"
class="item-tabs"
effect="dark"
:content="$t('datasource.query_info')"
placement="top-start"
>
<span>{{ $t('datasource.query_param') }}
<div
v-if="request.arguments.length>1"
class="el-step__icon is-text ms-api-col ms-header"
>
<div class="el-step__icon-inner">{{ request.arguments.length - 1 }}</div>
</div>
</span>
</el-tooltip>
<api-variable
@editScenarioAdvance="editScenarioAdvance"
:scenario-definition="scenarioDefinition"
v-if="activeName === 'parameters'"
:with-more-setting="true"
:is-read-only="isReadOnly"
:isShowEnable="isShowEnable"
:is-show-enable="isShowEnable"
:parameters="request.arguments"
v-if="activeName === 'parameters'"
@editScenarioAdvance="editScenarioAdvance"
/>
</el-tab-pane>
......
......@@ -800,7 +800,7 @@ export default {
data.request = JSON.stringify(data.request)
this.loading = true
this.disabledNext = true
checkApiDatasource({'data': Base64.encode(JSON.stringify(data))}).then(res => {
checkApiDatasource({ 'data': Base64.encode(JSON.stringify(data)) }).then(res => {
this.loading = false
this.disabledNext = false
this.apiItem.status = 'Success'
......@@ -858,7 +858,7 @@ export default {
const data = JSON.parse(JSON.stringify(this.apiItem))
data.request = JSON.stringify(data.request)
this.loading = true
checkApiDatasource({'data': Base64.encode(JSON.stringify(data))}).then(res => {
checkApiDatasource({ 'data': Base64.encode(JSON.stringify(data)) }).then(res => {
this.loading = false
this.$success(i18n.t('commons.success'))
this.apiItem.fields = res.data.fields
......
......@@ -71,7 +71,10 @@
popper-class="api-table-delete"
trigger="click"
>
<svg-icon :disabled="disabled" icon-class="icon_info_filled" />
<svg-icon
:disabled="disabled"
icon-class="icon_info_filled"
/>
<div class="tips">
{{ $t('datasource.delete_this_item') }}
</div>
......@@ -541,8 +544,8 @@
:label="$t('datasource.isUseJsonPath')"
>
<el-input
:disabled="!apiItem.useJsonPath"
v-model="apiItem.jsonPath"
:disabled="!apiItem.useJsonPath"
:placeholder="$t('datasource.jsonpath_info')"
class="input-with-select"
size="small"
......@@ -562,18 +565,24 @@
</el-select>
<el-button
:disabled="!apiItem.useJsonPath"
slot="append"
:disabled="!apiItem.useJsonPath"
@click="showApiData"
>{{ $t('datasource.show_api_data') }}
</el-button>
</el-input>
</el-form-item>
<div class="row-rules" v-show="apiItem.useJsonPath">
<div
v-show="apiItem.useJsonPath"
class="row-rules"
>
<span>{{ $t('datasource.column_info') }}</span>
</div>
<div class="table-container de-svg-in-table" v-show="apiItem.useJsonPath">
<div
v-show="apiItem.useJsonPath"
class="table-container de-svg-in-table"
>
<el-table
ref="apiItemTable"
:data="originFieldItem.jsonFields"
......@@ -1085,7 +1094,7 @@ export default {
originFieldItem: {
jsonFields: [],
fields: []
},
}
}
},
methods: {
......@@ -1151,7 +1160,7 @@ export default {
const data = Base64.encode(JSON.stringify(this.apiItem))
this.loading = true
this.disabledNext = true
checkApiDatasource({'data': data})
checkApiDatasource({ 'data': data })
.then((res) => {
this.loading = false
this.disabledNext = false
......@@ -1174,16 +1183,16 @@ export default {
})
}
},
showApiData(){
showApiData() {
this.$refs.apiItemBasicInfo.validate((valid) => {
if (valid) {
const data = Base64.encode(JSON.stringify(this.apiItem))
this.loading = true
checkApiDatasource({'data': data, 'type': 'apiStructure'})
checkApiDatasource({ 'data': data, 'type': 'apiStructure' })
.then((res) => {
res.data.jsonFields.forEach(((item) => {
res.data.jsonFields.forEach((item) => {
item.checked = false
}))
})
this.originFieldItem.jsonFields = res.data.jsonFields
this.loading = false
this.$success(i18n.t('commons.success'))
......@@ -1227,10 +1236,10 @@ export default {
for (let i = 0; i < this.form.apiConfiguration.length; i++) {
if (this.form.apiConfiguration[i].serialNumber === this.apiItem.serialNumber) {
this.certinKey = !this.certinKey
if(this.form.apiConfiguration[i].name !== this.apiItem.name){
if (this.form.apiConfiguration[i].name !== this.apiItem.name) {
this.apiItem.reName = true
this.apiItem.orgName = this.form.apiConfiguration[i].name
}else {
} else {
this.apiItem.reName = false
}
this.form.apiConfiguration[i] = JSON.parse(JSON.stringify(this.apiItem))
......
......@@ -46,13 +46,13 @@
<div style="height: calc(100% - 56px)">
<DsFormContent
ref="DsFormContent"
@editeTodisable="backToList"
:outer-params="outerParams"
:reference-position="referencePosition"
:form-type.sync="formType"
:type-map.sync="typeMap"
:can-edit.sync="canEdit"
:form-loading.sync="formLoading"
@editeTodisable="backToList"
@refreshType="refreshType"
@closeDraw="closeDraw"
@setParams="setParams"
......@@ -96,7 +96,7 @@ export default {
},
tips() {
const { id, showModel } = this.params
if(showModel === 'copy'){
if (showModel === 'copy') {
return this.$t('datasource.copy')
}
return id && showModel === 'show' && !this.canEdit
......
......@@ -71,8 +71,8 @@
</el-form>
<div class="de-row-rules">
<span>{{
positionCheck('appMarket') ? $t('app_template.datasource_info') : $t('datasource.basic_info')
}}</span>
positionCheck('appMarket') ? $t('app_template.datasource_info') : $t('datasource.basic_info')
}}</span>
</div>
<el-form
ref="historyDsForm"
......@@ -122,25 +122,25 @@
<span
v-if="
item.status !== 'Error' &&
item.status !== 'Warning'
"
item.status !== 'Warning'
"
>
<svg-icon
icon-class="db-de"
/>
</span>
<svg-icon
icon-class="db-de"
/>
</span>
<span v-if="item.status === 'Error'">
<svg-icon
icon-class="de-ds-error"
class="ds-icon-scene"
/>
</span>
<svg-icon
icon-class="de-ds-error"
class="ds-icon-scene"
/>
</span>
<span v-if="item.status === 'Warning'">
<svg-icon
icon-class="de-ds-warning"
class="ds-icon-scene"
/>
</span>
<svg-icon
icon-class="de-ds-warning"
class="ds-icon-scene"
/>
</span>
<span>
{{ item.name }}
</span>
......@@ -273,7 +273,7 @@
formType === 'add'
? true
: (hasDataPermission('manage', outerParams.panelPrivileges)
||hasDataPermission('manage', outerParams.datasetPrivileges))
||hasDataPermission('manage', outerParams.datasetPrivileges))
"
@click="validaDatasource"
>{{ $t('commons.validate') }}
......@@ -840,16 +840,16 @@ export default {
},
saveAppMarketHistory() {
this.$refs.historyDsForm.validate(valid => {
if (!valid) {
return false
}
const appApplyForm = {
...this.attachForm,
...this.historyDsForm
}
const method = this.formType === 'add' ? appApply : appEdit
this.appApplyMethod(method, appApplyForm)
if (!valid) {
return false
}
const appApplyForm = {
...this.attachForm,
...this.historyDsForm
}
const method = this.formType === 'add' ? appApply : appEdit
this.appApplyMethod(method, appApplyForm)
}
)
},
save() {
......@@ -996,10 +996,10 @@ export default {
}
if (this.positionCheck('appMarket')) {
this.$refs.attachParamsForm.validate(valid => {
if (!valid) {
return false
}
if (!valid) {
return false
}
}
)
}
this.$refs.dsForm.validate((valid) => {
......@@ -1116,7 +1116,7 @@ export default {
},
reloadStatus(statusMap = {}) {
this.form.apiConfiguration.forEach(ele => {
ele.status = statusMap[ele.name] || ele.status
ele.status = statusMap[ele.name] || ele.status
})
},
validaDatasource() {
......@@ -1151,10 +1151,10 @@ export default {
}
if (this.positionCheck('appMarket')) {
this.$refs.attachParamsForm.validate(valid => {
if (!valid) {
return false
}
if (!valid) {
return false
}
}
)
}
this.$refs.dsForm.validate((valid) => {
......
......@@ -22,8 +22,8 @@
<div class="ds-top">
<deBtn
v-if="privileges && canEdit"
secondary
key="cancel"
secondary
@click="editDatasource(false)"
>{{ $t('commons.cancel') }}
</deBtn>
......@@ -64,11 +64,11 @@
</div>
<div style="height: calc(100% - 36px)">
<ds-form-content
@editeTodisable="editDatasource"
:canEdit="canEdit"
ref="DsFormContent"
@refresh-type="refreshType"
:can-edit="canEdit"
:config-from-tabs="configFromTabs"
@editeTodisable="editDatasource"
@refresh-type="refreshType"
/>
</div>
</template>
......@@ -90,7 +90,7 @@ export default {
data() {
return {
activeName: 'detail',
canEdit: false,
canEdit: false
}
},
computed: {
......
......@@ -173,7 +173,10 @@
<i class="el-icon-edit" />
{{ $t('chart.edit') }}
</el-dropdown-item>
<el-dropdown-item command="copy" v-show="showView === 'Datasource'">
<el-dropdown-item
v-show="showView === 'Datasource'"
command="copy"
>
<svg-icon
icon-class="de-copy"
class="de-copy-icon"
......@@ -432,7 +435,7 @@ export default {
},
methods: {
getDatasourceRelationship({ queryType, label, id }) {
return getDatasourceRelationship(id).then((res) => {
return getDatasourceRelationship(id).then((res) => {
const arr = res.data || []
this.treeData = []
this.dfsTree(arr, { queryType, label })
......@@ -713,7 +716,7 @@ export default {
this.dialogTitle = this.$t('datasource.edit_driver')
this.driverForm = { ...row }
},
_handleCopy(row){
_handleCopy(row) {
if (this.showView === 'Datasource') {
const param = { ...row, ...{ showModel: 'copy' }}
this.switchMain('DsForm', param, this.tData, this.dsTypes)
......
<template>
<div>
<span>{{ someProp.title }}</span>
<br />
<br>
<span class="use-html">{{ someProp.content }}</span>
<br />
<span @click="change" class="link-msg">{{ someProp.link }}</span>
<br>
<span
class="link-msg"
@click="change"
>{{ someProp.link }}</span>
</div>
</template>
<script>
......@@ -13,7 +16,7 @@ export default {
someProp: {
type: Object,
default: () => {}
},
}
},
methods: {
change() {
......@@ -27,4 +30,4 @@ export default {
color: #307eff;
cursor: pointer;
}
</style>
\ No newline at end of file
</style>
<template>
<div :style="chartSize">
<div id="main" :style="chartSizeMax"></div>
<div
id="main"
:style="chartSizeMax"
/>
</div>
</template>
......@@ -16,7 +19,7 @@ export default {
chartSize: {
type: Object,
default: () => {}
},
}
},
data() {
return {
......@@ -36,8 +39,8 @@ export default {
computed: {
chartSizeMax() {
const { height } = this.chartSize
return this.maxSize > parseInt(height)/25 ? {
height: this.maxSize * 25 + 'px',
return this.maxSize > parseInt(height) / 25 ? {
height: this.maxSize * 25 + 'px',
width: this.chartSize.width
} : this.chartSize
}
......@@ -141,7 +144,7 @@ export default {
})
},
deleteRepeat(arr = []) {
let list = JSON.parse(JSON.stringify(arr))
const list = JSON.parse(JSON.stringify(arr))
const repeatPanel = {}
list.forEach((ele) => {
if (ele[6] === this.datasourcePanel[this.current.queryType]) {
......@@ -194,7 +197,7 @@ export default {
arr.forEach((ele) => {
const [index, start, end, width, id, name, type, pid] = ele
if (type === this.datasourcePanel[this.current.queryType]) {
let dataset = dataItemListMap[pid]
const dataset = dataItemListMap[pid]
if (repeatPanel[id]) {
repeatPanel[id].push({ index, start })
} else {
......@@ -236,10 +239,10 @@ export default {
const ctx = c.getContext('2d')
ctx.font = '14px Arial'
const dataItemList = []
let list = []
const list = []
const repeatPanel = {}
let max = {
const max = {
dataset: 0,
datasource: 0,
panel: 0
......@@ -248,7 +251,7 @@ export default {
const { queryType, num, label } = this.current
max[queryType] = ctx.measureText(label).width + 30
if (!arr.length)
if (!arr.length) {
return [
[[0, 0, max[queryType], max[queryType], num, label, queryType, 0]],
{
......@@ -257,10 +260,11 @@ export default {
panel: 0
}
]
}
arr.forEach((ele, index) => {
const { id, name, type, pid } = ele
let width = ctx.measureText(name).width + 30
const width = ctx.measureText(name).width + 30
max[type] = Math.max(width, max[type])
dataItemList.push([width, id, name, type, pid])
})
......@@ -331,7 +335,7 @@ export default {
30
)
}
let gap = {
const gap = {
dataset: maxGap('dataset', 'datasource'),
datasource: maxGap('datasource', 'datasource'),
panel: maxGap('panel', 'dataset')
......@@ -360,11 +364,11 @@ export default {
const lineEnd = [clickNode[0]]
lineData = lineData.map(ele => {
let arr = [...ele]
const arr = [...ele]
if (clickNode[0] === ele[0]) {
arr.push(1)
lineEnd.push(ele[3])
} else if(clickNode[0] === ele[3]) {
} else if (clickNode[0] === ele[3]) {
arr.push(1)
lineEnd.push(ele[0])
} else {
......@@ -374,20 +378,20 @@ export default {
})
data = data.map(ele => {
let arr = [...ele]
const arr = [...ele]
arr.push(Boolean(lineEnd.includes(ele[0])))
return arr
})
if (this.maxSize !== data.length) {
this.maxSize = data.length
return
}
let option = {
const option = {
xAxis: {
show: false, //不显示分隔线,
show: false, // 不显示分隔线,
splitLine: {
show: false //不显示分隔线
show: false // 不显示分隔线
}
},
grid: {
......@@ -406,7 +410,7 @@ export default {
show: false,
type: 'category',
splitLine: {
show: false //不显示分隔线
show: false // 不显示分隔线
}
},
series: [
......@@ -419,11 +423,11 @@ export default {
y: 0
},
roam: true,
renderItem: function (params, api) {
let categoryIndex = api.value(0)
let startPoint = api.coord([api.value(1), categoryIndex])
let width = api.value(3)
let height = 22
renderItem: function(params, api) {
const categoryIndex = api.value(0)
const startPoint = api.coord([api.value(1), categoryIndex])
const width = api.value(3)
const height = 22
const imageType = {
datasource: '/static/svg/de-datasource.svg',
......@@ -431,19 +435,18 @@ export default {
dataset: '/static/svg/de-dataset.svg'
}
return {
type: 'group', //当需要多个自定义拼接时,需要用group,此案例是文字和图形的拼接
type: 'group', // 当需要多个自定义拼接时,需要用group,此案例是文字和图形的拼接
children: [
{
type: 'text',
position: [
startPoint[0] + gapDetail[api.value(6)],
startPoint[1] - height / 2
], //相对位置
], // 相对位置
z2: 10,
style: {
text: isNaN(api.value(5)) ? data.find(ele => ele[4] === api.value(4))[5] : api.value(5), //data中取值
text: isNaN(api.value(5)) ? data.find(ele => ele[4] === api.value(4))[5] : api.value(5), // data中取值
color: '#1F2329',
x: 25,
y: 5
......@@ -503,12 +506,12 @@ export default {
y: [0, 3]
},
roam: true,
renderItem: function (params, api) {
let categoryIndex = api.value(0)
let categoryIndex2 = api.value(3)
let startPoint = api.coord([api.value(1), categoryIndex])
let endPoint = api.coord([api.value(2), categoryIndex2])
let height = 20
renderItem: function(params, api) {
const categoryIndex = api.value(0)
const categoryIndex2 = api.value(3)
const startPoint = api.coord([api.value(1), categoryIndex])
const endPoint = api.coord([api.value(2), categoryIndex2])
const height = 20
function startPointX1() {
if (api.value(5) === 'dataset') {
......@@ -526,10 +529,10 @@ export default {
}
}
let x1 = startPointX1()
const x1 = startPointX1()
return {
type: 'group', //当需要多个自定义拼接时,需要用group,此案例是文字和图形的拼接
type: 'group', // 当需要多个自定义拼接时,需要用group,此案例是文字和图形的拼接
children: [
{
type: 'bezierCurve',
......@@ -539,10 +542,10 @@ export default {
y1: startPoint[1],
x2: endPoint[0] + gapDetail[api.value(5)],
y2: endPoint[1],
cpx1:endPoint[0] + gapDetail[api.value(5)] - 50,
cpx2:endPoint[0] + gapDetail[api.value(5)] - 10,
cpy1:endPoint[1],
cpy2:endPoint[1],
cpx1: endPoint[0] + gapDetail[api.value(5)] - 50,
cpx2: endPoint[0] + gapDetail[api.value(5)] - 10,
cpy1: endPoint[1],
cpy2: endPoint[1],
percent: 1
},
style: {
......@@ -559,9 +562,9 @@ export default {
]
}
this.myChart.setOption(option, true)
this.myChart.on('click', function (params) {
that.initEchart(params.value)
});
this.myChart.on('click', function(params) {
that.initEchart(params.value)
})
}
}
}
......
......@@ -47,7 +47,10 @@
:content="$t('system_parameter_setting.front_time_out')"
placement="top"
>
<svg-icon class="tips" icon-class="icon_info_outlined" />
<svg-icon
class="tips"
icon-class="icon_info_outlined"
/>
</el-tooltip>
</template>
<el-input
......
......@@ -90,7 +90,10 @@
:content="$t('system_parameter_setting.test_mail_recipient')"
placement="top"
>
<svg-icon icon-class="icon_info_outlined" class="tips-not-absolute" />
<svg-icon
icon-class="icon_info_outlined"
class="tips-not-absolute"
/>
</el-tooltip>
</template>
<dePwd
......@@ -106,7 +109,10 @@
:content="$t('system_parameter_setting.to_enable_ssl')"
placement="top"
>
<svg-icon icon-class="icon_info_outlined" class="tips-not-absolute" />
<svg-icon
icon-class="icon_info_outlined"
class="tips-not-absolute"
/>
</el-tooltip>
</el-checkbox>
......@@ -118,7 +124,10 @@
:content="$t('system_parameter_setting.to_enable_tsl')"
placement="top"
>
<svg-icon icon-class="icon_info_outlined" class="tips-not-absolute" />
<svg-icon
icon-class="icon_info_outlined"
class="tips-not-absolute"
/>
</el-tooltip>
</el-checkbox>
</el-form-item>
......
......@@ -7,17 +7,30 @@
label-width="auto"
label-position="right"
>
<el-form-item v-if="!oldPwd" :label="$t('user.origin_passwd')" prop="oldPwd">
<el-form-item
v-if="!oldPwd"
:label="$t('user.origin_passwd')"
prop="oldPwd"
>
<dePwd v-model="form.oldPwd" />
</el-form-item>
<el-form-item :label="$t('user.new_passwd')" prop="newPwd">
<el-form-item
:label="$t('user.new_passwd')"
prop="newPwd"
>
<dePwd v-model="form.newPwd" />
</el-form-item>
<el-form-item :label="$t('user.confirm_passwd')" prop="repeatPwd">
<el-form-item
:label="$t('user.confirm_passwd')"
prop="repeatPwd"
>
<dePwd v-model="form.repeatPwd" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save">{{
<el-button
type="primary"
@click="save"
>{{
$t('commons.confirm')
}}</el-button>
</el-form-item>
......@@ -34,7 +47,7 @@ export default {
props: {
oldPwd: {
type: String,
default: ""
default: ''
}
},
data() {
......
......@@ -23,7 +23,7 @@ export default {
},
created() {
this.$store.dispatch('app/toggleSideBarHide', true)
},
}
}
</script>
<style lang="scss" scoped>
......
......@@ -126,8 +126,8 @@
@current-change="handleCurrentChange"
>
<el-table-column
prop="username"
key="username"
prop="username"
label="ID"
/>
<el-table-column
......@@ -139,8 +139,8 @@
/>
<!-- <el-table-column prop="gender" :label="$t('commons.gender')" width="60" /> -->
<el-table-column
prop="from"
key="from"
prop="from"
:label="$t('user.source')"
width="80"
>
......@@ -261,7 +261,10 @@
popper-class="reset-pwd"
trigger="click"
>
<svg-icon class="reset-pwd-icon" icon-class="icon_info_filled" />
<svg-icon
class="reset-pwd-icon"
icon-class="icon_info_filled"
/>
<div class="tips">{{ $t('user.recover_pwd') }}</div>
<div class="editer-form-title">
<span
......
......@@ -30,12 +30,12 @@
/>
</el-row>
<el-row class="top_banner_card">
<wizard-card :details="cardList[0]"/>
<wizard-card :details="cardList[0]" />
<wizard-card
:details="cardList[1]"
style="margin:0 24px 0 24px"
/>
<wizard-card-enterprise :details="cardList[2]"/>
<wizard-card-enterprise :details="cardList[2]" />
</el-row>
<el-row class="content_middle">
<div class="content_middle_left">
......@@ -44,15 +44,15 @@
<div class="content_middle_more"><a
target="_blank"
href="https://space.bilibili.com/510493147/channel/collectiondetail?sid=262774"
>{{ $t('wizard.more') }}<i class="el-icon-arrow-right"/></a></div>
>{{ $t('wizard.more') }}<i class="el-icon-arrow-right" /></a></div>
</el-row>
<el-row style="margin-top: 12px">
<video-card :details="videoList[0]"/>
<video-card :details="videoList[0]" />
<video-card
style="margin:0 12px 0 12px"
:details="videoList[1]"
/>
<video-card :details="videoList[2]"/>
<video-card :details="videoList[2]" />
</el-row>
</div>
<div class="content_middle_right">
......@@ -61,7 +61,7 @@
<div class="content_middle_more"><a
target="_blank"
href="https://blog.fit2cloud.com/categories/dataease"
>{{ $t('wizard.more') }}<i class="el-icon-arrow-right"/></a></div>
>{{ $t('wizard.more') }}<i class="el-icon-arrow-right" /></a></div>
</el-row>
<el-row>
<ul class="ul-custom">
......@@ -93,17 +93,17 @@
</el-row>
<el-row class="contact_content">
{{ $t('wizard.web') }}<a
style="text-decoration:underline;"
target="_blank"
href="https://www.dataease.io"
>www.dataease.io</a>
style="text-decoration:underline;"
target="_blank"
href="https://www.dataease.io"
>www.dataease.io</a>
</el-row>
<el-row class="contact_content">
{{ $t('wizard.bbs') }}<a
style="text-decoration:underline;"
target="_blank"
href="https://bbs.fit2cloud.com/c/de"
>https://bbs.fit2cloud.com/c/de</a>
style="text-decoration:underline;"
target="_blank"
href="https://bbs.fit2cloud.com/c/de"
>https://bbs.fit2cloud.com/c/de</a>
</el-row>
</div>
......
"use strict";
const path = require("path");
const defaultSettings = require("./src/settings.js");
'use strict'
const path = require('path')
const defaultSettings = require('./src/settings.js')
const pkg = require("./package.json");
const pkg = require('./package.json')
const CopyWebpackPlugin = require("copy-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin')
// const CompressionPlugin = require('compression-webpack-plugin')
const webpack = require("webpack");
const AddAssetHtmlPlugin = require("add-asset-html-webpack-plugin");
const webpack = require('webpack')
const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin')
function resolve(dir) {
return path.join(__dirname, dir);
return path.join(__dirname, dir)
}
const name = defaultSettings.title || "vue Admin Template"; // page title
const name = defaultSettings.title || 'vue Admin Template' // page title
const port = process.env.port || process.env.npm_config_port || 9528; // dev port
const parallel = process.env.NODE_ENV === "development";
const port = process.env.port || process.env.npm_config_port || 9528 // dev port
const parallel = process.env.NODE_ENV === 'development'
module.exports = {
productionSourceMap: true,
parallel,
......@@ -23,78 +23,78 @@ module.exports = {
devServer: {
port: port,
proxy: {
"^(?!/login)": {
target: "http://192.168.1.100:8081/",
ws: true,
},
'^(?!/login)': {
target: 'http://192.168.1.100:8081/',
ws: true
}
},
open: true,
overlay: {
warnings: false,
errors: true,
},
errors: true
}
},
pages: {
index: {
entry: "src/main.js",
template: "public/index.html",
filename: "index.html",
},
entry: 'src/main.js',
template: 'public/index.html',
filename: 'index.html'
}
},
configureWebpack: {
name: name,
devtool: "source-map",
devtool: 'source-map',
resolve: {
alias: {
"@": resolve("src"),
},
'@': resolve('src')
}
},
output:
process.env.NODE_ENV === "development"
process.env.NODE_ENV === 'development'
? {}
: {
filename: `js/[name].[contenthash:8].${pkg.version}.js`,
publicPath: "/",
chunkFilename: `js/[name].[contenthash:8].${pkg.version}.js`,
},
filename: `js/[name].[contenthash:8].${pkg.version}.js`,
publicPath: '/',
chunkFilename: `js/[name].[contenthash:8].${pkg.version}.js`
},
plugins: [
new CopyWebpackPlugin([
{
from: path.join(__dirname, "static"),
to: path.join(__dirname, "dist/static"),
},
from: path.join(__dirname, 'static'),
to: path.join(__dirname, 'dist/static')
}
]),
new webpack.DllReferencePlugin({
context: process.cwd(),
manifest: require("./public/vendor/vendor-manifest.json"),
manifest: require('./public/vendor/vendor-manifest.json')
}),
// 将 dll 注入到 生成的 html 模板中
new AddAssetHtmlPlugin({
// dll文件位置
filepath: path.resolve(__dirname, "./public/vendor/*.js"),
filepath: path.resolve(__dirname, './public/vendor/*.js'),
// dll 引用路径
publicPath: "./vendor",
publicPath: './vendor',
// dll最终输出的目录
outputPath: "./vendor",
}),
],
outputPath: './vendor'
})
]
},
chainWebpack: (config) => {
config.module.rules.delete("svg"); // 删除默认配置中处理svg,
config.module.rules.delete('svg') // 删除默认配置中处理svg,
// const svgRule = config.module.rule('svg')
// svgRule.uses.clear()
config.module
.rule("svg-sprite-loader")
.rule('svg-sprite-loader')
.test(/\.svg$/)
.include.add(resolve("src/icons")) // 处理svg目录
.include.add(resolve('src/icons')) // 处理svg目录
.end()
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: "icon-[name]",
});
if (process.env.NODE_ENV === "production") {
symbolId: 'icon-[name]'
})
if (process.env.NODE_ENV === 'production') {
/* config.plugin('compressionPlugin').use(new CompressionPlugin({
test: /\.(js|css|less)$/, // 匹配文件名
threshold: 10240, // 对超过10k的数据压缩
......@@ -104,24 +104,24 @@ module.exports = {
}
config.module
.rule("icons")
.rule('icons')
.test(/\.svg$/)
.include.add(resolve("src/deicons"))
.include.add(resolve('src/deicons'))
.end()
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: "[name]",
});
symbolId: '[name]'
})
},
css: {
loaderOptions: {
sass: {
prependData: `@import "@/style/index.scss"`,
},
prependData: `@import "@/style/index.scss"`
}
},
extract: {
ignoreOrder: true,
},
},
};
ignoreOrder: true
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论