问题列表修改
This commit is contained in:
parent
3572fe2c11
commit
f2053c4375
|
|
@ -253,8 +253,8 @@
|
||||||
background-color: #409eff !important; /* 高亮色,与背景区分 */
|
background-color: #409eff !important; /* 高亮色,与背景区分 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-select-dropdown .el-select-dropdown__item.selected {
|
.el-select-dropdown .el-select-dropdown__item.selected, .el-select-dropdown .el-select-dropdown__item.is-selected {
|
||||||
background-color: #409eff !important; /* 选中色 */
|
background-color: #297CD1 !important; /* 选中色 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-popper {
|
.el-popper {
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@ export interface mapRightMenu {
|
||||||
pointData?: () => void;
|
pointData?: () => void;
|
||||||
// 二三维切换
|
// 二三维切换
|
||||||
ts3D?: () => void;
|
ts3D?: () => void;
|
||||||
|
// gif
|
||||||
|
gif?: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 定位参数接口
|
// 定位参数接口
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ export function setMultiplier(num: number) {
|
||||||
// 设置动画时间
|
// 设置动画时间
|
||||||
export function setAnimationTime(opt: any) {
|
export function setAnimationTime(opt: any) {
|
||||||
if (olClock && opt) {
|
if (olClock && opt) {
|
||||||
|
if (!opt.startTime || !opt.endTime) { return }
|
||||||
olClock.startTime = JulianDate.fromDate(new Date(opt.startTime));
|
olClock.startTime = JulianDate.fromDate(new Date(opt.startTime));
|
||||||
olClock.currentTime = JulianDate.fromDate(new Date(opt.startTime));
|
olClock.currentTime = JulianDate.fromDate(new Date(opt.startTime));
|
||||||
olClock.stopTime = JulianDate.fromDate(new Date(opt.endTime));
|
olClock.stopTime = JulianDate.fromDate(new Date(opt.endTime));
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,20 @@
|
||||||
import type { LocateParams, MapControlItem } from '@/gis/ol/interface/common';
|
import type { LocateParams, MapControlItem } from '@/gis/ol/interface/common';
|
||||||
import { domFullscreenStatus } from '@/gis/common/domHandle';
|
import { domFullscreenStatus } from '@/gis/common/domHandle';
|
||||||
import { mapRightMenuEvent } from '@/gis/ol/olRightMenu';
|
import { mapRightMenuEvent } from '@/gis/ol/olRightMenu';
|
||||||
|
import { getGif } from "@/utils/axios/symn";
|
||||||
|
|
||||||
// 是否显示定位页面
|
// 是否显示定位页面
|
||||||
const isShowLocate = ref(false);
|
const isShowLocate = ref(false);
|
||||||
|
|
||||||
const locate = ref<LocateParams>({
|
const locate = ref<LocateParams>({
|
||||||
lon: null,
|
lon: null,
|
||||||
lat: null,
|
lat: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 是否显示gif
|
||||||
|
const isShowGif = ref(false);
|
||||||
|
const gifSrc = ref('');
|
||||||
|
const gifParams = ref({ taskId: '', speciesId: '' });
|
||||||
|
|
||||||
// 图标基础集合
|
// 图标基础集合
|
||||||
const baseList = ref<MapControlItem[]>([
|
const baseList = ref<MapControlItem[]>([
|
||||||
{
|
{
|
||||||
|
|
@ -88,7 +93,7 @@ const baseList = ref<MapControlItem[]>([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'zoomOut',
|
name: 'zoomOut',
|
||||||
isMargin: true,
|
isMargin: false,
|
||||||
tooltip: '缩小',
|
tooltip: '缩小',
|
||||||
isActive: false,
|
isActive: false,
|
||||||
activeName: 'zoomOut',
|
activeName: 'zoomOut',
|
||||||
|
|
@ -128,6 +133,17 @@ const yxcjTool = ref<MapControlItem[]>([
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// 输运模拟
|
||||||
|
const symnTool = ref<MapControlItem[]>([
|
||||||
|
{
|
||||||
|
name: 'gif',
|
||||||
|
isMargin: false,
|
||||||
|
tooltip: 'GIF',
|
||||||
|
isActive: false,
|
||||||
|
activeName: 'gif',
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
// 图标集合
|
// 图标集合
|
||||||
const svgList = ref<MapControlItem[]>([...baseList.value]);
|
const svgList = ref<MapControlItem[]>([...baseList.value]);
|
||||||
// 图标点击事件处理
|
// 图标点击事件处理
|
||||||
|
|
@ -183,6 +199,14 @@ function handleIconClick(item: MapControlItem) {
|
||||||
falg,
|
falg,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理gif
|
||||||
|
else if (item.name === 'gif') {
|
||||||
|
getGif(gifParams.value,(res: any) => {
|
||||||
|
gifSrc.value = window.FSXConfig.VUE_APP_SERVER_IP + res;
|
||||||
|
isShowGif.value = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
// 处理其他功能(全屏、定位等)
|
// 处理其他功能(全屏、定位等)
|
||||||
else {
|
else {
|
||||||
// 缩放按钮不激活状态切换
|
// 缩放按钮不激活状态切换
|
||||||
|
|
@ -254,9 +278,10 @@ onMounted(() => {
|
||||||
// 根据菜单,进行工具栏选项的变动
|
// 根据菜单,进行工具栏选项的变动
|
||||||
if (res.key === 'baseList') {
|
if (res.key === 'baseList') {
|
||||||
svgList.value = [...baseList.value];
|
svgList.value = [...baseList.value];
|
||||||
}
|
} else if (res.key === 'allList') {
|
||||||
else if (res.key === 'allList') {
|
|
||||||
svgList.value = [...baseList.value, ...yxcjTool.value];
|
svgList.value = [...baseList.value, ...yxcjTool.value];
|
||||||
|
} else if (res.key === 'gifIcon') {
|
||||||
|
svgList.value = [...baseList.value, ...symnTool.value];
|
||||||
}
|
}
|
||||||
// 按钮菜单触发状态
|
// 按钮菜单触发状态
|
||||||
if (res.key === 'dataExport') { // 数据导出
|
if (res.key === 'dataExport') { // 数据导出
|
||||||
|
|
@ -266,6 +291,12 @@ onMounted(() => {
|
||||||
switchIconActive(res.key, res.falg);
|
switchIconActive(res.key, res.falg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
EventBusTool.getEventBus().subscribe('speciesChange', (res: any) => {
|
||||||
|
if (res.key === 'speciesId') {
|
||||||
|
gifParams.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -301,6 +332,12 @@ onMounted(() => {
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
<Dialog v-model="isShowGif" title="GIF" width="1340" class="config-dialog" style="min-height: 120px" @close="isShowGif=false">
|
||||||
|
<img v-if="isShowGif" :src="gifSrc" alt="GIF" style="width: 100%">
|
||||||
|
<a v-if="gifSrc" :href="gifSrc" download="gif" class="download-icon">
|
||||||
|
<el-icon size="20"><Download /></el-icon>
|
||||||
|
</a>
|
||||||
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
@ -350,4 +387,25 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.download-icon {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: rgba(0,0,0,0.2);
|
||||||
|
cursor: pointer;
|
||||||
|
color: black;
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(0,0,0,0.3);
|
||||||
|
}
|
||||||
|
&:active {
|
||||||
|
background-color: rgba(0,0,0,0.4);
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ const isQueryData = ref<boolean>(true);
|
||||||
const marskType = ref<string>('hour');
|
const marskType = ref<string>('hour');
|
||||||
const start = ref<any>(dayjs('2025-09-15 00:00:00'));
|
const start = ref<any>(dayjs('2025-09-15 00:00:00'));
|
||||||
const end = ref<any>(dayjs('2025-09-16 00:00:00'));
|
const end = ref<any>(dayjs('2025-09-16 00:00:00'));
|
||||||
const totalHours = ref<number>(end.value.diff(start, marskType.value));
|
const totalHours = ref<number>(end.value.diff(start.value, marskType.value));
|
||||||
const value = ref<number>(0);
|
const value = ref<number>(0);
|
||||||
const playFalg = ref<boolean>(false);
|
const playFalg = ref<boolean>(false);
|
||||||
const slodtooltip: any = (toolNum: number) => {
|
const slodtooltip: any = (toolNum: number) => {
|
||||||
|
|
@ -270,6 +270,13 @@ function setStartAndEndTime(param: any) {
|
||||||
// updateTimeLabel(start.value.valueOf());
|
// updateTimeLabel(start.value.valueOf());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const speciesValueChange = () => {
|
||||||
|
EventBusTool.getEventBus().publish('speciesChange', {
|
||||||
|
key: 'speciesId',
|
||||||
|
data: { taskId: props.taskId, speciesId: speciesValue.value },
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
// 监听 speciesList 变化(比如父组件异步获取数据后更新)
|
// 监听 speciesList 变化(比如父组件异步获取数据后更新)
|
||||||
watch(
|
watch(
|
||||||
() => props.speciesList,
|
() => props.speciesList,
|
||||||
|
|
@ -278,6 +285,10 @@ watch(
|
||||||
console.log(newVal);
|
console.log(newVal);
|
||||||
|
|
||||||
speciesValue.value = newVal[0].value;
|
speciesValue.value = newVal[0].value;
|
||||||
|
EventBusTool.getEventBus().publish('speciesChange', {
|
||||||
|
key: 'speciesId',
|
||||||
|
data: { taskId: props.taskId, speciesId: newVal[0].value },
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
speciesValue.value = null;
|
speciesValue.value = null;
|
||||||
|
|
@ -353,7 +364,7 @@ onMounted(() => {
|
||||||
<el-select-v2 v-if="props.activeMenu === '核事件模拟'" v-model="layerValue" :disabled="!isQueryData"
|
<el-select-v2 v-if="props.activeMenu === '核事件模拟'" v-model="layerValue" :disabled="!isQueryData"
|
||||||
:options="props.layerList" placeholder="请选择图层" style="width: 230px" />
|
:options="props.layerList" placeholder="请选择图层" style="width: 230px" />
|
||||||
<el-select-v2 v-if="props.activeMenu === '输运模拟' && speciesValue" v-model="speciesValue" :disabled="!isQueryData"
|
<el-select-v2 v-if="props.activeMenu === '输运模拟' && speciesValue" v-model="speciesValue" :disabled="!isQueryData"
|
||||||
:options="props.speciesList" placeholder="请选择物种" style="width: 230px" />
|
:options="props.speciesList" placeholder="请选择物种" style="width: 230px" @change="speciesValueChange" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="isShowTabs" class="tabs">
|
<div v-if="isShowTabs" class="tabs">
|
||||||
<div v-for="(v, i) in tabsList" :key="i" class="tabItem" :class="{ active: v.isActive }" @click="switchTab(v)">
|
<div v-for="(v, i) in tabsList" :key="i" class="tabItem" :class="{ active: v.isActive }" @click="switchTab(v)">
|
||||||
|
|
@ -367,6 +378,7 @@ onMounted(() => {
|
||||||
<SvgIcon name="stop" title="停止" width="34" height="34" />
|
<SvgIcon name="stop" title="停止" width="34" height="34" />
|
||||||
</div>
|
</div>
|
||||||
<div class="slider">
|
<div class="slider">
|
||||||
|
<div style="color: white">value:{{ value }} ----- totalHours:{{ totalHours }}</div>
|
||||||
<el-slider v-model="value" :disabled="isDisabledSlider"
|
<el-slider v-model="value" :disabled="isDisabledSlider"
|
||||||
:style="{ width: isShowTabs ? (props.sliderWidth ?? '58vw') : '62vw' }" :max="totalHours"
|
:style="{ width: isShowTabs ? (props.sliderWidth ?? '58vw') : '62vw' }" :max="totalHours"
|
||||||
:format-tooltip="slodtooltip" :marks="marks" @input="handleChange" />
|
:format-tooltip="slodtooltip" :marks="marks" @input="handleChange" />
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ export class X6Graph {
|
||||||
|
|
||||||
// 1. 配置同步字段:新增“配置”菜单项
|
// 1. 配置同步字段:新增“配置”菜单项
|
||||||
const configItem = document.createElement('div');
|
const configItem = document.createElement('div');
|
||||||
|
configItem.id = 'ant-x6-menu-1';
|
||||||
configItem.style.cssText = `
|
configItem.style.cssText = `
|
||||||
padding: 6px 12px;
|
padding: 6px 12px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
@ -197,6 +198,7 @@ export class X6Graph {
|
||||||
|
|
||||||
// 2. 配置同步数量
|
// 2. 配置同步数量
|
||||||
const syncNumItem = document.createElement('div');
|
const syncNumItem = document.createElement('div');
|
||||||
|
syncNumItem.id = 'ant-x6-menu-2';
|
||||||
syncNumItem.style.cssText = `
|
syncNumItem.style.cssText = `
|
||||||
padding: 6px 12px;
|
padding: 6px 12px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
@ -226,6 +228,7 @@ export class X6Graph {
|
||||||
|
|
||||||
// 3. 原有“删除”菜单项(保持不变,调整顺序在配置项下方)
|
// 3. 原有“删除”菜单项(保持不变,调整顺序在配置项下方)
|
||||||
const deleteItem = document.createElement('div');
|
const deleteItem = document.createElement('div');
|
||||||
|
deleteItem.id = 'ant-x6-menu-3';
|
||||||
deleteItem.style.cssText = `
|
deleteItem.style.cssText = `
|
||||||
padding: 6px 12px;
|
padding: 6px 12px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
@ -356,6 +359,14 @@ export class X6Graph {
|
||||||
if (!nodeData.level) {
|
if (!nodeData.level) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nodeData.level === 'level2') {
|
||||||
|
|
||||||
|
} else if (nodeData.level === 'level3') {
|
||||||
|
|
||||||
|
} else if (nodeData.level === 'level4') {
|
||||||
|
|
||||||
|
}
|
||||||
// 显示菜单(位置为点击坐标)
|
// 显示菜单(位置为点击坐标)
|
||||||
this.showMenu(node.id, e.clientX, e.clientY);
|
this.showMenu(node.id, e.clientX, e.clientY);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -368,7 +368,7 @@ function handleSave() {
|
||||||
});
|
});
|
||||||
emit('cancel');
|
emit('cancel');
|
||||||
}
|
}
|
||||||
});
|
}, 30 * 60 * 1000);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
|
|
@ -392,18 +392,19 @@ function handleCancel() {
|
||||||
<ElFormItem :label="t('mode')">
|
<ElFormItem :label="t('mode')">
|
||||||
<ElSelect v-model="formData.mode" style="width: 220px" multiple :max-collapse-tags="0" collapse-tags
|
<ElSelect v-model="formData.mode" style="width: 220px" multiple :max-collapse-tags="0" collapse-tags
|
||||||
collapse-tags-tooltip filterable :placeholder="t('pleaseSelect')" class="custom-select"
|
collapse-tags-tooltip filterable :placeholder="t('pleaseSelect')" class="custom-select"
|
||||||
|
allow-create default-first-option :reserve-keyword="false"
|
||||||
@change="handleModeChange">
|
@change="handleModeChange">
|
||||||
<ElOption v-for="(item, index) in modeList" :key="index" :label="item.label" :value="item.value" />
|
<ElOption v-for="(item, index) in modeList" :key="index" :label="item.label" :value="item.value" />
|
||||||
</ElSelect>
|
</ElSelect>
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
<ElFormItem label="手动输入模式" v-show="!formData.mode || !formData.mode.length">
|
<!--<ElFormItem label="手动输入模式" v-show="!formData.mode || !formData.mode.length">
|
||||||
<div style="display: flex; align-items: center;">
|
<div style="display: flex; align-items: center;">
|
||||||
<ElInput v-model="manualModeInput" style="width: 160px" placeholder="输入模式名" @keyup.enter="handleAddMode" />
|
<ElInput v-model="manualModeInput" style="width: 160px" placeholder="输入模式名" @keyup.enter="handleAddMode" />
|
||||||
<ElButton type="primary" style="margin-left: 4px; height: 34px; border-radius: 4px;" @click="handleAddMode">
|
<ElButton type="primary" style="margin-left: 4px; height: 34px; border-radius: 4px;" @click="handleAddMode">
|
||||||
添加
|
添加
|
||||||
</ElButton>
|
</ElButton>
|
||||||
</div>
|
</div>
|
||||||
</ElFormItem>
|
</ElFormItem>-->
|
||||||
<ElFormItem :label="t('dataTable')">
|
<ElFormItem :label="t('dataTable')">
|
||||||
<ElSelect ref="level3" v-model="formData.dataValue" style="width: 220px" multiple :max-collapse-tags="0"
|
<ElSelect ref="level3" v-model="formData.dataValue" style="width: 220px" multiple :max-collapse-tags="0"
|
||||||
collapse-tags collapse-tags-tooltip filterable :placeholder="t('pleaseSelect')" class="custom-select"
|
collapse-tags collapse-tags-tooltip filterable :placeholder="t('pleaseSelect')" class="custom-select"
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,12 @@ import targetIconB from '@/assets/icon/targetIconB.svg';
|
||||||
import { setAnimationTime, setMultiplier } from '@/gis/ol/olClock';
|
import { setAnimationTime, setMultiplier } from '@/gis/ol/olClock';
|
||||||
import { classInstances } from '@/gis/ol/olHandleEntry';
|
import { classInstances } from '@/gis/ol/olHandleEntry';
|
||||||
import { sendPlaybackPostMassage } from '@/gis/worker/playbackWorkerMa';
|
import { sendPlaybackPostMassage } from '@/gis/worker/playbackWorkerMa';
|
||||||
import { add, deleteData, edit, getAllNuclearfacility, getAllStations,getReleaseDataByForwardId,saveSiteAndReleaseData,delSiteAndReleaseData, getById, getData, getTaskLog, resume, exportTemplate, importFile, pinToTopOrUnpin } from '@/utils/axios/symn';
|
import { add, deleteData, edit, getAllNuclearfacility, getAllStations,getReleaseDataByForwardId,saveSiteAndReleaseData,delSiteAndReleaseData, getById, getData, getTaskLog, resume, exportTemplate, importFile, pinToTop, unpin } from '@/utils/axios/symn';
|
||||||
import fhdfx from './compliance/index.vue';
|
import fhdfx from './compliance/index.vue';
|
||||||
import gxfx from './contribution/index.vue';
|
import gxfx from './contribution/index.vue';
|
||||||
import log from './log/index.vue';
|
import log from './log/index.vue';
|
||||||
import sxfx from './timingAnalysis/index.vue';
|
import sxfx from './timingAnalysis/index.vue';
|
||||||
|
import {activeMoudleInf} from "@/gis/ol";
|
||||||
|
|
||||||
const { t, locale } = useI18n();
|
const { t, locale } = useI18n();
|
||||||
const formEl = ref<FormInstance>();
|
const formEl = ref<FormInstance>();
|
||||||
|
|
@ -147,13 +148,13 @@ interface OptionItem {
|
||||||
value: number;
|
value: number;
|
||||||
}
|
}
|
||||||
const taskStatusList = ref<OptionItem[]>([
|
const taskStatusList = ref<OptionItem[]>([
|
||||||
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过
|
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过
|
||||||
{ label: '执行失败', value: -1 },
|
{ label: '执行失败', value: -1 },
|
||||||
{ label: '未开始', value: 0 },
|
{ label: '未开始', value: 0 },
|
||||||
{ label: '等待中', value: 1 },
|
{ label: '等待中', value: 1 },
|
||||||
{ label: '运行中', value: 2 },
|
{ label: '运行中', value: 2 },
|
||||||
{ label: '已完成', value: 3 },
|
{ label: '已完成', value: 3 },
|
||||||
{ label: '任务检查未通过', value: 4 },
|
{ label: '检查未通过', value: 4 },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
function handleClose() {
|
function handleClose() {
|
||||||
|
|
@ -255,15 +256,25 @@ function clearChild() {
|
||||||
childList.splice(0);
|
childList.splice(0);
|
||||||
}
|
}
|
||||||
// 置顶和取消置顶
|
// 置顶和取消置顶
|
||||||
const pinToTopTask = (row: any) => {
|
const pinToTopTask = (row: any, isPin: boolean) => {
|
||||||
pinToTopOrUnpin({ id: row.id }, (res) => {
|
if (!isPin) {
|
||||||
if (res.code === 200) {
|
pinToTop({ taskId: row.id }, (res) => {
|
||||||
ElMessage.success('操作成功!');
|
if (res.code === 200) {
|
||||||
getList();
|
ElMessage.success('置顶成功!');
|
||||||
}
|
getList();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
unpin({ taskId: row.id }, (res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
ElMessage.success('取消置顶成功!');
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
function viewTask(task: any) {
|
function viewTask(task: any) {
|
||||||
|
debugger
|
||||||
console.log('查看任务:', task);
|
console.log('查看任务:', task);
|
||||||
handleClose();
|
handleClose();
|
||||||
form.value = {
|
form.value = {
|
||||||
|
|
@ -281,6 +292,11 @@ function viewTask(task: any) {
|
||||||
key: 'isQueryData',
|
key: 'isQueryData',
|
||||||
value: true,
|
value: true,
|
||||||
});
|
});
|
||||||
|
if (task.taskMode === 1) {
|
||||||
|
EventBusTool.getEventBus().publish('mapRightMenuUIEvent', {
|
||||||
|
key: 'gifIcon'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 移除所有台站
|
// 移除所有台站
|
||||||
classInstances.olTarget?.clearMarkers();
|
classInstances.olTarget?.clearMarkers();
|
||||||
|
|
@ -546,7 +562,7 @@ function handleSizeChangeLog(val: number) {
|
||||||
}
|
}
|
||||||
function handleCurrentChangeLog(val: number) {
|
function handleCurrentChangeLog(val: number) {
|
||||||
console.log(`current page: ${val}`);
|
console.log(`current page: ${val}`);
|
||||||
currentPage.value = val;
|
currentPageLog.value = val;
|
||||||
getTaskLog({
|
getTaskLog({
|
||||||
taskId: logId.value,
|
taskId: logId.value,
|
||||||
pageNum:currentPageLog.value,
|
pageNum:currentPageLog.value,
|
||||||
|
|
@ -646,6 +662,9 @@ watch(drawerVisible, (newValue) => {
|
||||||
console.log('抽屉状态变化:', newValue);
|
console.log('抽屉状态变化:', newValue);
|
||||||
if (newValue === false) {
|
if (newValue === false) {
|
||||||
dialogVisible.value = true;
|
dialogVisible.value = true;
|
||||||
|
EventBusTool.getEventBus().publish('mapRightMenuUIEvent', {
|
||||||
|
key: 'baseList'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -960,7 +979,7 @@ getStations();
|
||||||
<el-input v-if="form.taskStatus === 1" value="等待中" />
|
<el-input v-if="form.taskStatus === 1" value="等待中" />
|
||||||
<el-input v-if="form.taskStatus === 2" value="运行中" />
|
<el-input v-if="form.taskStatus === 2" value="运行中" />
|
||||||
<el-input v-if="form.taskStatus === 3" value="已完成" />
|
<el-input v-if="form.taskStatus === 3" value="已完成" />
|
||||||
<el-input v-if="form.taskStatus === 4" value="任务检查未通过" />
|
<el-input v-if="form.taskStatus === 4" value="检查未通过" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="t('dataSource')">
|
<el-form-item :label="t('dataSource')">
|
||||||
<el-input v-if="form.useMetType === 1" value="盘古模型" />
|
<el-input v-if="form.useMetType === 1" value="盘古模型" />
|
||||||
|
|
@ -1158,7 +1177,7 @@ getStations();
|
||||||
<div v-if="scope.row.taskStatus === 1" style="color:#ffcb40;">等待中</div>
|
<div v-if="scope.row.taskStatus === 1" style="color:#ffcb40;">等待中</div>
|
||||||
<div v-if="scope.row.taskStatus === 2" style="color:#ffcb40;">运行中</div>
|
<div v-if="scope.row.taskStatus === 2" style="color:#ffcb40;">运行中</div>
|
||||||
<div v-if="scope.row.taskStatus === 3" style="color:#2af442;">已完成</div>
|
<div v-if="scope.row.taskStatus === 3" style="color:#2af442;">已完成</div>
|
||||||
<div v-if="scope.row.taskStatus === 4" style="color:#f42a2a;">任务检查未通过</div>
|
<div v-if="scope.row.taskStatus === 4" style="color:#f42a2a;">检查未通过</div>
|
||||||
</template>
|
</template>
|
||||||
</ElTableColumn>
|
</ElTableColumn>
|
||||||
<ElTableColumn :label="t('dataSource')">
|
<ElTableColumn :label="t('dataSource')">
|
||||||
|
|
@ -1196,40 +1215,44 @@ getStations();
|
||||||
<ElTableColumn prop="createTime" :label="t('creationTime')" />
|
<ElTableColumn prop="createTime" :label="t('creationTime')" />
|
||||||
<ElTableColumn :label="t('operation')" width="330">
|
<ElTableColumn :label="t('operation')" width="330">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<ElButton v-if="scope.row.taskStatus === 1" type="text" class="table-btn" @click="pinToTopTask(scope)">
|
<ElButton v-if="scope.row.taskStatus === 1" type="text" class="table-btn" @click="pinToTopTask(scope, scope.topTask)">
|
||||||
{{ true ? t('pinToTop') : t('unpin') }}
|
{{ !scope.topTask ? t('pinToTop') : t('unpin') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ true ? t('pinToTop') : t('unpin') }}
|
{{ !scope.topTask ? t('pinToTop') : t('unpin') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过-->
|
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过-->
|
||||||
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
||||||
<ElButton type="text" class="custom-text-btn" @click="viewTask(scope.row)">
|
<ElButton v-if="scope.row.taskStatus === -1 || scope.row.taskStatus === 0 || scope.row.taskStatus === 4" type="text" class="custom-text-btn" @click="start(scope.row.id)">
|
||||||
|
{{ t('startOperation') }}
|
||||||
|
</ElButton>
|
||||||
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
|
{{ t('startOperation') }}
|
||||||
|
</ElButton>
|
||||||
|
<ElButton v-if="scope.row.taskStatus === 3" type="text" class="custom-text-btn" @click="viewTask(scope.row)">
|
||||||
{{ t('view') }}
|
{{ t('view') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.row.taskStatus !== 1 && scope.row.taskStatus !== 2 && scope.row.taskStatus !== 3" type="text" class="custom-text-btn" @click="editTask(scope.row, scope.$index)">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
|
{{ t('view') }}
|
||||||
|
</ElButton>
|
||||||
|
<ElButton v-if="scope.row.taskStatus === -1 || scope.row.taskStatus === 0 && scope.row.taskStatus === 4" type="text" class="custom-text-btn" @click="editTask(scope.row, scope.$index)">
|
||||||
{{ t('edit') }}
|
{{ t('edit') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('edit') }}
|
{{ t('edit') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.row.taskStatus == 0 || scope.row.taskStatus === 3 || scope.row.taskStatus === 4" type="text" class="custom-text-btn" @click="deleteTask(scope.row)">
|
<ElButton v-if="scope.row.taskStatus == -1 || scope.row.taskStatus == 0 || scope.row.taskStatus === 3 || scope.row.taskStatus === 4" type="text" class="custom-text-btn" @click="deleteTask(scope.row)">
|
||||||
{{ t('delete') }}
|
{{ t('delete') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('delete') }}
|
{{ t('delete') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton type="text" class="custom-text-btn" @click="showLog(scope.row.id)">
|
<ElButton v-if="scope.row.taskStatus === -1 || scope.row.taskStatus === 0 || scope.row.taskStatus === 1 || scope.row.taskStatus === 2 || scope.row.taskStatus === 3 || scope.row.taskStatus === 4" type="text" class="custom-text-btn" @click="showLog(scope.row.id)">
|
||||||
{{ t('operationLog') }}
|
{{ t('operationLog') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.row.taskStatus === 2 || scope.row.taskStatus === 1" type="text"
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
style="color:#588589;cursor:no-drop">
|
{{ t('operationLog') }}
|
||||||
{{ t('startOperation') }}
|
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" class="custom-text-btn" @click="start(scope.row.id)">
|
|
||||||
{{ t('startOperation') }}
|
|
||||||
</ElButton>
|
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</ElTableColumn>
|
</ElTableColumn>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { gisImgOpt, tqycAnimationType, weathFlag } from '@/gis/ol/index';
|
||||||
import { playbackSearchData, weatherDataLine, weatherPreview } from '@/utils/axios/tqyb/data/index';
|
import { playbackSearchData, weatherDataLine, weatherPreview } from '@/utils/axios/tqyb/data/index';
|
||||||
import tab1 from './tab-1/index.vue';
|
import tab1 from './tab-1/index.vue';
|
||||||
import tab2 from './tab-2/index.vue';
|
import tab2 from './tab-2/index.vue';
|
||||||
|
import tab3 from './tab-3/index.vue';
|
||||||
import WindRose from './WindRose.vue';
|
import WindRose from './WindRose.vue';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
@ -238,7 +239,7 @@ onMounted(() => {
|
||||||
<tab2 v-if="tabActive === '公开气象数据'" type="gkqx" @playback="handleSendData" @preview="weatherPreviewHandle" />
|
<tab2 v-if="tabActive === '公开气象数据'" type="gkqx" @playback="handleSendData" @preview="weatherPreviewHandle" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane :label="t('associateMeteorologicalData')" name="关联气象数据">
|
<el-tab-pane :label="t('associateMeteorologicalData')" name="关联气象数据">
|
||||||
建设中...
|
<tab3 />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,13 @@ interface OptionItem {
|
||||||
value: number;
|
value: number;
|
||||||
}
|
}
|
||||||
const taskStatusList = ref<OptionItem[]>([
|
const taskStatusList = ref<OptionItem[]>([
|
||||||
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过
|
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过
|
||||||
{ label: '执行失败', value: -1 },
|
{ label: '执行失败', value: -1 },
|
||||||
{ label: '未开始', value: 0 },
|
{ label: '未开始', value: 0 },
|
||||||
{ label: '等待中', value: 1 },
|
{ label: '等待中', value: 1 },
|
||||||
{ label: '运行中', value: 2 },
|
{ label: '运行中', value: 2 },
|
||||||
{ label: '已完成', value: 3 },
|
{ label: '已完成', value: 3 },
|
||||||
{ label: '任务检查未通过', value: 4 },
|
{ label: '检查未通过', value: 4 },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
function search() {
|
function search() {
|
||||||
|
|
@ -509,7 +509,7 @@ getList();
|
||||||
<div v-if="scope.row.taskStatus === 1" style="color:#ffcb40;">等待中</div>
|
<div v-if="scope.row.taskStatus === 1" style="color:#ffcb40;">等待中</div>
|
||||||
<div v-if="scope.row.taskStatus === 2" style="color:#ffcb40;">运行中</div>
|
<div v-if="scope.row.taskStatus === 2" style="color:#ffcb40;">运行中</div>
|
||||||
<div v-if="scope.row.taskStatus === 3" style="color:#2af442;">已完成</div>
|
<div v-if="scope.row.taskStatus === 3" style="color:#2af442;">已完成</div>
|
||||||
<div v-if="scope.row.taskStatus === 4" style="color:#f42a2a;">任务检查未通过</div>
|
<div v-if="scope.row.taskStatus === 4" style="color:#f42a2a;">检查未通过</div>
|
||||||
</template>
|
</template>
|
||||||
</ElTableColumn>
|
</ElTableColumn>
|
||||||
<ElTableColumn prop="model" :label="t('predictionModel')">
|
<ElTableColumn prop="model" :label="t('predictionModel')">
|
||||||
|
|
@ -568,7 +568,7 @@ getList();
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ true ? t('pinToTop') : t('unpin') }}
|
{{ true ? t('pinToTop') : t('unpin') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过-->
|
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过-->
|
||||||
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
||||||
<ElButton v-if="scope.row.taskStatus === 0 || scope.row.taskStatus === -1" type="text" class="custom-text-btn"
|
<ElButton v-if="scope.row.taskStatus === 0 || scope.row.taskStatus === -1" type="text" class="custom-text-btn"
|
||||||
@click="start(scope.row, scope.$index)">
|
@click="start(scope.row, scope.$index)">
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ function getList() {
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
if (propsWithDefaults.type === 'gkqx') {
|
if (propsWithDefaults.type === 'gkqx') {
|
||||||
dataS = '6';
|
dataS = '';
|
||||||
selectOption.value = [{
|
selectOption.value = [{
|
||||||
value: '6',
|
value: '6',
|
||||||
label: 't1h',
|
label: 't1h',
|
||||||
|
|
@ -408,6 +408,9 @@ getList();
|
||||||
</ElSelect>
|
</ElSelect>
|
||||||
<el-date-picker v-model="pickerValue" unlink-panels type="datetimerange" :default-time="new Date()"
|
<el-date-picker v-model="pickerValue" unlink-panels type="datetimerange" :default-time="new Date()"
|
||||||
range-separator="至" :start-placeholder="t('startDate')" :end-placeholder="t('endDate')"
|
range-separator="至" :start-placeholder="t('startDate')" :end-placeholder="t('endDate')"
|
||||||
|
:disabled-minutes="() => Array.from({ length: 60 }, (_, i) => i)"
|
||||||
|
:disabled-seconds="() => Array.from({ length: 60 }, (_, i) => i)"
|
||||||
|
value-format="YYYY-MM-DD HH:00:00"
|
||||||
:disabled-hours="disabledHour" />
|
:disabled-hours="disabledHour" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,11 @@ import { nextTick, onMounted, ref, watch } from 'vue';
|
||||||
import { useECharts } from '@/hooks/useECharts';
|
import { useECharts } from '@/hooks/useECharts';
|
||||||
// import axios from 'axios'
|
// import axios from 'axios'
|
||||||
import { getBivariate } from '@/utils/axios/yxcj';
|
import { getBivariate } from '@/utils/axios/yxcj';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
taskId: Number,
|
||||||
|
});
|
||||||
|
|
||||||
// ======================== 1. 数据类型定义 ========================
|
// ======================== 1. 数据类型定义 ========================
|
||||||
interface DataPoint {
|
interface DataPoint {
|
||||||
lon: number; // 经度
|
lon: number; // 经度
|
||||||
|
|
@ -224,7 +229,7 @@ const { updateChart: startAndStopChartStruUpdate } = useECharts({
|
||||||
});
|
});
|
||||||
|
|
||||||
function getlist() {
|
function getlist() {
|
||||||
getBivariate({ taskId: 8 }, (result) => {
|
getBivariate({ taskId: props.taskId }, (result) => {
|
||||||
// axios.get('/mokedata.json').then(result => {
|
// axios.get('/mokedata.json').then(result => {
|
||||||
console.log(result);
|
console.log(result);
|
||||||
const res = result.result;
|
const res = result.result;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { ElButton, ElCol, ElDatePicker, ElForm, ElFormItem, ElInput, ElLoading,
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import Table from '@/components/Table/index.vue';
|
import Table from '@/components/Table/index.vue';
|
||||||
import { activeMoudleInf } from '@/gis/ol/index';
|
import { activeMoudleInf } from '@/gis/ol/index';
|
||||||
import { createTask, deleteTask as deleteData, exportAcTimeSeriesTxt, exportBayesProbLocTxt, exportBivariateTxt, exportTemplate, exportUnivariateTxt, getBayesProbLoc, getById, getIdDetail, getPage, getTaskLog, importTask, runTask, updateTask, pinToTopOrUnpin } from '@/utils/axios/yxcj';
|
import { createTask, deleteTask as deleteData, exportAcTimeSeriesTxt, exportBayesProbLocTxt, exportBivariateTxt, exportTemplate, exportUnivariateTxt, getBayesProbLoc, getById, getIdDetail, getPage, getTaskLog, importTask, runTask, updateTask, pinToTop, unpin } from '@/utils/axios/yxcj';
|
||||||
import { transformLogData } from '@/utils/index';
|
import { transformLogData } from '@/utils/index';
|
||||||
import { exportCharts } from '@/utils/index'; // 下载图表图片
|
import { exportCharts } from '@/utils/index'; // 下载图表图片
|
||||||
import scatter from './dbvarScatter/index.vue';
|
import scatter from './dbvarScatter/index.vue';
|
||||||
|
|
@ -108,6 +108,7 @@ const exportFlag = ref('');
|
||||||
const monOrAnaObj = ref();
|
const monOrAnaObj = ref();
|
||||||
const dbScatterObj = ref();
|
const dbScatterObj = ref();
|
||||||
const univarBanObj = ref();
|
const univarBanObj = ref();
|
||||||
|
const uploadButtonShow = ref(false);
|
||||||
|
|
||||||
// 通过watch监听侧边栏的变化
|
// 通过watch监听侧边栏的变化
|
||||||
watch(drawerVisible, (newValue) => {
|
watch(drawerVisible, (newValue) => {
|
||||||
|
|
@ -123,13 +124,13 @@ interface OptionItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
const taskStatusList = ref<OptionItem[]>([
|
const taskStatusList = ref<OptionItem[]>([
|
||||||
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过
|
// -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过
|
||||||
{ label: '执行失败', value: -1 },
|
{ label: '执行失败', value: -1 },
|
||||||
{ label: '未开始', value: 0 },
|
{ label: '未开始', value: 0 },
|
||||||
{ label: '等待中', value: 1 },
|
{ label: '等待中', value: 1 },
|
||||||
{ label: '运行中', value: 2 },
|
{ label: '运行中', value: 2 },
|
||||||
{ label: '已完成', value: 3 },
|
{ label: '已完成', value: 3 },
|
||||||
{ label: '任务检查未通过', value: 4 },
|
{ label: '检查未通过', value: 4 },
|
||||||
]);
|
]);
|
||||||
const releaseTypeList = ref<OptionItem[]>([
|
const releaseTypeList = ref<OptionItem[]>([
|
||||||
{ label: '持续释放', value: 1 },
|
{ label: '持续释放', value: 1 },
|
||||||
|
|
@ -418,6 +419,12 @@ function getDetail(id: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function viewDetail(row: any) {
|
function viewDetail(row: any) {
|
||||||
|
if (row.id) {
|
||||||
|
uploadButtonShow.value = true
|
||||||
|
} else {
|
||||||
|
uploadButtonShow.value = false
|
||||||
|
}
|
||||||
|
|
||||||
viewDetailVisible.value = true;
|
viewDetailVisible.value = true;
|
||||||
getDetail(form.value?.id || row.id);
|
getDetail(form.value?.id || row.id);
|
||||||
}
|
}
|
||||||
|
|
@ -440,13 +447,22 @@ function getData(id: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 置顶和取消置顶
|
// 置顶和取消置顶
|
||||||
const pinToTopTask = (row: any) => {
|
const pinToTopTask = (row: any, isPin: boolean) => {
|
||||||
pinToTopOrUnpin({ id: row.id }, (res) => {
|
if (!isPin) {
|
||||||
if (res.code === 200) {
|
pinToTop({ taskId: row.id }, (res) => {
|
||||||
ElMessage.success('操作成功!');
|
if (res.code === 200) {
|
||||||
getList();
|
ElMessage.success('置顶成功!');
|
||||||
}
|
getList();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
unpin({ taskId: row.id }, (res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
ElMessage.success('取消置顶成功!');
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// 执行重建任务
|
// 执行重建任务
|
||||||
function runTaskId(row: any) {
|
function runTaskId(row: any) {
|
||||||
|
|
@ -890,6 +906,9 @@ onMounted(() => {
|
||||||
v-model="viewDetailVisible" :title="t('view')" width="61vw" class="view-dialog"
|
v-model="viewDetailVisible" :title="t('view')" width="61vw" class="view-dialog"
|
||||||
@close="viewDetailVisible = false"
|
@close="viewDetailVisible = false"
|
||||||
>
|
>
|
||||||
|
<!--<ElFormItem :label="t('upload')" style="width: 40%;">-->
|
||||||
|
<ElButton v-if="uploadButtonShow" type="default" class="custom-btn" style="margin-bottom: 6px;" @click="listUpload">{{ t('upload') }}abc</ElButton>
|
||||||
|
<!--</ElFormItem>-->
|
||||||
<Table
|
<Table
|
||||||
class="table" :show-index="true" :table-data="detailData" :table-header="detailColumns"
|
class="table" :show-index="true" :table-data="detailData" :table-header="detailColumns"
|
||||||
:select-options="selectOptions" :page="pageNum"
|
:select-options="selectOptions" :page="pageNum"
|
||||||
|
|
@ -909,7 +928,7 @@ onMounted(() => {
|
||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :span="5">
|
<ElCol :span="5">
|
||||||
<ElFormItem :label="t('taskStatus')" style="margin-bottom: 0;">
|
<ElFormItem :label="t('taskStatus')" style="margin-bottom: 0;">
|
||||||
<ElSelect v-model="queryForm.taskStatus" :placeholder="t('pleaseSelect')" @change="handleTaskStatusChange">
|
<ElSelect v-model="queryForm.taskStatus" clearable :placeholder="t('pleaseSelect')" @change="handleTaskStatusChange">
|
||||||
<ElOption v-for="item in taskStatusList" :key="item.value" :label="item.label" :value="item.value" style="background-color: transparent;" />
|
<ElOption v-for="item in taskStatusList" :key="item.value" :label="item.label" :value="item.value" style="background-color: transparent;" />
|
||||||
</ElSelect>
|
</ElSelect>
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
|
|
@ -950,33 +969,33 @@ onMounted(() => {
|
||||||
@pagination="handlePagination"
|
@pagination="handlePagination"
|
||||||
>
|
>
|
||||||
<template #operate="{ scope }">
|
<template #operate="{ scope }">
|
||||||
<ElButton v-if="scope.taskStatus === 1" type="text" class="table-btn" @click="pinToTopTask(scope)">
|
<ElButton v-if="scope.taskStatus === 1" type="text" class="table-btn" @click="pinToTopTask(scope, scope.topTask)">
|
||||||
{{ true ? t('pinToTop') : t('unpin') }}
|
{{ !scope.topTask ? t('pinToTop') : t('unpin') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ true ? t('pinToTop') : t('unpin') }}
|
{{ !scope.topTask ? t('pinToTop') : t('unpin') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4任务检查未通过-->
|
<!-- -1执行失败,0未开始,1等待中,2运行中,3已完成,4检查未通过-->
|
||||||
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
<!--任务处于等待中,运行中状态时,不能编辑和删除;处于未开始,已完成,检查未通过时可以删除;处于已完成状态时也不能编辑-->
|
||||||
<ElButton v-if="scope.taskStatus === 0" type="text" class="table-btn" @click="runTaskId(scope)">
|
<ElButton v-if="scope.taskStatus === -1 || scope.taskStatus === 0 || scope.taskStatus === 4" type="text" class="table-btn" @click="runTaskId(scope)">
|
||||||
{{ t('start') }}
|
{{ t('start') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('start') }}
|
{{ t('start') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.taskStatus === 2" type="text" class="table-btn" @click="viewTask(scope)">
|
<ElButton v-if="scope.taskStatus === 3" type="text" class="table-btn" @click="viewTask(scope)">
|
||||||
{{ t('view') }}
|
{{ t('view') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('view') }}
|
{{ t('view') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.taskStatus !== 1 && scope.taskStatus !== 2 && scope.taskStatus !== 3" type="text" class="table-btn" @click="editTask(scope)">
|
<ElButton v-if="scope.taskStatus === -1 || scope.taskStatus === 0 || scope.taskStatus === 4" type="text" class="table-btn" @click="editTask(scope)">
|
||||||
{{ t('edit') }}
|
{{ t('edit') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('edit') }}
|
{{ t('edit') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-if="scope.taskStatus == 0 || scope.taskStatus === 3 || scope.taskStatus === 4" type="text" class="table-btn" @click="deleteTask(scope)">
|
<ElButton v-if="scope.taskStatus === -1 || scope.taskStatus === 0 || scope.taskStatus === 3 || scope.taskStatus === 4" type="text" class="table-btn" @click="deleteTask(scope)">
|
||||||
{{ t('delete') }}
|
{{ t('delete') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
|
|
@ -988,10 +1007,16 @@ onMounted(() => {
|
||||||
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('upload') }}
|
{{ t('upload') }}
|
||||||
</ElButton>-->
|
</ElButton>-->
|
||||||
<ElButton type="text" class="table-btn" @click="getLog(scope)">
|
<ElButton v-if="scope.taskStatus === -1 || scope.taskStatus === 0 || scope.taskStatus === 1 || scope.taskStatus === 2 || scope.taskStatus === 3 || scope.taskStatus === 4" type="text" class="table-btn" @click="getLog(scope)">
|
||||||
{{ t('operationLog') }}
|
{{ t('operationLog') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
<ElButton type="text" class="table-btn" @click="viewDetail(scope)">
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
|
{{ t('operationLog') }}
|
||||||
|
</ElButton>
|
||||||
|
<ElButton v-if="scope.taskStatus === -1 || scope.taskStatus === 0 || scope.taskStatus === 1 || scope.taskStatus === 2 || scope.taskStatus === 3 || scope.taskStatus === 4" type="text" class="table-btn" @click="viewDetail(scope)">
|
||||||
|
{{ t('monitoringData') }}
|
||||||
|
</ElButton>
|
||||||
|
<ElButton v-else type="text" style="color:#588589;cursor:no-drop">
|
||||||
{{ t('monitoringData') }}
|
{{ t('monitoringData') }}
|
||||||
</ElButton>
|
</ElButton>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -1014,7 +1039,7 @@ onMounted(() => {
|
||||||
<ElFormItem :label="t('taskName')" prop="taskName" style="width: 40%;">
|
<ElFormItem :label="t('taskName')" prop="taskName" style="width: 40%;">
|
||||||
<ElInput v-model="detailForm.taskName" :placeholder="t('pleaseEnter')" />
|
<ElInput v-model="detailForm.taskName" :placeholder="t('pleaseEnter')" />
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
<ElFormItem :label="t('taskStatus')" prop="taskStatus" style="width: 40%;">
|
<ElFormItem v-if="!(taskFlag==='add' || taskFlag==='edit')" :label="t('taskStatus')" prop="taskStatus" style="width: 40%;">
|
||||||
<ElSelect v-model="detailForm.taskStatus" :placeholder="t('pleaseSelect')" disabled>
|
<ElSelect v-model="detailForm.taskStatus" :placeholder="t('pleaseSelect')" disabled>
|
||||||
<ElOption v-for="item in taskStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
<ElOption v-for="item in taskStatusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</ElSelect>
|
</ElSelect>
|
||||||
|
|
@ -1087,10 +1112,6 @@ onMounted(() => {
|
||||||
<ElInput v-model="detailForm.sourceStrength" type="number" :placeholder="t('pleaseEnter')" />
|
<ElInput v-model="detailForm.sourceStrength" type="number" :placeholder="t('pleaseEnter')" />
|
||||||
</ElFormItem>
|
</ElFormItem>
|
||||||
|
|
||||||
<ElFormItem :label="t('upload')" style="width: 40%;">
|
|
||||||
<ElButton type="default" class="custom-btn" @click="listUpload">{{ t('upload') }}</ElButton>
|
|
||||||
</ElFormItem>
|
|
||||||
|
|
||||||
<!-- <ElFormItem label="耗时">
|
<!-- <ElFormItem label="耗时">
|
||||||
<ElInput v-model="detailForm.time" :placeholder="t('pleaseEnter')" />
|
<ElInput v-model="detailForm.time" :placeholder="t('pleaseEnter')" />
|
||||||
</ElFormItem> -->
|
</ElFormItem> -->
|
||||||
|
|
|
||||||
|
|
@ -81,16 +81,33 @@ export async function delSiteAndReleaseData(params: any, callback?: (data: any)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @method 置顶任务和取消置顶
|
* @method 置顶任务
|
||||||
* @param {string} [params.id] - id
|
* @param {string} [params.id] - id
|
||||||
* @returns {Promise<any>}
|
* @returns {Promise<any>}
|
||||||
*/
|
*/
|
||||||
export async function pinToTopOrUnpin(params: {
|
export async function pinToTop(params: {
|
||||||
id: string;
|
taskId: string;
|
||||||
}, callback?: (data: any) => void): Promise<any> {
|
}, callback?: (data: any) => void): Promise<any> {
|
||||||
const response = await request({
|
const response = await request({
|
||||||
url: `${serverIp}${baseURL}/source/uuuuuuuuuu`,
|
url: `${serverIp}${baseURL}/transportTask/setTaskTop`,
|
||||||
method: 'GET',
|
method: 'PUT',
|
||||||
|
params,
|
||||||
|
});
|
||||||
|
// 执行回调(如果存在)
|
||||||
|
callback?.(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @method 取消置顶
|
||||||
|
* @param {string} [params.id] - id
|
||||||
|
* @returns {Promise<any>}
|
||||||
|
*/
|
||||||
|
export async function unpin(params: {
|
||||||
|
taskId: string;
|
||||||
|
}, callback?: (data: any) => void): Promise<any> {
|
||||||
|
const response = await request({
|
||||||
|
url: `${serverIp}${baseURL}/transportTask/setCancelTaskTop`,
|
||||||
|
method: 'PUT',
|
||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
// 执行回调(如果存在)
|
// 执行回调(如果存在)
|
||||||
|
|
@ -428,3 +445,19 @@ export async function importFile(
|
||||||
callback?.(response.result);
|
callback?.(response.result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取gif
|
||||||
|
*/
|
||||||
|
export async function getGif(param: any, callback?: (data: any) => void): Promise<any> {
|
||||||
|
const response = await request({
|
||||||
|
url: `${serverIp}${baseURL}/transportResult/getTaskGifAddr`,
|
||||||
|
method: 'GET',
|
||||||
|
params: param,
|
||||||
|
});
|
||||||
|
|
||||||
|
// 执行回调(如果存在)
|
||||||
|
if (callback && typeof callback === 'function') {
|
||||||
|
callback(response.result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -235,11 +235,13 @@ export async function targetSourceUser(params: any, callback?: (data: any) => vo
|
||||||
export async function createTargetTables(
|
export async function createTargetTables(
|
||||||
data: any,
|
data: any,
|
||||||
callback?: (data: any) => void,
|
callback?: (data: any) => void,
|
||||||
|
timeout?: number,
|
||||||
): Promise<any> {
|
): Promise<any> {
|
||||||
const response = await request({
|
const response = await request({
|
||||||
url: `${serverIp}${baseURL}/syncStrategy/createTargetTables`,
|
url: `${serverIp}${baseURL}/syncStrategy/createTargetTables`,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
data,
|
data,
|
||||||
|
timeout: timeout || 300000
|
||||||
});
|
});
|
||||||
|
|
||||||
if (response.success && response.code === 200) {
|
if (response.success && response.code === 200) {
|
||||||
|
|
|
||||||
|
|
@ -211,16 +211,33 @@ export async function deleteTask(params: {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @method 置顶任务和取消置顶
|
* @method 置顶任务
|
||||||
* @param {string} [params.id] - id
|
* @param {string} [params.id] - id
|
||||||
* @returns {Promise<any>}
|
* @returns {Promise<any>}
|
||||||
*/
|
*/
|
||||||
export async function pinToTopOrUnpin(params: {
|
export async function pinToTop(params: {
|
||||||
id: string;
|
taskId: string;
|
||||||
}, callback?: (data: any) => void): Promise<any> {
|
}, callback?: (data: any) => void): Promise<any> {
|
||||||
const response = await request({
|
const response = await request({
|
||||||
url: `${serverIp}${baseURL}/source/xxxxxxxxx`,
|
url: `${serverIp}${baseURL}/source/setTaskTop`,
|
||||||
method: 'GET',
|
method: 'PUT',
|
||||||
|
params,
|
||||||
|
});
|
||||||
|
// 执行回调(如果存在)
|
||||||
|
callback?.(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @method 取消置顶
|
||||||
|
* @param {string} [params.id] - id
|
||||||
|
* @returns {Promise<any>}
|
||||||
|
*/
|
||||||
|
export async function unpin(params: {
|
||||||
|
taskId: string;
|
||||||
|
}, callback?: (data: any) => void): Promise<any> {
|
||||||
|
const response = await request({
|
||||||
|
url: `${serverIp}${baseURL}/source/setCancelTaskTop`,
|
||||||
|
method: 'PUT',
|
||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
// 执行回调(如果存在)
|
// 执行回调(如果存在)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user