Unverified 提交 1d555073 authored 作者: taojinlong's avatar taojinlong 提交者: GitHub

Merge branch 'dev' into pr@dev@task

......@@ -29,10 +29,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.row.ValueMetaInterface;
......@@ -66,8 +62,6 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.InetAddress;
import java.util.*;
import java.util.stream.Collectors;
......@@ -295,7 +289,7 @@ public class ExtractDataService {
replaceTable(DorisTableUtils.dorisName(datasetTableId));
saveSucessLog(datasetTableTaskLog);
sendWebMsg(datasetTable, datasetTableTask, true);
sendWebMsg(datasetTable, datasetTableTask, datasetTableTaskLog, true);
deleteFile("all_scope", datasetTableId);
......@@ -308,7 +302,7 @@ public class ExtractDataService {
dataSetTableTaskService.updateTaskStatus(datasetTableTask, JobStatus.Error);
sendWebMsg(datasetTable, datasetTableTask, false);
sendWebMsg(datasetTable, datasetTableTask, datasetTableTaskLog,false);
updateTableStatus(datasetTableId, datasetTable, JobStatus.Error, null);
dropDorisTable(DorisTableUtils.dorisTmpName(DorisTableUtils.dorisName(datasetTableId)));
deleteFile("all_scope", datasetTableId);
......@@ -350,7 +344,7 @@ public class ExtractDataService {
}
saveSucessLog(datasetTableTaskLog);
sendWebMsg(datasetTable, datasetTableTask, true);
sendWebMsg(datasetTable, datasetTableTask, datasetTableTaskLog,true);
deleteFile("incremental_add", datasetTableId);
deleteFile("incremental_delete", datasetTableId);
......@@ -360,7 +354,7 @@ public class ExtractDataService {
dataSetTableTaskService.updateTaskStatus(datasetTableTask, JobStatus.Completed);
} catch (Exception e) {
saveErrorLog(datasetTableId, taskId, e);
sendWebMsg(datasetTable, datasetTableTask, false);
sendWebMsg(datasetTable, datasetTableTask, datasetTableTaskLog,false);
updateTableStatus(datasetTableId, datasetTable, JobStatus.Error, null);
dataSetTableTaskService.updateTaskStatus(datasetTableTask, JobStatus.Error);
......@@ -385,13 +379,14 @@ public class ExtractDataService {
}
private void sendWebMsg(DatasetTable datasetTable, DatasetTableTask datasetTableTask, Boolean status) {
private void sendWebMsg(DatasetTable datasetTable, DatasetTableTask datasetTableTask, DatasetTableTaskLog datasetTableTaskLog, Boolean status) {
String taskId = datasetTableTask.getId();
String msg = status ? "成功" : "失败";
Long typeId = status ? 5L : 6L;
String id = datasetTable.getId();
AuthURD authURD = AuthUtils.authURDR(id);
Set<Long> userIds = AuthUtils.userIdsByURD(authURD);
Gson gson = new Gson();
userIds.forEach(userId -> {
Map<String, Object> param = new HashMap<>();
......@@ -399,6 +394,10 @@ public class ExtractDataService {
if (StringUtils.isNotEmpty(taskId)) {
param.put("taskId", taskId);
}
if (ObjectUtils.isNotEmpty(datasetTableTaskLog) && StringUtils.isNotEmpty(datasetTableTaskLog.getId())) {
param.put("logId", datasetTableTaskLog.getId());
}
String content = "数据集【" + datasetTable.getName() + "】同步" + msg;
if (ObjectUtils.isNotEmpty(datasetTableTask) && ObjectUtils.isNotEmpty(datasetTableTask.getName())) {
content += " 任务名称【" + datasetTableTask.getName() + "】";
......
......@@ -181,7 +181,6 @@ public class SysMsgService {
}
public List<SysMsgSetting> defaultSettings() {
// Long userId = AuthUtils.getUser().getUserId();
SysMsgSetting sysMsgSetting1 = new SysMsgSetting();
sysMsgSetting1.setTypeId(2L);
sysMsgSetting1.setChannelId(1L);
......
......@@ -14,7 +14,7 @@
<slot name="complex" />
</template>
<slot name="buttons" />
<fu-table-column-select :columns="columns" />
<fu-table-column-select v-if="!hideColumns" :columns="columns" />
</fu-search-bar>
</div>
......@@ -46,6 +46,10 @@ export default {
type: Array,
default: () => []
},
hideColumns: {
type: Boolean,
default: false
},
// eslint-disable-next-line vue/require-default-prop
localKey: String, // 如果需要记住选择的列,则这里添加一个唯一的Key
// eslint-disable-next-line vue/require-default-prop
......
......@@ -108,6 +108,12 @@ export default {
}
}
}
if (this.canvasStyleData.selfAdaption) {
style = {
overflow: 'hidden',
...style
}
}
return style
},
// 此处单独计算componentData的值 不放入全局mapState中
......
......@@ -3,8 +3,8 @@
<div style="width: 100%;">
<el-dropdown trigger="click" @mouseup="handleMouseUp">
<slot name="icon" />
<el-dropdown-menu v-if="curComponent" slot="dropdown">
<el-dropdown-item v-if="editFilter.includes(curComponent.type)" icon="el-icon-edit-outline" @click.native="edit">{{ $t('panel.edit') }}</el-dropdown-item>
<el-dropdown-menu>
<el-dropdown-item v-if="curComponent&&editFilter.includes(curComponent.type)" icon="el-icon-edit-outline" @click.native="edit">{{ $t('panel.edit') }}</el-dropdown-item>
<el-dropdown-item icon="el-icon-document-copy" @click.native="copy">{{ $t('panel.copy') }}</el-dropdown-item>
<el-dropdown-item icon="el-icon-delete" @click.native="deleteComponent">{{ $t('panel.delete') }}</el-dropdown-item>
<el-dropdown-item icon="el-icon-upload2" @click.native="topComponent">{{ $t('panel.topComponent') }}</el-dropdown-item>
......
......@@ -32,13 +32,29 @@
</el-tooltip>
</div>
<el-tooltip :content="$t('panel.borderRadius')">
<i style="float: left;margin-top: 3px;margin-left: 2px;" class="icon iconfont icon-fangxing-" />
</el-tooltip>
<div style="width: 70px;float: left;margin-top: 2px;margin-left: 2px;">
<el-input v-model="styleInfo.borderRadius" type="number" size="mini" min="0" max="100" step="1" @change="styleChange" />
</div>
<el-tooltip :content="$t('panel.opacity')">
<i style="float: left;margin-top: 3px;margin-left: 2px;" class="icon iconfont icon-touming" />
</el-tooltip>
<div style="width: 70px;float: left;margin-top: 2px;margin-left: 2px;">
<el-input v-model="innerOpacity" type="number" size="mini" min="0" max="100" step="10" @change="styleChange" />
</div>
<div style="width: 20px;float: left;margin-top: 2px;margin-left: 10px;">
<div style="width: 16px;height: 18px">
<el-tooltip content="边框颜色">
<i class="iconfont icon-huabi" @click="goBoardColor" />
</el-tooltip>
<div :style="boardDivColor" />
<el-color-picker ref="boardColorPicker" v-model="styleInfo.borderColor" style="margin-top: 7px;height: 0px" size="mini" @change="styleChange"/>
<el-color-picker ref="boardColorPicker" v-model="styleInfo.borderColor" style="margin-top: 7px;height: 0px" size="mini" @change="styleChange" />
</div>
</div>
......@@ -48,9 +64,10 @@
<i class="iconfont icon-beijingse1" @click="goBackgroundColor" />
</el-tooltip>
<div :style="backgroundDivColor" />
<el-color-picker ref="backgroundColorPicker" v-model="styleInfo.backgroundColor" style="margin-top: 7px;height: 0px" size="mini" @change="styleChange"/>
<el-color-picker ref="backgroundColorPicker" v-model="styleInfo.backgroundColor" style="margin-top: 7px;height: 0px" size="mini" @change="styleChange" />
</div>
</div>
</div>
</el-card>
</template>
......@@ -101,7 +118,20 @@ export default {
}, {
value: '5',
label: '5'
}]
}],
innerOpacity: 0
}
},
watch: {
innerOpacity: {
handler(oldVal, newVal) {
this.styleInfo['opacity'] = this.innerOpacity / 100
}
}
},
mounted() {
if (this.styleInfo['opacity']) {
this.innerOpacity = this.styleInfo['opacity'] * 100
}
},
computed: {
......@@ -176,7 +206,7 @@ export default {
.el-card-main {
height: 34px;
z-index: 10;
width: 210px;
width: 400px;
position: absolute;
}
......
......@@ -8,7 +8,7 @@
<el-tree
v-if="options!== null && options.attrs!==null"
ref="deSelectGrid"
:data="options.attrs.datas"
:data="options.attrs.multiple ? [allNode, ...options.attrs.datas] : options.attrs.datas"
:props="defaultProp"
:indent="0"
:filter-node-method="filterNode"
......@@ -18,7 +18,8 @@
<span slot-scope="{ node, data }" class="custom-tree-node-list father">
<span style="display: flex;flex: 1;width: 0;">
<el-radio v-if="!options.attrs.multiple" v-model="options.value" :label="data.id" @change="changeRadioBox"><span> {{ node.label }} </span></el-radio>
<el-checkbox v-if="options.attrs.multiple" v-model="data.checked" :label="data.id" @change="changeCheckBox(data)"><span> {{ node.label }} </span></el-checkbox>
<el-checkbox v-if="options.attrs.multiple && data.id !== allNode.id" v-model="data.checked" :label="data.id" @change="changeCheckBox(data)"><span> {{ node.label }} </span></el-checkbox>
<el-checkbox v-if="inDraw && options.attrs.multiple && data.id === allNode.id" v-model="data.checked" :indeterminate="data.indeterminate" :label="data.id" @change="allCheckChange(data)"><span> {{ node.label }} </span></el-checkbox>
</span>
<span v-if="!options.attrs.multiple && options.value && options.value === data.id" class="child">
<span style="margin-left: 12px;" @click.stop>
......@@ -70,7 +71,13 @@ export default {
label: 'text',
children: 'children'
},
keyWord: null
keyWord: null,
allNode: {
id: (-2 << 16) + '',
text: this.$t('commons.all'),
checked: false,
indeterminate: false
}
}
},
computed: {
......@@ -89,6 +96,11 @@ export default {
!sourceValid && (this.options.value = [])
sourceValid && !Array.isArray(sourceValue) && (this.options.value = sourceValue.split(','))
!this.inDraw && (this.options.value = [])
if (!this.inDraw) {
this.options.value = []
this.allNode.indeterminate = false
this.allNode.checked = false
}
this.setMutiBox()
} else {
!sourceValid && (this.options.value = null)
......@@ -122,6 +134,7 @@ export default {
this.options.attrs.datas.forEach(data => {
data.checked = (this.options.value && this.options.value.includes(data.id))
})
this.setAllNodeStatus()
}
},
setRadioBox() {
......@@ -150,6 +163,36 @@ export default {
values.splice(index, 1)
}
this.setAllNodeStatus()
this.options.value = values
this.setCondition()
},
// 勾选数据项 会影响全选节点的状态
setAllNodeStatus() {
const nodeSize = this.options.attrs.datas.length
const checkedSize = this.options.attrs.datas.filter(item => item.checked).length
if (nodeSize === checkedSize) {
this.allNode.checked = true
this.allNode.indeterminate = false
} else if (checkedSize === 0) {
this.allNode.checked = false
this.allNode.indeterminate = false
} else {
this.allNode.checked = false
this.allNode.indeterminate = true
}
},
allCheckChange(data) {
data.indeterminate = false
const values = []
// this.options.value = []
this.options.attrs.datas.forEach(item => {
item.checked = data.checked
// data.checked && this.options.value.push(item.id)
data.checked && values.push(item.id)
})
this.options.value = values
this.setCondition()
},
......
......@@ -8,6 +8,7 @@
<complex-table
:data="data"
:columns="columns"
:hide-columns="true"
:pagination-config="paginationConfig"
:search-config="searchConfig"
@select="select"
......
......@@ -6,7 +6,7 @@
<el-button icon="el-icon-circle-plus-outline" @click="selectDataset">{{ $t('dataset.task.create') }}</el-button>
</template>
<el-table-column prop="name" :label="$t('dataset.task_name')" >
<el-table-column prop="name" :label="$t('dataset.task_name')">
<template slot-scope="scope">
<span>
<el-link style="font-size: 12px" @click="jumpTaskRecord(scope.row)">{{ scope.row.name }}</el-link>
......@@ -23,15 +23,15 @@
</el-table-column>
<el-table-column prop="lastExecTime" :label="$t('dataset.task.last_exec_time')">
<template slot-scope="scope" >
<template slot-scope="scope">
<span v-if="scope.row.lastExecTime && scope.row.lastExecTime != -1">
{{ scope.row.lastExecTime | timestampFormatDate }}
</span>
<span v-if="scope.row.lastExecTime === -1"></span>
<span v-if="scope.row.lastExecTime === -1" />
</template>
</el-table-column>
<el-table-column prop="lastExecStatus" :label="$t('dataset.task.last_exec_status')" >
<el-table-column prop="lastExecStatus" :label="$t('dataset.task.last_exec_status')">
<template slot-scope="scope">
<span v-if="scope.row.lastExecStatus === 'Completed'" style="color: green">{{ $t('dataset.completed') }}</span>
<span v-if="scope.row.lastExecStatus === 'Underway'" style="color: blue">
......@@ -46,11 +46,11 @@
</el-table-column>
<el-table-column prop="nextExecTime" :label="$t('dataset.task.next_exec_time')">
<template slot-scope="scope" >
<template slot-scope="scope">
<span v-if="scope.row.nextExecTime && scope.row.nextExecTime !== -1 && scope.row.rate !== 'SIMPLE'">
{{ scope.row.nextExecTime | timestampFormatDate }}
</span>
<span v-if="!scope.row.nextExecTime || scope.row.rate === 'SIMPLE'"></span>
<span v-if="!scope.row.nextExecTime || scope.row.rate === 'SIMPLE'" />
</template>
</el-table-column>
......@@ -73,7 +73,6 @@
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</complex-table>
</el-row>
......@@ -82,19 +81,19 @@
<el-col>
<el-form :form="taskForm" ref="taskForm" :model="taskForm" label-width="100px" size="mini" :rules="taskFormRules">
<el-form-item :label="$t('dataset.task_name')" prop="name">
<el-input v-model="taskForm.name" size="mini" style="width: 50%" :placeholder="$t('dataset.task_name')"/>
<el-input v-model="taskForm.name" size="mini" style="width: 50%" :placeholder="$t('dataset.task_name')" />
</el-form-item>
<el-form-item :label="$t('dataset.update_type')" prop="type">
<el-select v-model="taskForm.type" size="mini">
<el-option :label="$t('dataset.all_scope')" value="all_scope"/>
<el-option :label="$t('dataset.add_scope')" value="add_scope"/>
<el-option :label="$t('dataset.all_scope')" value="all_scope" />
<el-option :label="$t('dataset.add_scope')" value="add_scope" />
</el-select>
</el-form-item>
<el-form-item :label="$t('dataset.execute_rate')" prop="rate">
<el-select v-model="taskForm.rate" size="mini" @change="onRateChange">
<el-option :label="$t('dataset.execute_once')" value="SIMPLE"/>
<el-option :label="$t('dataset.cron_config')" value="CRON"/>
<el-option :label="$t('dataset.simple_cron')" value="SIMPLE_CRON"/>
<el-option :label="$t('dataset.execute_once')" value="SIMPLE" />
<el-option :label="$t('dataset.cron_config')" value="CRON" />
<el-option :label="$t('dataset.simple_cron')" value="SIMPLE_CRON" />
</el-select>
</el-form-item>
......@@ -107,34 +106,33 @@
<el-form-item v-if="taskForm.rate === 'SIMPLE_CRON'" label="">
<el-form :inline="true">
<el-form-item :label="$t('cron.every')" >
<el-form-item :label="$t('cron.every')">
<el-input v-model="taskForm.extraData.simple_cron_value" size="mini" type="number" min="1" @change="onSimpleCronChange()" />
</el-form-item>
<el-form-item class="form-item">
<el-select v-model="taskForm.extraData.simple_cron_type" filterable size="mini" @change="onSimpleCronChange()" >
<el-select v-model="taskForm.extraData.simple_cron_type" filterable size="mini" @change="onSimpleCronChange()">
<el-option :label="$t('cron.minute_default')" value="minute" />
<el-option :label="$t('cron.hour_default')" value="hour" />
<el-option :label="$t('cron.day_default')" value="day" />
</el-select>
</el-form-item>
<el-form-item class="form-item" :label="$t('cron.every_exec')">
</el-form-item>
<el-form-item class="form-item" :label="$t('cron.every_exec')" />
</el-form>
</el-form-item>
<el-form-item v-if="taskForm.rate !== 'SIMPLE'" :label="$t('dataset.start_time')" prop="startTime">
<el-date-picker v-model="taskForm.startTime" type="datetime" :placeholder="$t('dataset.select_data_time')" size="mini"/>
<el-date-picker v-model="taskForm.startTime" type="datetime" :placeholder="$t('dataset.select_data_time')" size="mini" />
</el-form-item>
<el-form-item v-if="taskForm.rate !== 'SIMPLE'" :label="$t('dataset.end_time')" prop="end">
<el-select v-model="taskForm.end" size="mini">
<el-option :label="$t('dataset.no_limit')" value="0"/>
<el-option :label="$t('dataset.set_end_time')" value="1"/>
<el-option :label="$t('dataset.no_limit')" value="0" />
<el-option :label="$t('dataset.set_end_time')" value="1" />
</el-select>
</el-form-item>
<el-form-item v-if="taskForm.end === '1'" label="">
<el-date-picker v-model="taskForm.endTime" type="datetime" :placeholder="$t('dataset.select_data_time')" size="mini"/>
<el-date-picker v-model="taskForm.endTime" type="datetime" :placeholder="$t('dataset.select_data_time')" size="mini" />
</el-form-item>
<el-form-item v-if="taskForm.type === 'add_scope'" :label="$t('dataset.incremental_update_type')">
......@@ -150,7 +148,8 @@
<el-button type="text" size="mini" @click="insertParamToCodeMirror('${__current_update_time__}')">{{ $t('dataset.current_update_time') }}</el-button>
</el-form-item>
<codemirror v-if="taskForm.type === 'add_scope'"
<codemirror
v-if="taskForm.type === 'add_scope'"
ref="myCm"
v-model="sql"
class="codemirror"
......@@ -196,7 +195,7 @@
import ComplexTable from '@/components/business/complex-table'
import { formatCondition, formatQuickCondition, addOrder, formatOrders } from '@/utils/index'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import {datasetTaskList, post} from '@/api/dataset/dataset'
import { datasetTaskList, post } from '@/api/dataset/dataset'
import { codemirror } from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
import 'codemirror/theme/solarized.css'
......@@ -217,7 +216,6 @@ import 'codemirror/addon/hint/show-hint'
import cron from '@/components/cron/cron'
import TableSelector from '@/views/chart/view/TableSelector'
export default {
name: 'DatasetTaskList',
components: { ComplexTable, cron, codemirror, TableSelector },
......@@ -345,14 +343,14 @@ export default {
}
},
created() {
if(this.param == null){
if (this.param == null) {
this.last_condition = {}
this.search()
}else {
} else {
this.last_condition = {
'dataset_table_task.name': {
field: "dataset_table_task.name",
operator: "eq",
field: 'dataset_table_task.name',
operator: 'eq',
value: this.param.name
}
}
......@@ -366,7 +364,7 @@ export default {
clearInterval(this.timer)
},
methods: {
sortChange( { column, prop, order } ) {
sortChange({ column, prop, order }) {
this.orderConditions = []
if (!order) {
this.search(this.last_condition)
......@@ -401,10 +399,10 @@ export default {
},
taskStatus(item) {
post('/dataset/task/lastExecStatus', item, false).then(response => {
if(!item.lastExecStatus) {
if (!item.lastExecStatus) {
item.lastExecStatus = response.data.lastExecStatus
}
if(!item.lastExecTime) {
if (!item.lastExecTime) {
item.lastExecTime = response.data.lastExecTime
}
item.msg = response.data.msg
......@@ -424,11 +422,11 @@ export default {
}
this.update_task = true
},
changeTaskStatus(task){
const param = task;
changeTaskStatus(task) {
const param = task
param.status = task.status === 'Underway' ? 'Pending' : 'Underway'
post('/dataset/task/updateStatus', task).then(response => {
task.status = param.status;
task.status = param.status
this.$message({
message: this.$t('dataset.task.change_success'),
type: 'success',
......@@ -436,7 +434,7 @@ export default {
})
})
},
execTask(task){
execTask(task) {
this.$confirm(this.$t('dataset.task.confirm_exec'), this.$t('dataset.tips'), {
confirmButtonText: this.$t('dataset.confirm'),
cancelButtonText: this.$t('dataset.cancel'),
......@@ -474,27 +472,27 @@ export default {
},
onSimpleCronChange() {
if (this.taskForm.extraData.simple_cron_type === 'minute') {
if(this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 59){
this.$message({message: this.$t('cron.minute_limit'), type: 'warning', showClose: true})
if (this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 59) {
this.$message({ message: this.$t('cron.minute_limit'), type: 'warning', showClose: true })
this.taskForm.extraData.simple_cron_value = 59
}
this.taskForm.cron = '0 0/'+ this.taskForm.extraData.simple_cron_value + ' * * * ? *'
this.taskForm.cron = '0 0/' + this.taskForm.extraData.simple_cron_value + ' * * * ? *'
return
}
if (this.taskForm.extraData.simple_cron_type === 'hour') {
if(this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 23){
this.$message({message: this.$t('cron.hour_limit'), type: 'warning', showClose: true})
if (this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 23) {
this.$message({ message: this.$t('cron.hour_limit'), type: 'warning', showClose: true })
this.taskForm.extraData.simple_cron_value = 23
}
this.taskForm.cron = '0 0 0/'+ this.taskForm.extraData.simple_cron_value + ' * * ? *'
this.taskForm.cron = '0 0 0/' + this.taskForm.extraData.simple_cron_value + ' * * ? *'
return
}
if (this.taskForm.extraData.simple_cron_type === 'day') {
if(this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 31){
this.$message({message: this.$t('cron.day_limit'), type: 'warning', showClose: true})
if (this.taskForm.extraData.simple_cron_value < 1 || this.taskForm.extraData.simple_cron_value > 31) {
this.$message({ message: this.$t('cron.day_limit'), type: 'warning', showClose: true })
this.taskForm.extraData.simple_cron_value = 31
}
this.taskForm.cron = '0 0 0 1/'+ this.taskForm.extraData.simple_cron_value + ' * ? *'
this.taskForm.cron = '0 0 0 1/' + this.taskForm.extraData.simple_cron_value + ' * ? *'
return
}
},
......@@ -504,10 +502,10 @@ export default {
this.taskForm.endTime = ''
this.taskForm.cron = ''
}
if (this.taskForm.rate === 'SIMPLE_CRON'){
if (this.taskForm.rate === 'SIMPLE_CRON') {
this.taskForm.cron = '0 0 0/1 * * ? *'
}
if (this.taskForm.rate === 'CRON'){
if (this.taskForm.rate === 'CRON') {
this.taskForm.cron = '00 00 * ? * * *'
}
},
......@@ -616,7 +614,7 @@ export default {
this.show_error_massage = true
this.error_massage = massage
},
jumpTaskRecord(item){
jumpTaskRecord(item) {
this.$emit('jumpTaskRecord', item)
},
saveTask(task) {
......
......@@ -5,7 +5,7 @@
<el-table-column prop="name" :label="$t('dataset.task_name')">
<template slot-scope="scope">
<span>
<el-link style="font-size: 12px" @click="jumpTask(scope.row)">{{ scope.row.name }}</el-link>
<el-link :type="matchLogId && scope.row.id === matchLogId ? 'danger': ''" style="font-size: 12px" @click="jumpTask(scope.row)">{{ scope.row.name }}</el-link>
</span>
</template>
</el-table-column>
......@@ -52,17 +52,14 @@
</template>
<script>
import LayoutContent from '@/components/business/LayoutContent'
import ComplexTable from '@/components/business/complex-table'
import { formatCondition, formatQuickCondition, addOrder, formatOrders } from '@/utils/index'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { post } from '@/api/dataset/dataset'
import cron from '@/components/cron/cron'
import TableSelector from '@/views/chart/view/TableSelector'
export default {
name: 'TaskRecord',
components: { ComplexTable, LayoutContent, cron, TableSelector },
components: { ComplexTable },
props: {
param: {
type: Object,
......@@ -113,7 +110,8 @@ export default {
orderConditions: [],
last_condition: null,
show_error_massage: false,
error_massage: ''
error_massage: '',
matchLogId: null
}
},
computed: {
......@@ -122,7 +120,7 @@ export default {
if (this.param == null) {
this.last_condition = {}
this.search()
} else {
} else if (this.param.name) {
this.last_condition = {
'dataset_table_task.name': {
field: 'dataset_table_task.name',
......@@ -131,6 +129,16 @@ export default {
}
}
this.search(this.last_condition)
} else if (this.param.taskId) {
this.matchLogId = this.param.logId || this.matchLogId
this.last_condition = {
'dataset_table_task.id': {
field: 'dataset_table_task.id',
operator: 'eq',
value: this.param.taskId
}
}
this.search(this.last_condition)
}
// this.timer = setInterval(() => {
......@@ -156,25 +164,25 @@ export default {
this.timer = null
}
},
msg2Current(routerParam) {
if (!routerParam || !routerParam.taskId) return
const taskId = routerParam.taskId
// console.log(taskId)
const current_condition = {
'dataset_table_task.id': {
field: 'dataset_table_task.id',
operator: 'eq',
value: taskId
}
}
// 先把定时器干掉 否则会阻塞下面的search
this.destroyTimer()
// msg2Current(routerParam) {
// if (!routerParam || !routerParam.taskId) return
// const taskId = routerParam.taskId
// // console.log(taskId)
// const current_condition = {
// 'dataset_table_task.id': {
// field: 'dataset_table_task.id',
// operator: 'eq',
// value: taskId
// }
// }
// // 先把定时器干掉 否则会阻塞下面的search
// this.destroyTimer()
this.search(current_condition)
// this.search(current_condition)
// 查询完再开启定时器
this.createTimer()
},
// // 查询完再开启定时器
// this.createTimer()
// },
sortChange({ column, prop, order }) {
this.orderConditions = []
if (!order) {
......@@ -210,6 +218,12 @@ export default {
},
jumpTask(item) {
this.$emit('jumpTask', item)
},
rowClassMethod({ row, rowIndex }) {
if (this.matchLogId && this.matchLogId === row.id) {
return 'row-match-class'
}
return ''
}
}
}
......
......@@ -17,17 +17,14 @@
<script>
import LayoutContent from '@/components/business/LayoutContent'
import ComplexTable from '@/components/business/complex-table'
import UnionView from '@/views/dataset/data/UnionView'
import UpdateInfo from '@/views/dataset/data/UpdateInfo'
import DatasetTaskList from '@/views/system/task/DatasetTaskList'
import TaskRecord from '@/views/system/task/TaskRecord'
import TabDataPreview from '@/views/dataset/data/TabDataPreview'
import DatasetTableData from '@/views/dataset/common/DatasetTableData'
import bus from '@/utils/bus'
import { mapGetters } from 'vuex'
export default {
components: { DatasetTableData, LayoutContent, ComplexTable, UnionView, UpdateInfo, TabDataPreview, DatasetTaskList, TaskRecord },
components: { LayoutContent, DatasetTaskList, TaskRecord },
data() {
return {
task: null,
......@@ -74,9 +71,12 @@ export default {
try {
const msgParam = JSON.parse(routerParam.sourceParam)
// this.param = msgParam.tableId
this.tabActive = 'TaskRecord'
this.$nextTick(() => {
this.$refs.task_record && this.$refs.task_record.msg2Current && this.$refs.task_record.msg2Current(msgParam)
// 目标组件存在定时器 这种方式会被定时器阻塞
// this.$refs.task_record && this.$refs.task_record.msg2Current && this.$refs.task_record.msg2Current(msgParam)
this.task = msgParam
this.tabActive = 'TaskRecord'
})
} catch (error) {
console.error(error)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论