forked from github/dataease
fix: 数据源页面刷新路由参数持久化 数据集保存跳转 bug修复
This commit is contained in:
parent
b19a20f2e7
commit
21a953eafb
@ -148,4 +148,11 @@ export function updateDriver(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export default { dsGrid, addDs, editDs, delDs, validateDs, listDatasource, getSchema }
|
||||
export function getDatasourceDetail(id) {
|
||||
return request({
|
||||
url: `/datasource/get/${id}`,
|
||||
loading: true,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
export default { getDatasourceDetail, dsGrid, addDs, editDs, delDs, validateDs, listDatasource, getSchema }
|
||||
|
@ -520,7 +520,7 @@ export default {
|
||||
left_to_edit: 'Select the data table on the left to edit',
|
||||
cannot_be_duplicate: 'The dataset name cannot be duplicate',
|
||||
set_saved_successfully: 'Data set saved successfully',
|
||||
to_start_using: 'Browse the contents of your database, tables, and columns. Select a database to start using.',
|
||||
to_start_using: 'Browse the contents of your database, tables and columns. Choose a database to get started.',
|
||||
to_run_query: 'Click to run query',
|
||||
the_running_results: 'You can view the running results'
|
||||
},
|
||||
|
@ -32,7 +32,6 @@
|
||||
clearable
|
||||
/>
|
||||
<div class="table-checkbox-list">
|
||||
<!-- <div class="item" v-for="(ele, index) in tableData"> -->
|
||||
<el-checkbox-group v-model="checkTableList" size="small">
|
||||
<el-tooltip
|
||||
:disabled="t.enableCheck"
|
||||
@ -58,7 +57,6 @@
|
||||
</div>
|
||||
</el-tooltip>
|
||||
</el-checkbox-group>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-detail">
|
||||
|
@ -33,7 +33,6 @@
|
||||
clearable
|
||||
/>
|
||||
<div class="table-checkbox-list">
|
||||
<!-- <div class="item" v-for="(ele, index) in tableData"> -->
|
||||
<el-checkbox-group v-model="checkTableList" size="small">
|
||||
<el-tooltip
|
||||
:disabled="t.enableCheck"
|
||||
@ -59,7 +58,6 @@
|
||||
</div>
|
||||
</el-tooltip>
|
||||
</el-checkbox-group>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-detail">
|
||||
|
@ -1,11 +1,5 @@
|
||||
<template>
|
||||
<div class="dataset-excel">
|
||||
<!-- <el-button size="mini" @click="cancel">
|
||||
{{ $t('dataset.cancel') }}
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="save">
|
||||
{{ $t('dataset.confirm') }}
|
||||
</el-button> -->
|
||||
<p v-if="!showLeft" @click="showLeft = true" class="arrow-right">
|
||||
<i class="el-icon-d-arrow-right"></i>
|
||||
</p>
|
||||
@ -260,15 +254,6 @@ export default {
|
||||
defaultCheckedKeys: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
defaultCheckedKeys(val) {
|
||||
const excelNum = this.excelData.map((ele) => ele.id)
|
||||
this.$emit(
|
||||
'setTableNum',
|
||||
val.filter((ele) => !excelNum.includes(ele)).length
|
||||
)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
window.onresize = () => {
|
||||
this.calHeight()
|
||||
@ -297,7 +282,9 @@ export default {
|
||||
this.defaultCheckedKeys.splice(index, 1)
|
||||
}
|
||||
this.validateName()
|
||||
this.$emit('setTableNum', this.defaultCheckedKeys.length)
|
||||
const labelList = this.$refs.tree.getCheckedNodes().map(ele => ele.excelLable)
|
||||
const excelList = this.excelData.map(ele => ele.excelLable);
|
||||
this.$emit('setTableNum', labelList.filter(ele => !excelList.includes(ele)).length)
|
||||
},
|
||||
nameExsitValidator(ele, checkList) {
|
||||
this.$set(
|
||||
@ -309,7 +296,9 @@ export default {
|
||||
)
|
||||
},
|
||||
validateName() {
|
||||
const checkList = this.$refs.tree.getCheckedNodes().map(ele => ele.datasetName)
|
||||
const checkList = this.$refs.tree
|
||||
.getCheckedNodes()
|
||||
.map((ele) => ele.datasetName)
|
||||
this.excelData
|
||||
.reduce((pre, next) => pre.concat(next.sheets), [])
|
||||
.forEach((ele, index) => {
|
||||
@ -343,7 +332,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
this.validateName();
|
||||
this.validateName()
|
||||
},
|
||||
calHeight() {
|
||||
const that = this
|
||||
|
@ -1,14 +1,5 @@
|
||||
<template>
|
||||
<div class="dataset-sql" @mouseup="mouseupDrag">
|
||||
<!-- <el-input v-model="name" size="mini" :placeholder="$t('commons.name')"/> -->
|
||||
|
||||
<!-- <el-button size="mini" @click="cancel">
|
||||
{{ $t('dataset.cancel') }}
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="save">
|
||||
{{ $t('dataset.confirm') }}
|
||||
</el-button> -->
|
||||
|
||||
<div class="sql-editer">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
@ -264,11 +255,6 @@
|
||||
icon-class="field_value"
|
||||
class="field-icon-value"
|
||||
/>
|
||||
<!-- <svg-icon
|
||||
v-if="scope.row.deType === 5"
|
||||
icon-class="field_location"
|
||||
class="field-icon-location"
|
||||
/> -->
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -641,18 +627,18 @@ export default {
|
||||
this.openMessageSuccess('dataset.pls_slc_data_source', 'error')
|
||||
return
|
||||
}
|
||||
if (!this.table.name || this.table.name === '') {
|
||||
if (!this.param.name || this.param.name === '') {
|
||||
this.openMessageSuccess('dataset.pls_input_name', 'error')
|
||||
return
|
||||
}
|
||||
if (this.table.name.length > 50) {
|
||||
if (this.param.name.length > 50) {
|
||||
this.openMessageSuccess('dataset.char_can_not_more_50', 'error')
|
||||
return
|
||||
}
|
||||
this.parseVariable()
|
||||
const table = {
|
||||
id: this.param.tableId,
|
||||
name: this.table.name,
|
||||
name: this.param.name,
|
||||
sceneId: this.param.id,
|
||||
dataSourceId: this.dataSource,
|
||||
type: 'sql',
|
||||
@ -688,7 +674,7 @@ export default {
|
||||
|
||||
resetComponent() {
|
||||
this.dataSource = ''
|
||||
this.table.name = ''
|
||||
this.param.name = ''
|
||||
this.sql = ''
|
||||
this.data = []
|
||||
this.fields = []
|
||||
|
@ -1,15 +1,5 @@
|
||||
<template>
|
||||
<div class="dataset-union" @mouseup="mouseupDrag">
|
||||
<!-- <el-form :inline="true" style="display: flex;align-items: center;justify-content: space-between;">
|
||||
<el-form-item class="form-item" :label="$t('commons.name')">
|
||||
<el-input v-model="name" size="mini" :placeholder="$t('commons.name')" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item">
|
||||
<el-button :disabled="dataset.length === 0" size="mini" @click="previewData">
|
||||
{{ $t('dataset.preview_result') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form> -->
|
||||
<div :style="{ height: unionHeight + 'px' }" class="unio-editer-container">
|
||||
<!--添加第一个数据集按钮-->
|
||||
<div v-if="dataset.length === 0">
|
||||
|
@ -1,16 +1,5 @@
|
||||
<template>
|
||||
<div :style="{ height: maxHeight, overflow: 'auto' }">
|
||||
<!-- <el-row style="height: 26px;">-->
|
||||
<!-- <span style="line-height: 26px;">-->
|
||||
<!-- {{ $t('dataset.field_edit') }}-->
|
||||
<!-- <span>{{ param.name }}</span>-->
|
||||
<!-- </span>-->
|
||||
<!-- <el-row style="float: right">-->
|
||||
<!-- <el-button size="mini" @click="closeEdit">{{ $t('dataset.cancel') }}</el-button>-->
|
||||
<!-- <el-button type="primary" size="mini" @click="saveEdit">{{ $t('dataset.confirm') }}</el-button>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-divider />-->
|
||||
<el-row style="margin: 6px 0 16px 0">
|
||||
<el-col :span="12">
|
||||
<deBtn
|
||||
@ -187,7 +176,6 @@
|
||||
icon-class="field_text"
|
||||
class="field-icon-text"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.text") }}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 1">
|
||||
<svg-icon
|
||||
@ -195,7 +183,6 @@
|
||||
icon-class="field_time"
|
||||
class="field-icon-time"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.time") }}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 2 || scope.row.deType === 3">
|
||||
<svg-icon
|
||||
@ -203,12 +190,6 @@
|
||||
icon-class="field_value"
|
||||
class="field-icon-value"
|
||||
/>
|
||||
<!-- <span v-if="scope.row.deType === 2" class="field-class">{{
|
||||
$t("dataset.value")
|
||||
}}</span>
|
||||
<span v-if="scope.row.deType === 3" class="field-class">{{
|
||||
$t("dataset.value") + "(" + $t("dataset.float") + ")"
|
||||
}}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 5">
|
||||
<svg-icon
|
||||
@ -216,7 +197,6 @@
|
||||
icon-class="field_location"
|
||||
class="field-icon-location"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.location") }}</span> -->
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
@ -310,14 +290,6 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column property="groupType" :label="$t('dataset.field_group_type')" width="180">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-radio-group v-model="scope.row.groupType" size="mini">-->
|
||||
<!-- <el-radio-button label="d">{{ $t('chart.dimension') }}</el-radio-button>-->
|
||||
<!-- <el-radio-button label="q">{{ $t('chart.quota') }}</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column min-width="182" :label="$t('dataset.operator')">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -522,7 +494,6 @@
|
||||
icon-class="field_text"
|
||||
class="field-icon-text"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.text") }}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 1">
|
||||
<svg-icon
|
||||
@ -530,7 +501,6 @@
|
||||
icon-class="field_time"
|
||||
class="field-icon-time"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.time") }}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 2 || scope.row.deType === 3">
|
||||
<svg-icon
|
||||
@ -538,12 +508,6 @@
|
||||
icon-class="field_value"
|
||||
class="field-icon-value"
|
||||
/>
|
||||
<!-- <span v-if="scope.row.deType === 2" class="field-class">{{
|
||||
$t("dataset.value")
|
||||
}}</span>
|
||||
<span v-if="scope.row.deType === 3" class="field-class">{{
|
||||
$t("dataset.value") + "(" + $t("dataset.float") + ")"
|
||||
}}</span> -->
|
||||
</span>
|
||||
<span v-if="scope.row.deType === 5">
|
||||
<svg-icon
|
||||
@ -551,7 +515,6 @@
|
||||
icon-class="field_location"
|
||||
class="field-icon-location"
|
||||
/>
|
||||
<!-- <span class="field-class">{{ $t("dataset.location") }}</span> -->
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
@ -637,29 +600,6 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column property="groupType" :label="$t('dataset.field_group_type')" width="180">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-radio-group v-model="scope.row.groupType" size="mini">-->
|
||||
<!-- <el-radio-button label="d">{{ $t('chart.dimension') }}</el-radio-button>-->
|
||||
<!-- <el-radio-button label="q">{{ $t('chart.quota') }}</el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column
|
||||
property="groupType"
|
||||
:label="$t('dataset.d_q_trans')"
|
||||
width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
icon="el-icon-sort"
|
||||
size="mini"
|
||||
circle
|
||||
:disabled="!hasDataPermission('manage', param.privileges)"
|
||||
@click="dqTrans(scope.row, 'q')"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
min-width="182"
|
||||
property=""
|
||||
@ -734,7 +674,7 @@
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="editCalcField"
|
||||
class="de-dialog-form"
|
||||
class="de-dialog-form de-center-dialog"
|
||||
width="980px"
|
||||
:title="
|
||||
currEditField.id
|
||||
@ -841,11 +781,6 @@ export default {
|
||||
})
|
||||
},
|
||||
saveEdit(item) {
|
||||
// const list = this.tableFields.dimensionListData.concat(this.tableFields.quotaListData)
|
||||
// batchEdit(list).then(response => {
|
||||
// // this.closeEdit()
|
||||
// this.initField()
|
||||
// })
|
||||
if (item.name && item.name.length > 50) {
|
||||
this.$message.error(this.$t('dataset.field_name_less_50'))
|
||||
return
|
||||
@ -1153,3 +1088,14 @@ span {
|
||||
border-bottom: 0 solid #e6ebf5 !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
.de-center-dialog {
|
||||
.el-dialog {
|
||||
margin: 0 !important;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
</style>
|
@ -185,15 +185,6 @@
|
||||
</grid-table>
|
||||
</div>
|
||||
|
||||
<!-- <el-row>
|
||||
<el-button v-if="hasDataPermission('manage',param.privileges) && enableUpdate" icon="el-icon-setting" size="mini" @click="showConfig">
|
||||
{{ $t('dataset.update_setting') }}
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="refreshLog">
|
||||
{{ $t('commons.refresh') }}
|
||||
</el-button>
|
||||
</el-row> -->
|
||||
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
:title="$t('dataset.detail')"
|
||||
@ -305,7 +296,7 @@
|
||||
</el-form-item>
|
||||
<div class="add-scope-cont" v-if="taskForm.type === 'add_scope'">
|
||||
<el-form-item
|
||||
prop="incrementalUpdateType"
|
||||
prop="type"
|
||||
:label="$t('dataset.incremental_update_type')"
|
||||
>
|
||||
<el-radio-group
|
||||
@ -451,13 +442,11 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<div class="de-foot-layout">
|
||||
<!-- <div class="cont">
|
||||
<deBtn secondary @click="closeTask">{{ $t("dataset.cancel") }}</deBtn>
|
||||
<deBtn type="primary" @click="saveTask(taskForm)">{{
|
||||
$t("dataset.confirm")
|
||||
}}</deBtn>
|
||||
</div> -->
|
||||
<div class="de-foot">
|
||||
<deBtn secondary @click="closeTask">{{ $t('dataset.cancel') }}</deBtn>
|
||||
<deBtn type="primary" @click="saveTask(taskForm)">{{
|
||||
$t('dataset.confirm')
|
||||
}}</deBtn>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</el-col>
|
||||
@ -707,11 +696,7 @@ export default {
|
||||
showConfig() {
|
||||
this.userDrawer = true
|
||||
this.listTaskLog()
|
||||
// this.getIncrementalConfig()
|
||||
},
|
||||
// refreshLog() {
|
||||
// this.listTaskLog();
|
||||
// },
|
||||
showErrorMassage(massage) {
|
||||
this.show_error_massage = true
|
||||
this.error_massage = massage
|
||||
@ -857,47 +842,6 @@ export default {
|
||||
this.initSearch(false)
|
||||
})
|
||||
},
|
||||
// getIncrementalConfig() {
|
||||
// post("/dataset/table/incrementalConfig", { tableId: this.table.id }).then(
|
||||
// (response) => {
|
||||
// this.incrementalConfig = response.data;
|
||||
// if (
|
||||
// this.incrementalConfig.incrementalAdd.length === 0 &&
|
||||
// this.incrementalConfig.incrementalDelete.length === 0
|
||||
// ) {
|
||||
// this.incrementalUpdateType = "incrementalAdd";
|
||||
// this.sql = "";
|
||||
// return;
|
||||
// }
|
||||
// if (this.incrementalConfig.incrementalAdd.length > 0) {
|
||||
// this.incrementalUpdateType = "incrementalAdd";
|
||||
// this.sql = this.incrementalConfig.incrementalAdd;
|
||||
// } else {
|
||||
// this.incrementalUpdateType = "incrementalDelete";
|
||||
// this.sql = this.incrementalConfig.incrementalDelete;
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
// },
|
||||
// saveIncrementalConfig() {
|
||||
// if (this.incrementalUpdateType === "incrementalAdd") {
|
||||
// this.incrementalConfig.incrementalAdd = this.sql;
|
||||
// } else {
|
||||
// this.incrementalConfig.incrementalDelete = this.sql;
|
||||
// }
|
||||
// this.incrementalConfig.tableId = this.table.id;
|
||||
// post(
|
||||
// "/dataset/table/save/incrementalConfig",
|
||||
// this.incrementalConfig
|
||||
// ).then((response) => {
|
||||
// this.$message({
|
||||
// message: this.$t("dataset.save_success"),
|
||||
// type: "success",
|
||||
// showClose: true,
|
||||
// });
|
||||
// this.update_setting = false;
|
||||
// });
|
||||
// },
|
||||
saveTask(task) {
|
||||
this.$refs.taskForm.validate((valid) => {
|
||||
if (valid) {
|
||||
@ -1203,7 +1147,7 @@ export default {
|
||||
|
||||
.codemirror-cont {
|
||||
box-sizing: border-box;
|
||||
width: 560px;
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
background: #ffffff;
|
||||
border: 1px solid #bbbfc4;
|
||||
|
@ -102,8 +102,7 @@
|
||||
<el-tab-pane
|
||||
v-if="
|
||||
table.mode === 1 &&
|
||||
(table.type === 'excel' ||
|
||||
table.type === 'db' ||
|
||||
(table.type === 'db' ||
|
||||
table.type === 'sql' ||
|
||||
table.type === 'api')
|
||||
"
|
||||
|
@ -173,6 +173,13 @@ export default {
|
||||
trigger: 'change'
|
||||
},
|
||||
{ required: true, trigger: 'blur', validator: this.nameValidator }
|
||||
],
|
||||
id: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('fu.search_bar.please_select'),
|
||||
trigger: 'blur'
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -204,7 +211,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
this.$router.back()
|
||||
this.$router.push('/dataset/index')
|
||||
},
|
||||
nameBlur() {
|
||||
this.nameExsitValidator()
|
||||
@ -340,7 +347,7 @@ export default {
|
||||
switchComponent(c) {
|
||||
let type = ''
|
||||
if (['db', 'excel', 'api'].includes(c)) {
|
||||
this.datasetFormRules = {}
|
||||
this.$delete(this.datasetFormRules, 'name')
|
||||
}
|
||||
switch (c) {
|
||||
case 'db':
|
||||
|
@ -113,7 +113,6 @@
|
||||
class="child"
|
||||
>
|
||||
<span v-if="data.modelInnerType === 'group'" @click.stop>
|
||||
<!-- <el-dropdown trigger="click" size="small" @command="clickAdd"> -->
|
||||
<el-dropdown
|
||||
size="small"
|
||||
placement="bottom-start"
|
||||
@ -528,6 +527,9 @@ export default {
|
||||
this.$refs.datasetTreeRef.filter(this.filterText)
|
||||
}
|
||||
},
|
||||
activated() {
|
||||
this.nodeClick(this.$refs.datasetTreeRef.getCurrentNode())
|
||||
},
|
||||
created() {
|
||||
this.kettleState()
|
||||
engineMode().then((res) => {
|
||||
|
@ -5,16 +5,15 @@
|
||||
<de-aside-container type="dataset">
|
||||
<group :save-status="saveStatus" @switchComponent="switchComponent" />
|
||||
</de-aside-container>
|
||||
|
||||
<de-main-container>
|
||||
<component
|
||||
:is="component"
|
||||
ref="dynamic_component"
|
||||
:param="param"
|
||||
@switchComponent="switchComponent"
|
||||
@saveSuccess="saveSuccess"
|
||||
/>
|
||||
</de-main-container>
|
||||
<de-main-container>
|
||||
<component
|
||||
:is="component"
|
||||
ref="dynamic_component"
|
||||
:param="param"
|
||||
@switchComponent="switchComponent"
|
||||
@saveSuccess="saveSuccess"
|
||||
/>
|
||||
</de-main-container>
|
||||
</de-container>
|
||||
</template>
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,214 +1,164 @@
|
||||
<template>
|
||||
<div class="ds-table de-serach-table">
|
||||
<el-row class="top-operate">
|
||||
<el-col :span="10">
|
||||
<span class="table-name">{{ params.name }}</span>
|
||||
</el-col>
|
||||
<el-col :span="14" class="right-user">
|
||||
<el-input
|
||||
:placeholder="$t('system_parameter_setting.search_keywords')"
|
||||
prefix-icon="el-icon-search"
|
||||
class="name-email-search"
|
||||
size="small"
|
||||
clearable
|
||||
ref="search"
|
||||
v-model="nikeName"
|
||||
@blur="initSearch"
|
||||
@clear="initSearch"
|
||||
>
|
||||
</el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="table-container">
|
||||
<grid-table
|
||||
v-loading="loading"
|
||||
:tableData="tableData"
|
||||
:columns="[]"
|
||||
:pagination="paginationConfig"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column
|
||||
key="name"
|
||||
prop="name"
|
||||
:label="$t('datasource.table_name')"
|
||||
/>
|
||||
<el-table-column
|
||||
slot="__operation"
|
||||
:label="$t('commons.operating')"
|
||||
key="__operation"
|
||||
fixed="right"
|
||||
width="168"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click="createtDataset(scope.row)"
|
||||
class="text-btn mar3 mar6"
|
||||
type="text"
|
||||
>{{ $t("datasource.create_dataset") }}</el-button
|
||||
>
|
||||
<el-button
|
||||
@click="selectDataset(scope.row)"
|
||||
class="text-btn"
|
||||
type="text"
|
||||
>{{ $t("dataset.detail") }}</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</grid-table>
|
||||
<div
|
||||
class="de-ds-container"
|
||||
:class="[{ 'is-driver-mgm': currentMgm === 'driverMgm' }]"
|
||||
v-loading="$store.getters.loadingMap[$store.getters.currentPath]"
|
||||
>
|
||||
<div v-if="currentMgm === 'driverMgm'" class="dsr-route-title">
|
||||
<div>
|
||||
<i class="el-icon-arrow-left back-button" @click="jump" />
|
||||
<span>{{ $t('driver.mgm') }}</span>
|
||||
</div>
|
||||
<deBtn type="primary" @click="addDriver" icon="el-icon-plus"
|
||||
>{{ $t("driver.add") }}
|
||||
</deBtn>
|
||||
</div>
|
||||
<el-drawer
|
||||
:title="$t('dataset.detail')"
|
||||
:visible.sync="userDrawer"
|
||||
custom-class="user-drawer-task ds-table-drawer"
|
||||
size="840px"
|
||||
v-closePress
|
||||
direction="rtl"
|
||||
<de-aside-container
|
||||
style="padding: 0 0"
|
||||
type="datasource"
|
||||
>
|
||||
<el-row style="margin-top: 12px" :gutter="24">
|
||||
<el-col :span="12">
|
||||
<p class="table-name">
|
||||
{{ $t("datasource.table_name") }}
|
||||
</p>
|
||||
<p class="table-value">
|
||||
{{ dsTableDetail.name }}
|
||||
</p>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<p class="table-name">
|
||||
{{ $t("datasource.table_description") }}
|
||||
</p>
|
||||
<p class="table-value">
|
||||
{{ dsTableDetail.remark || "-" }}
|
||||
</p>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table
|
||||
:data="dsTableData"
|
||||
stripe
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
prop="date"
|
||||
:label="$t('panel.column_name')">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
:label="$t('dataset.field_type')">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
:label="$t('datasource.field_description')">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-drawer>
|
||||
<ds-tree
|
||||
@switch-mgm="switchMgm"
|
||||
ref="dsTree"
|
||||
:datasource="datasource"
|
||||
@switch-main="switchMain"
|
||||
/>
|
||||
</de-aside-container>
|
||||
<de-main-container
|
||||
>
|
||||
<component
|
||||
:is="component"
|
||||
v-if="!!component"
|
||||
:params="param"
|
||||
:t-data="tData"
|
||||
:ds-types="dsTypes"
|
||||
@refresh-type="refreshType"
|
||||
@switch-component="switchMain"
|
||||
/>
|
||||
<el-empty v-else :image-size="125" :description="$t(`datasource.${swTips}`)" :image="image"></el-empty>
|
||||
</de-main-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import keyEnter from "@/components/msgCfm/keyEnter.js";
|
||||
import GridTable from "@/components/gridTable/index.vue";
|
||||
import { dsTable } from "@/api/dataset/dataset";
|
||||
import DeMainContainer from "@/components/dataease/DeMainContainer";
|
||||
import DeAsideContainer from "@/components/dataease/DeAsideContainer";
|
||||
import DsTree from "./DsTree";
|
||||
import DsForm from "./DsForm";
|
||||
import dsTable from "./dsTable";
|
||||
import DriverForm from "./DriverFormDetail";
|
||||
export default {
|
||||
mixins: [keyEnter],
|
||||
components: { GridTable },
|
||||
props: {
|
||||
params: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
name: "DsMain",
|
||||
components: { DeMainContainer, DeAsideContainer, DsTree },
|
||||
data() {
|
||||
return {
|
||||
userDrawer: false,
|
||||
dsTableDetail: {},
|
||||
nikeName: "",
|
||||
loading: false,
|
||||
paginationConfig: {
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
},
|
||||
dsTableData: [{date: 1}],
|
||||
tableData: [{ name: 1 }],
|
||||
image: require('@/assets/None_Select_ds.png'),
|
||||
component: '',
|
||||
datasource: {},
|
||||
param: null,
|
||||
tData: null,
|
||||
currentMgm: "dsMgm",
|
||||
dsTypes: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// this.initSearch();
|
||||
computed: {
|
||||
swTips() {
|
||||
return this.currentMgm === 'driverMgm' ? 'on_the_left' : 'on_the_left';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createtDataset(row) {},
|
||||
selectDataset(row) {
|
||||
this.dsTableDetail = row;
|
||||
this.userDrawer = true;
|
||||
jump() {
|
||||
this.$refs.dsTree.dsMgm();
|
||||
this.switchMgm('dsMgm');
|
||||
},
|
||||
handleSizeChange(pageSize) {
|
||||
this.paginationConfig.currentPage = 1;
|
||||
this.paginationConfig.pageSize = pageSize;
|
||||
this.search();
|
||||
switchMgm(type) {
|
||||
this.currentMgm = type;
|
||||
},
|
||||
handleCurrentChange(currentPage) {
|
||||
this.paginationConfig.currentPage = currentPage;
|
||||
this.search();
|
||||
addDriver() {
|
||||
this.$refs.dsTree.addDriver();
|
||||
},
|
||||
initSearch() {
|
||||
this.handleCurrentChange(1);
|
||||
},
|
||||
search() {
|
||||
this.loading = true;
|
||||
const param = {
|
||||
conditions: [],
|
||||
};
|
||||
if (this.nikeName) {
|
||||
param.conditions.push({
|
||||
field: `dataset_table_task.name`,
|
||||
operator: "like",
|
||||
value: this.nikeName,
|
||||
});
|
||||
}
|
||||
const { currentPage, pageSize } = this.paginationConfig;
|
||||
dsTable(currentPage, pageSize, this.params.id).then((response) => {
|
||||
this.tableData = response.data.listObject;
|
||||
this.paginationConfig.total = response.data.itemCount;
|
||||
this.loading = false;
|
||||
// 切换main区内容
|
||||
switchMain(param) {
|
||||
const { component, componentParam, tData, dsTypes } = param;
|
||||
this.component = '';
|
||||
this.param = null;
|
||||
this.$nextTick(() => {
|
||||
switch (component) {
|
||||
case "DsForm":
|
||||
this.component = DsForm;
|
||||
this.param = componentParam;
|
||||
this.tData = tData;
|
||||
this.dsTypes = dsTypes;
|
||||
break;
|
||||
case "DriverForm":
|
||||
this.component = DriverForm;
|
||||
this.param = componentParam;
|
||||
this.tData = tData;
|
||||
this.dsTypes = dsTypes;
|
||||
break;
|
||||
case "dsTable":
|
||||
this.component = dsTable;
|
||||
this.param = componentParam;
|
||||
break;
|
||||
default:
|
||||
this.component = '';
|
||||
this.param = null;
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
refreshType(datasource) {
|
||||
this.datasource = datasource;
|
||||
this.$refs.dsTree && this.$refs.dsTree.refreshType(datasource);
|
||||
},
|
||||
msg2Current(sourceParam) {
|
||||
this.$refs.dsTree && this.$refs.dsTree.markInvalid(sourceParam);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ds-table-drawer {
|
||||
.table-value,
|
||||
.table-name {
|
||||
font-family: PingFang SC;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
margin: 0;
|
||||
}
|
||||
.table-name {
|
||||
color: var(--deTextSecondary, #646a73);
|
||||
}
|
||||
.table-value {
|
||||
margin: 4px 0 24px 0;
|
||||
color: var(--deTextPrimary, #1f2329);
|
||||
<style scoped lang="scss">
|
||||
.de-ds-container {
|
||||
height: 100%;
|
||||
// height: calc(100vh - 56px);
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
flex-wrap: wrap;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
.el-empty {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.ds-table {
|
||||
height: 100%;
|
||||
padding: 10px 14px;
|
||||
box-sizing: border-box;
|
||||
.table-name {
|
||||
font-family: PingFang SC;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
color: var(--deTextPrimary, #1f2329);
|
||||
.ms-aside-container {
|
||||
height: calc(100vh - 56px);
|
||||
padding: 0px;
|
||||
min-width: 260px;
|
||||
max-width: 460px;
|
||||
}
|
||||
.dsr-route-title {
|
||||
width: 100%;
|
||||
margin: -2px 0 22px 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-content: center;
|
||||
}
|
||||
.is-driver-mgm {
|
||||
background-color: var(--MainBG, #f5f6f7);
|
||||
padding: 24px;
|
||||
.ms-aside-container,
|
||||
.ms-main-container {
|
||||
height: calc(100vh - 170px);
|
||||
background-color: var(--ContentBG, #ffffff);
|
||||
.tree-style {
|
||||
padding-top: 24px;
|
||||
}
|
||||
}
|
||||
.table-container {
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
.el-table__fixed-right::before {
|
||||
background: transparent;
|
||||
.ms-main-container {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
padding: 24px 0 70px 24px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -405,7 +405,6 @@ export default {
|
||||
}
|
||||
if (!(element.type in types)) {
|
||||
types[element.type] = [];
|
||||
// newArr.push(...element, ...{ children: types[element.type] })
|
||||
newArr.push({
|
||||
id: element.type,
|
||||
name: element.typeDesc,
|
||||
@ -414,7 +413,6 @@ export default {
|
||||
});
|
||||
}
|
||||
types[element.type].push(element);
|
||||
// newArr.children.push({ id: element.id, label: element.name })
|
||||
}
|
||||
return newArr;
|
||||
},
|
||||
@ -448,8 +446,8 @@ export default {
|
||||
},
|
||||
addDb({ type }) {
|
||||
this.$router.push({
|
||||
name: "datasource-form",
|
||||
params: { type },
|
||||
path: "/ds-form",
|
||||
query: { type },
|
||||
});
|
||||
},
|
||||
addFolderWithType(data) {
|
||||
@ -459,8 +457,8 @@ export default {
|
||||
this.editDriver = true;
|
||||
} else {
|
||||
this.$router.push({
|
||||
name: "datasource-form",
|
||||
params: { type: data.id },
|
||||
path: "/ds-form",
|
||||
query: { type: data.id },
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -546,10 +544,13 @@ export default {
|
||||
},
|
||||
switchMain(component, componentParam, tData, dsTypes) {
|
||||
if (component === "DsForm") {
|
||||
const { id, type, showModel } = componentParam;
|
||||
this.$router.push({
|
||||
name: "datasource-form",
|
||||
params: {
|
||||
...componentParam,
|
||||
path: "/ds-form",
|
||||
query: {
|
||||
id,
|
||||
type,
|
||||
showModel,
|
||||
msgNodeId: this.msgNodeId,
|
||||
},
|
||||
});
|
||||
|
@ -200,6 +200,7 @@ export default {
|
||||
this.selectDatasets = [];
|
||||
this.datasetCahe = [];
|
||||
this.selectDatasetsCahe = [];
|
||||
this.$refs.datasetTreeRef.filter();
|
||||
this.$emit("search", [], []);
|
||||
},
|
||||
clearOneFilter(index) {
|
||||
@ -211,6 +212,9 @@ export default {
|
||||
} else {
|
||||
this[ele] = [];
|
||||
}
|
||||
if (ele === 'activeDataset') {
|
||||
this.$refs.datasetTreeRef.filter();
|
||||
}
|
||||
});
|
||||
},
|
||||
statusChange(value, type) {
|
||||
|
@ -42,7 +42,7 @@
|
||||
</el-form-item>
|
||||
<div class="add-scope-cont" v-if="taskForm.type === 'add_scope'">
|
||||
<el-form-item
|
||||
prop="incrementalUpdateType"
|
||||
prop="type"
|
||||
:label="$t('dataset.incremental_update_type')"
|
||||
>
|
||||
<el-radio-group
|
||||
@ -315,12 +315,6 @@ export default {
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
incrementalUpdateType: [
|
||||
{
|
||||
required: true,
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
},
|
||||
cronEdit: false,
|
||||
sqlOption: {
|
||||
|
Loading…
Reference in New Issue
Block a user