Merge branch 'wxk-main'
This commit is contained in:
commit
80af0e2bfa
@ -11,7 +11,7 @@ VITE_APP_BASE_URL = 'http://localhost:8093'
|
|||||||
# 测试环境
|
# 测试环境
|
||||||
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
|
||||||
# 汤伟
|
# 汤伟
|
||||||
VITE_APP_BASE_URL = 'http://10.84.111.235:8093'
|
VITE_APP_BASE_URL = 'http://10.84.216.252:8093'
|
||||||
# 李林
|
# 李林
|
||||||
# VITE_APP_BASE_URL = 'http://10.84.111.25:8093'
|
# VITE_APP_BASE_URL = 'http://10.84.111.25:8093'
|
||||||
|
|
||||||
|
|||||||
@ -286,6 +286,14 @@ export function getFishReleaseMonitorSectionList(data) {
|
|||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//过鱼设施名称新接口
|
||||||
|
export function overviewvmsstbprptGetKendoList(data) {
|
||||||
|
return request({
|
||||||
|
url: '/overview/vmsstbprpt/GetKendoList',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
// 过鱼监测数据
|
// 过鱼监测数据
|
||||||
export function getFishReleaseMonitorList(data) {
|
export function getFishReleaseMonitorList(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@ -81,3 +81,8 @@ watch(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
:deep(.ant-descriptions-item-label){
|
||||||
|
min-width: 140px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -147,6 +147,11 @@ const columns = computed<any[]>(() => [
|
|||||||
visible: true,
|
visible: true,
|
||||||
width: 120,
|
width: 120,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
customRender: ({ text, record }: any) => {
|
||||||
|
// 有值就显示,无值就用 recordId 兜底
|
||||||
|
if (text && text !== '-' && text !== 'null' && text !== 'undefined') return text;
|
||||||
|
return record.recordId || '-';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "operator",
|
key: "operator",
|
||||||
|
|||||||
@ -178,6 +178,7 @@
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
placeholder="请选择第一台机组投产时间"
|
placeholder="请选择第一台机组投产时间"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
:disabled-date="disabledPiodtDate"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@ -189,6 +190,7 @@
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
placeholder="请选择全部机组投产时间"
|
placeholder="请选择全部机组投产时间"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
:disabled-date="disabledAiodtDate"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@ -900,6 +902,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, watch } from 'vue';
|
import { ref, computed, watch } from 'vue';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
import { addPowerInfo, updatePowerInfo } from '@/api/DataQueryMenuModule';
|
import { addPowerInfo, updatePowerInfo } from '@/api/DataQueryMenuModule';
|
||||||
import { BasicColumns } from '@/components/MapModal/column.config';
|
import { BasicColumns } from '@/components/MapModal/column.config';
|
||||||
@ -949,6 +952,18 @@ const formRules = computed(() => ({
|
|||||||
reachcd: [{ required: true, message: '请选择所在河段', trigger: 'change' }]
|
reachcd: [{ required: true, message: '请选择所在河段', trigger: 'change' }]
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// 第一台机组投产时间须早于全部机组投产时间:双向通过 disabled-date 禁用不合理日期
|
||||||
|
const disabledPiodtDate = (current: any) => {
|
||||||
|
const aiodt = formData.value?.aiodt;
|
||||||
|
if (!aiodt) return false;
|
||||||
|
return current && current.endOf('day') > dayjs(aiodt);
|
||||||
|
};
|
||||||
|
const disabledAiodtDate = (current: any) => {
|
||||||
|
const piodt = formData.value?.piodt;
|
||||||
|
if (!piodt) return false;
|
||||||
|
return current && current.endOf('day') < dayjs(piodt);
|
||||||
|
};
|
||||||
|
|
||||||
// 确认弹框状态
|
// 确认弹框状态
|
||||||
const confirmModalVisible = ref(false);
|
const confirmModalVisible = ref(false);
|
||||||
|
|
||||||
|
|||||||
@ -176,7 +176,7 @@ const columnMetaMap: Record<string, any> = {
|
|||||||
addvcdName: { width: 150, sort: true, ellipsis: true },
|
addvcdName: { width: 150, sort: true, ellipsis: true },
|
||||||
stlc: { width: 200, sort: true, ellipsis: true },
|
stlc: { width: 200, sort: true, ellipsis: true },
|
||||||
baseName: { width: 120, ellipsis: true },
|
baseName: { width: 120, ellipsis: true },
|
||||||
jcdt: { width: 180, sort: true, ellipsis: true, customRender: dateRender },
|
jcdt: { width: 120, sort: true, ellipsis: true, customRender: dateRender },
|
||||||
piodt: { width: 160, sort: true, ellipsis: true, customRender: dateRender },
|
piodt: { width: 160, sort: true, ellipsis: true, customRender: dateRender },
|
||||||
aiodt: { width: 150, sort: true, ellipsis: true, customRender: dateRender },
|
aiodt: { width: 150, sort: true, ellipsis: true, customRender: dateRender },
|
||||||
bldsttCcodeName: { width: 100, sort: true, ellipsis: true },
|
bldsttCcodeName: { width: 100, sort: true, ellipsis: true },
|
||||||
|
|||||||
@ -60,7 +60,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -64,12 +64,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -64,12 +64,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -108,6 +108,8 @@
|
|||||||
v-model:value="formData.lgtd"
|
v-model:value="formData.lgtd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-180"
|
||||||
|
:max="180"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -118,6 +120,8 @@
|
|||||||
v-model:value="formData.lttd"
|
v-model:value="formData.lttd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-90"
|
||||||
|
:max="90"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -596,7 +600,7 @@ const loadDropdownData = () => {
|
|||||||
field: 'sttpCode',
|
field: 'sttpCode',
|
||||||
operator: 'in',
|
operator: 'in',
|
||||||
dataType: 'string',
|
dataType: 'string',
|
||||||
value: ['FP', 'FP_1', 'FP_2', 'FP_3', 'FP_4', 'FP_5']
|
value: ['FP_1', 'FP_2', 'FP_3', 'FP_4', 'FP_5']
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,7 +28,7 @@ const searchList: any = computed(() => [
|
|||||||
|
|
||||||
const getBaseList = async () => {
|
const getBaseList = async () => {
|
||||||
const res = await sttpGetKendoList({
|
const res = await sttpGetKendoList({
|
||||||
filter: { logic: 'and', filters: [{ field: 'sttpCode', operator: 'in', dataType: 'string', value: ['FP', 'FP_1', 'FP_2', 'FP_3', 'FP_4', 'FP_5'] }] }
|
filter: { logic: 'and', filters: [{ field: 'sttpCode', operator: 'in', dataType: 'string', value: ['FP_1', 'FP_2', 'FP_3', 'FP_4', 'FP_5'] }] }
|
||||||
});
|
});
|
||||||
sttpOption.value = res.data.data.map(item => ({ label: item.sttpName, value: item.sttpCode }));
|
sttpOption.value = res.data.data.map(item => ({ label: item.sttpName, value: item.sttpCode }));
|
||||||
};
|
};
|
||||||
|
|||||||
@ -64,12 +64,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -59,6 +59,8 @@
|
|||||||
v-model:value="formData.lgtd"
|
v-model:value="formData.lgtd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-180"
|
||||||
|
:max="180"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -69,6 +71,8 @@
|
|||||||
v-model:value="formData.lttd"
|
v-model:value="formData.lttd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-90"
|
||||||
|
:max="90"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|||||||
@ -40,12 +40,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
|
|||||||
@ -43,14 +43,12 @@ const bldsttMap: Record<number, string> = { 0: '规划', 1: '在建', 2: '已建
|
|||||||
const columns = ref<any[]>([
|
const columns = ref<any[]>([
|
||||||
{ key: 'stnm', title: '设施名称', dataIndex: 'stnm', visible: true, width: 160, fixed: 'left',ellipsis: true },
|
{ key: 'stnm', title: '设施名称', dataIndex: 'stnm', visible: true, width: 160, fixed: 'left',ellipsis: true },
|
||||||
{ key: 'stcd', title: '设施编码', dataIndex: 'stcd', visible: true, width: 180, ellipsis: true },
|
{ key: 'stcd', title: '设施编码', dataIndex: 'stcd', visible: true, width: 180, ellipsis: true },
|
||||||
{ key: 'sttpName', title: '设施类型', dataIndex: 'sttpName', visible: true, width: 100, ellipsis: true },
|
{ key: 'sttpName', title: '设施类型', dataIndex: 'sttpName', visible: true, width:120, ellipsis: true },
|
||||||
|
|
||||||
{ key: 'baseName', title: '水电基地', dataIndex: 'baseName', visible: true, width: 120, ellipsis: true },
|
{ key: 'baseName', title: '水电基地', dataIndex: 'baseName', visible: true, width: 120, ellipsis: true },
|
||||||
{ key: 'ennm', title: '所属电站', dataIndex: 'ennm', visible: true, width: 100, ellipsis: true },
|
{ key: 'ennm', title: '所属电站', dataIndex: 'ennm', visible: true, width: 100, ellipsis: true },
|
||||||
|
|
||||||
{ key: 'bldsttCode', title: '建设状态', dataIndex: 'bldsttCode', visible: true, width: 80, customRender: ({ text }) => (text !== null && text !== undefined ? (bldsttMap[text] || text) : '-') },
|
{ key: 'bldsttCode', title: '建设状态', dataIndex: 'bldsttCode', visible: true, width: 80, customRender: ({ text }) => (text !== null && text !== undefined ? (bldsttMap[text] || text) : '-') },
|
||||||
{ key: 'minFlow', title: '最小下泄流量(m³/s)', dataIndex: 'minFlow', visible: true, width: 150 },
|
{ key: 'minFlow', title: '最小下泄流量(m³/s)', dataIndex: 'minFlow', visible: true, width: 150 },
|
||||||
{ key: 'swdt', title: '开工日期', dataIndex: 'swdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
{ key: 'swdt', title: '开工日期', dataIndex: 'swdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
||||||
{ key: 'jcdt', title: '建成日期', dataIndex: 'jcdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
{ key: 'jcdt', title: '建成日期', dataIndex: 'jcdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
||||||
{ key: 'stlc', title: '站址/位置', dataIndex: 'stlc', visible: true, ellipsis: true, width: 300 },
|
{ key: 'stlc', title: '站址/位置', dataIndex: 'stlc', visible: true, ellipsis: true, width: 300 },
|
||||||
{ key: 'action', title: '操作', dataIndex: 'action', fixed: 'right', width: 120 }
|
{ key: 'action', title: '操作', dataIndex: 'action', fixed: 'right', width: 120 }
|
||||||
|
|||||||
@ -69,7 +69,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -64,12 +64,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -69,6 +69,8 @@
|
|||||||
v-model:value="formData.lgtd"
|
v-model:value="formData.lgtd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-180"
|
||||||
|
:max="180"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -79,6 +81,8 @@
|
|||||||
v-model:value="formData.lttd"
|
v-model:value="formData.lttd"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
:precision="6"
|
:precision="6"
|
||||||
|
:min="-90"
|
||||||
|
:max="90"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|||||||
@ -64,12 +64,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -69,7 +69,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -26,12 +26,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
|
|||||||
@ -26,12 +26,12 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="经度(°)" name="lgtd">
|
<a-form-item label="经度(°)" name="lgtd">
|
||||||
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lgtd" placeholder="请输入" :precision="6" :min="-180" :max="180" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="纬度(°)" name="lttd">
|
<a-form-item label="纬度(°)" name="lttd">
|
||||||
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" style="width: 100%" />
|
<a-input-number v-model:value="formData.lttd" placeholder="请输入" :precision="6" :min="-90" :max="90" style="width: 100%" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|||||||
@ -48,7 +48,7 @@ const columns = ref<any[]>([
|
|||||||
{ key: 'swdt', title: '开工日期', dataIndex: 'swdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
{ key: 'swdt', title: '开工日期', dataIndex: 'swdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
||||||
{ key: 'jcdt', title: '建成日期', dataIndex: 'jcdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
{ key: 'jcdt', title: '建成日期', dataIndex: 'jcdt', visible: true, width: 110, customRender: ({ text }) => { if (!text || text === '-') return '-'; const date = dayjs(text); return date.isValid() ? date.format('YYYY-MM-DD') : '-'; } },
|
||||||
{ key: 'bhfs', title: '保护方式', dataIndex: 'bhfs', visible: true, width: 200, ellipsis: true },
|
{ key: 'bhfs', title: '保护方式', dataIndex: 'bhfs', visible: true, width: 200, ellipsis: true },
|
||||||
{ key: 'stlc', title: '站址', dataIndex: 'stlc', visible: true, width: 200, ellipsis: true },
|
{ key: 'stlc', title: '站址', dataIndex: 'stlc', visible: true, width: 280, ellipsis: true },
|
||||||
{ key: 'action', title: '操作', dataIndex: 'action', fixed: 'right', width: 120 }
|
{ key: 'action', title: '操作', dataIndex: 'action', fixed: 'right', width: 120 }
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@ -97,7 +97,11 @@
|
|||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="数据来源" name="dataSource" v-if="formData.timeDimension === 'month'">
|
<a-form-item
|
||||||
|
label="数据来源"
|
||||||
|
name="dataSource"
|
||||||
|
v-if="formData.timeDimension === 'month'"
|
||||||
|
>
|
||||||
<a-radio-group v-model:value="formData.dataSource">
|
<a-radio-group v-model:value="formData.dataSource">
|
||||||
<a-radio value="true">日统计表</a-radio>
|
<a-radio value="true">日统计表</a-radio>
|
||||||
<a-radio value="false">小时表</a-radio>
|
<a-radio value="false">小时表</a-radio>
|
||||||
@ -192,13 +196,14 @@
|
|||||||
<div style="display: flex; align-items: center">
|
<div style="display: flex; align-items: center">
|
||||||
<a-checkbox value="baseId">基地:</a-checkbox>
|
<a-checkbox value="baseId">基地:</a-checkbox>
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="formData.yearBaseId"
|
v-model:value="formData.rvcd"
|
||||||
placeholder="请选择水电基地"
|
placeholder="请选择水电基地"
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
allow-clear
|
allow-clear
|
||||||
show-search
|
show-search
|
||||||
:filter-option="filterOption"
|
:filter-option="filterOption"
|
||||||
:loading="rvcdLoading"
|
:loading="rvcdLoading"
|
||||||
|
@change="handleRvcdChange"
|
||||||
style="width: 200px; margin-right: 10px"
|
style="width: 200px; margin-right: 10px"
|
||||||
:max-tag-count="2"
|
:max-tag-count="2"
|
||||||
>
|
>
|
||||||
@ -291,7 +296,6 @@ const formData = reactive({
|
|||||||
yearStatContent: [] as string[],
|
yearStatContent: [] as string[],
|
||||||
statYears: [] as string[],
|
statYears: [] as string[],
|
||||||
yearDimContent: [] as string[],
|
yearDimContent: [] as string[],
|
||||||
yearBaseId: [] as string[],
|
|
||||||
lyRvcd: [] as string[],
|
lyRvcd: [] as string[],
|
||||||
dimensionStat: '',
|
dimensionStat: '',
|
||||||
content: ''
|
content: ''
|
||||||
@ -361,7 +365,7 @@ const loadStationOptions = async (rvcds?: string[]) => {
|
|||||||
const initDone = ref(false);
|
const initDone = ref(false);
|
||||||
watch(
|
watch(
|
||||||
() => JidiSelectEventStore.jidiData,
|
() => JidiSelectEventStore.jidiData,
|
||||||
(val) => {
|
val => {
|
||||||
if (initDone.value) return;
|
if (initDone.value) return;
|
||||||
const data = (val || []).filter((item: any) => item.wbsCode !== 'all');
|
const data = (val || []).filter((item: any) => item.wbsCode !== 'all');
|
||||||
if (data.length === 0) return;
|
if (data.length === 0) return;
|
||||||
@ -403,50 +407,12 @@ const loadLyOptions = async () => {
|
|||||||
lyLoading.value = false;
|
lyLoading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 时间维度切换时清理表单缓存,避免残留上次的选择
|
const dataOptions = ref([
|
||||||
watch(
|
{ itemCode: 'month', dictName: '月度报表' },
|
||||||
() => formData.timeDimension,
|
{ itemCode: 'year', dictName: '年度报表' },
|
||||||
(newVal, oldVal) => {
|
{ itemCode: 'day', dictName: '日度报表' },
|
||||||
if (newVal === oldVal) return;
|
{ itemCode: 'hour', dictName: '小时报表' }
|
||||||
// 清空公共字段(基地/电站/流域)
|
]);
|
||||||
formData.rvcd = [];
|
|
||||||
formData.stations = [];
|
|
||||||
formData.lyRvcd = [];
|
|
||||||
formData.yearBaseId = [];
|
|
||||||
if (newVal === 'year') {
|
|
||||||
// 清理月度/日/时统计字段
|
|
||||||
formData.monitorElements = [];
|
|
||||||
formData.statMonths = [];
|
|
||||||
formData.dataSource = 'true';
|
|
||||||
// 恢复年统计默认值
|
|
||||||
formData.yearStatContent = ['wq', 'qec'];
|
|
||||||
formData.yearDimContent = ['stcd', 'baseId'];
|
|
||||||
formData.statYears = [String(new Date().getFullYear())];
|
|
||||||
// 恢复默认基地/水电站(避免切换后为空)
|
|
||||||
if (rvcdOptions.value.length > 0) {
|
|
||||||
formData.rvcd = [rvcdOptions.value[0].value];
|
|
||||||
formData.yearBaseId = [rvcdOptions.value[0].value];
|
|
||||||
loadStationOptions(formData.rvcd);
|
|
||||||
}
|
|
||||||
loadLyOptions();
|
|
||||||
} else {
|
|
||||||
// 清理年统计字段
|
|
||||||
formData.yearStatContent = [];
|
|
||||||
formData.statYears = [];
|
|
||||||
formData.yearDimContent = [];
|
|
||||||
// 恢复月度统计默认值
|
|
||||||
formData.statMonths = getDefaultStatMonths();
|
|
||||||
if (dataFieldOption.value.length > 0) {
|
|
||||||
formData.monitorElements = dataFieldOption.value.map((item: any) => item.itemCode);
|
|
||||||
}
|
|
||||||
if (rvcdOptions.value.length > 0) {
|
|
||||||
formData.rvcd = [rvcdOptions.value[0].value];
|
|
||||||
loadStationOptions(formData.rvcd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
const getExstatus = async (taskId, exportParams) => {
|
const getExstatus = async (taskId, exportParams) => {
|
||||||
let res1: any = await qgcExportstatus({ taskId: taskId });
|
let res1: any = await qgcExportstatus({ taskId: taskId });
|
||||||
if (res1.status == 'PROCESSING') {
|
if (res1.status == 'PROCESSING') {
|
||||||
@ -454,12 +420,16 @@ const getExstatus = async (taskId, exportParams) => {
|
|||||||
getExstatus(taskId, exportParams);
|
getExstatus(taskId, exportParams);
|
||||||
}, 5000);
|
}, 5000);
|
||||||
} else if (res1.status == 'DONE') {
|
} else if (res1.status == 'DONE') {
|
||||||
const { data: blob } = await qgcExportdownload({ taskId: taskId, ...exportParams });
|
const blob: any = await qgcExportdownload({
|
||||||
|
taskId: taskId,
|
||||||
|
...exportParams
|
||||||
|
});
|
||||||
// 触发浏览器下载
|
// 触发浏览器下载
|
||||||
const url = window.URL.createObjectURL(blob);
|
const url = window.URL.createObjectURL(blob);
|
||||||
const a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
a.href = url;
|
a.href = url;
|
||||||
a.download = `export_${taskId}.zip`;
|
const matched = dataOptions.value.find((item:any) => item.itemCode == formData.timeDimension);
|
||||||
|
a.download =`${matched.dictName}.zip`;
|
||||||
a.click();
|
a.click();
|
||||||
window.URL.revokeObjectURL(url);
|
window.URL.revokeObjectURL(url);
|
||||||
exportLoading.value = false;
|
exportLoading.value = false;
|
||||||
@ -501,11 +471,8 @@ const handleExport = async () => {
|
|||||||
if (formData.yearDimContent.includes('stcd')) {
|
if (formData.yearDimContent.includes('stcd')) {
|
||||||
params.stcd = formData.stations.join(',');
|
params.stcd = formData.stations.join(',');
|
||||||
}
|
}
|
||||||
if (
|
if (formData.yearDimContent.includes('baseId')) {
|
||||||
formData.yearDimContent.includes('baseId') &&
|
params.baseId = formData.rvcd.join(',');
|
||||||
formData.yearBaseId.length > 0
|
|
||||||
) {
|
|
||||||
params.baseId = formData.yearBaseId.join(',');
|
|
||||||
}
|
}
|
||||||
if (formData.yearDimContent.includes('ly')) {
|
if (formData.yearDimContent.includes('ly')) {
|
||||||
params.hbRvcd = formData.lyRvcd.join(',');
|
params.hbRvcd = formData.lyRvcd.join(',');
|
||||||
@ -521,7 +488,7 @@ const handleExport = async () => {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
message.error('导出失败');
|
message.error('导出失败');
|
||||||
} finally {
|
} finally {
|
||||||
exportLoading.value = false;
|
// exportLoading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const dataFieldOption = ref([]);
|
const dataFieldOption = ref([]);
|
||||||
@ -557,4 +524,7 @@ onMounted(() => {
|
|||||||
z-index: 900;
|
z-index: 900;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
|
// .export-container{
|
||||||
|
|
||||||
|
// }
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
width="800px"
|
width="800px"
|
||||||
>
|
>
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
<img :src="previewImageUrl" style="width: 100%; height: 600px" />
|
<a-image :src="previewImageUrl" style="width: 100%; height: 600px" />
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
@ -106,7 +106,11 @@ import EditFishDataManualModal from './EditFishDataManualModal.vue';
|
|||||||
import EditFishDataAutoModal from './EditFishDataAutoModal.vue';
|
import EditFishDataAutoModal from './EditFishDataAutoModal.vue';
|
||||||
import DeleteConfirmModal from '@/views/conventionalHydropower/BasicData/DeleteConfirmModal.vue';
|
import DeleteConfirmModal from '@/views/conventionalHydropower/BasicData/DeleteConfirmModal.vue';
|
||||||
import OperationLogModal from '@/components/OperationLogModal/index.vue';
|
import OperationLogModal from '@/components/OperationLogModal/index.vue';
|
||||||
import { getFishReleaseMonitorList, deleteFpssRInfo, deleteFpssrlRInfo } from '@/api/DataQueryMenuModule';
|
import {
|
||||||
|
getFishReleaseMonitorList,
|
||||||
|
deleteFpssRInfo,
|
||||||
|
deleteFpssrlRInfo
|
||||||
|
} from '@/api/DataQueryMenuModule';
|
||||||
import { calcTableScrollY } from '@/utils/index';
|
import { calcTableScrollY } from '@/utils/index';
|
||||||
import { useDraggable } from '@/utils/drag';
|
import { useDraggable } from '@/utils/drag';
|
||||||
|
|
||||||
@ -699,4 +703,5 @@ onMounted(() => {
|
|||||||
position: relative;
|
position: relative;
|
||||||
z-index: 900;
|
z-index: 900;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}</style>
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@ -73,7 +73,7 @@ import dayjs from 'dayjs';
|
|||||||
import BasicSearch from '@/components/BasicSearch/index.vue';
|
import BasicSearch from '@/components/BasicSearch/index.vue';
|
||||||
import { DateSetting } from '@/utils/enumeration';
|
import { DateSetting } from '@/utils/enumeration';
|
||||||
import { useTimeScale } from '@/store/composables/useTimeScale';
|
import { useTimeScale } from '@/store/composables/useTimeScale';
|
||||||
import { getFishReleaseMonitorSectionList } from '@/api/DataQueryMenuModule';
|
import { overviewvmsstbprptGetKendoList } from '@/api/DataQueryMenuModule';
|
||||||
import { getDictItemsByCode } from '@/api/dict';
|
import { getDictItemsByCode } from '@/api/dict';
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
@ -211,7 +211,7 @@ const initCrossSectionList = params => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
crossSectionListLoading.value = true;
|
crossSectionListLoading.value = true;
|
||||||
return getFishReleaseMonitorSectionList({
|
return overviewvmsstbprptGetKendoList({
|
||||||
filter: {
|
filter: {
|
||||||
logic: 'and',
|
logic: 'and',
|
||||||
filters: filters
|
filters: filters
|
||||||
|
|||||||
@ -46,7 +46,7 @@
|
|||||||
width="800px"
|
width="800px"
|
||||||
>
|
>
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
<img :src="previewImageUrl" style="width: 100%; height: 600px" />
|
<a-image :src="previewImageUrl" style="width: 100%; height: 600px" />
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ VITE_APP_BASE_URL = 'http://localhost:8093'
|
|||||||
# 测试环境
|
# 测试环境
|
||||||
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
|
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
|
||||||
# 汤伟
|
# 汤伟
|
||||||
VITE_APP_BASE_URL = 'http://10.84.111.235:8093'
|
VITE_APP_BASE_URL = 'http://10.84.216.252:8093'
|
||||||
# 李林
|
# 李林
|
||||||
# VITE_APP_BASE_URL = 'http://10.84.111.25:8093'
|
# VITE_APP_BASE_URL = 'http://10.84.111.25:8093'
|
||||||
# VITE_APP_BASE_URL = 'http://10.84.111.211:8093'
|
# VITE_APP_BASE_URL = 'http://10.84.111.211:8093'
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="w-full h-full flex flex-col">
|
<div class="w-full h-full flex flex-col body_one" >
|
||||||
<!-- 搜索组件 -->
|
<!-- 搜索组件 -->
|
||||||
<ApprovalSearch
|
<ApprovalSearch
|
||||||
@export-btn="exportBtn"
|
@export-btn="exportBtn"
|
||||||
@ -346,5 +346,12 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
<style scoped lang="scss"></style>
|
.body_one {
|
||||||
|
padding: 20px 0px 0px 20px ;
|
||||||
|
position: relative;
|
||||||
|
z-index: 200;
|
||||||
|
pointer-events: all;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -97,7 +97,11 @@
|
|||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item label="数据来源" name="dataSource" v-if="formData.timeDimension === 'month'">
|
<a-form-item
|
||||||
|
label="数据来源"
|
||||||
|
name="dataSource"
|
||||||
|
v-if="formData.timeDimension === 'month'"
|
||||||
|
>
|
||||||
<a-radio-group v-model:value="formData.dataSource">
|
<a-radio-group v-model:value="formData.dataSource">
|
||||||
<a-radio value="true">日统计表</a-radio>
|
<a-radio value="true">日统计表</a-radio>
|
||||||
<a-radio value="false">小时表</a-radio>
|
<a-radio value="false">小时表</a-radio>
|
||||||
@ -361,7 +365,7 @@ const loadStationOptions = async (rvcds?: string[]) => {
|
|||||||
const initDone = ref(false);
|
const initDone = ref(false);
|
||||||
watch(
|
watch(
|
||||||
() => JidiSelectEventStore.jidiData,
|
() => JidiSelectEventStore.jidiData,
|
||||||
(val) => {
|
val => {
|
||||||
if (initDone.value) return;
|
if (initDone.value) return;
|
||||||
const data = (val || []).filter((item: any) => item.wbsCode !== 'all');
|
const data = (val || []).filter((item: any) => item.wbsCode !== 'all');
|
||||||
if (data.length === 0) return;
|
if (data.length === 0) return;
|
||||||
@ -403,6 +407,12 @@ const loadLyOptions = async () => {
|
|||||||
lyLoading.value = false;
|
lyLoading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const dataOptions = ref([
|
||||||
|
{ itemCode: 'month', dictName: '月度报表' },
|
||||||
|
{ itemCode: 'year', dictName: '年度报表' },
|
||||||
|
{ itemCode: 'day', dictName: '日度报表' },
|
||||||
|
{ itemCode: 'hour', dictName: '小时报表' }
|
||||||
|
]);
|
||||||
const getExstatus = async (taskId, exportParams) => {
|
const getExstatus = async (taskId, exportParams) => {
|
||||||
let res1: any = await qgcExportstatus({ taskId: taskId });
|
let res1: any = await qgcExportstatus({ taskId: taskId });
|
||||||
if (res1.status == 'PROCESSING') {
|
if (res1.status == 'PROCESSING') {
|
||||||
@ -410,12 +420,16 @@ const getExstatus = async (taskId, exportParams) => {
|
|||||||
getExstatus(taskId, exportParams);
|
getExstatus(taskId, exportParams);
|
||||||
}, 5000);
|
}, 5000);
|
||||||
} else if (res1.status == 'DONE') {
|
} else if (res1.status == 'DONE') {
|
||||||
const blob = await qgcExportdownload({ taskId: taskId, ...exportParams });
|
const blob: any = await qgcExportdownload({
|
||||||
|
taskId: taskId,
|
||||||
|
...exportParams
|
||||||
|
});
|
||||||
// 触发浏览器下载
|
// 触发浏览器下载
|
||||||
const url = window.URL.createObjectURL(blob);
|
const url = window.URL.createObjectURL(blob);
|
||||||
const a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
a.href = url;
|
a.href = url;
|
||||||
a.download = `export_${taskId}.zip`;
|
const matched = dataOptions.value.find((item:any) => item.itemCode == formData.timeDimension);
|
||||||
|
a.download =`${matched.dictName}.zip`;
|
||||||
a.click();
|
a.click();
|
||||||
window.URL.revokeObjectURL(url);
|
window.URL.revokeObjectURL(url);
|
||||||
exportLoading.value = false;
|
exportLoading.value = false;
|
||||||
@ -474,7 +488,7 @@ const handleExport = async () => {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
message.error('导出失败');
|
message.error('导出失败');
|
||||||
} finally {
|
} finally {
|
||||||
exportLoading.value = false;
|
// exportLoading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const dataFieldOption = ref([]);
|
const dataFieldOption = ref([]);
|
||||||
|
|||||||
@ -11,12 +11,6 @@
|
|||||||
<a-tab-pane tab="水质站" key="shuiZhiJianCe">
|
<a-tab-pane tab="水质站" key="shuiZhiJianCe">
|
||||||
<shuiZhiJianCe />
|
<shuiZhiJianCe />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="生态流量设防设施" key="shengTaiLiuLiang">
|
|
||||||
<shengTaiLiuLiang />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="低温水减缓措施" key="tempMit">
|
|
||||||
<tempMit />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="栖息地" key="qiXiDi">
|
<a-tab-pane tab="栖息地" key="qiXiDi">
|
||||||
<qiXiDi />
|
<qiXiDi />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@ -26,9 +20,6 @@
|
|||||||
<a-tab-pane tab="动物救助站" key="rescueStation">
|
<a-tab-pane tab="动物救助站" key="rescueStation">
|
||||||
<rescueStation />
|
<rescueStation />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="过鱼设施" key="guoYuSheShi">
|
|
||||||
<guoYuSheShi />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="水生生态调查断面" key="shuiShengShengTaiDiaoCha">
|
<a-tab-pane tab="水生生态调查断面" key="shuiShengShengTaiDiaoCha">
|
||||||
<shuiShengShengTaiDiaoCha />
|
<shuiShengShengTaiDiaoCha />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@ -41,27 +32,12 @@
|
|||||||
<a-tab-pane tab="其他陆生生态保护工程" key="terrEco">
|
<a-tab-pane tab="其他陆生生态保护工程" key="terrEco">
|
||||||
<terrEco />
|
<terrEco />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="视频站" key="shiPinJianKong">
|
|
||||||
<shiPinJianKong />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="鱼类资源" key="FishResource">
|
<a-tab-pane tab="鱼类资源" key="FishResource">
|
||||||
<FishResource />
|
<FishResource />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="鱼类增殖站" key="zengZhiFangLiu">
|
<a-tab-pane tab="鱼类增殖站" key="zengZhiFangLiu">
|
||||||
<zengZhiFangLiu />
|
<zengZhiFangLiu />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane tab="声纳及水下摄像头" key="sonarCam">
|
|
||||||
<sonarCam />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="AI智能监测装置" key="fishSurvey">
|
|
||||||
<fishSurvey />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="AI边缘计算盒子" key="aiBox">
|
|
||||||
<aiBox />
|
|
||||||
</a-tab-pane>
|
|
||||||
<a-tab-pane tab="批复文件" key="Approval">
|
|
||||||
<Approval />
|
|
||||||
</a-tab-pane>
|
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -69,23 +45,15 @@
|
|||||||
import BasicData from './components/conventionalHydropower/BasicData/index.vue';
|
import BasicData from './components/conventionalHydropower/BasicData/index.vue';
|
||||||
import shuiWenJianCe from './components/conventionalHydropower/shuiWenJianCe/index.vue';
|
import shuiWenJianCe from './components/conventionalHydropower/shuiWenJianCe/index.vue';
|
||||||
import shuiZhiJianCe from './components/conventionalHydropower/shuiZhiJianCe/index.vue';
|
import shuiZhiJianCe from './components/conventionalHydropower/shuiZhiJianCe/index.vue';
|
||||||
import shengTaiLiuLiang from './components/conventionalHydropower/shengTaiLiuLiang/index.vue';
|
|
||||||
import tempMit from './components/conventionalHydropower/tempMit/index.vue';
|
|
||||||
import qiXiDi from './components/conventionalHydropower/qiXiDi/index.vue';
|
import qiXiDi from './components/conventionalHydropower/qiXiDi/index.vue';
|
||||||
import zhenXIZhiWuYuan from './components/conventionalHydropower/zhenXIZhiWuYuan/index.vue';
|
import zhenXIZhiWuYuan from './components/conventionalHydropower/zhenXIZhiWuYuan/index.vue';
|
||||||
import rescueStation from './components/conventionalHydropower/rescueStation/index.vue';
|
import rescueStation from './components/conventionalHydropower/rescueStation/index.vue';
|
||||||
import guoYuSheShi from './components/conventionalHydropower/guoYuSheShi/index.vue';
|
|
||||||
import shuiShengShengTaiDiaoCha from './components/conventionalHydropower/shuiShengShengTaiDiaoCha/index.vue';
|
import shuiShengShengTaiDiaoCha from './components/conventionalHydropower/shuiShengShengTaiDiaoCha/index.vue';
|
||||||
import aquaEco from './components/conventionalHydropower/aquaEco/index.vue';
|
import aquaEco from './components/conventionalHydropower/aquaEco/index.vue';
|
||||||
import luShengShengTaiDiaoCha from './components/conventionalHydropower/luShengShengTaiDiaoCha/index.vue';
|
import luShengShengTaiDiaoCha from './components/conventionalHydropower/luShengShengTaiDiaoCha/index.vue';
|
||||||
import terrEco from './components/conventionalHydropower/terrEco/index.vue';
|
import terrEco from './components/conventionalHydropower/terrEco/index.vue';
|
||||||
import shiPinJianKong from './components/conventionalHydropower/shiPinJianKong/index.vue';
|
|
||||||
import FishResource from './components/conventionalHydropower/FishResource/index.vue';
|
import FishResource from './components/conventionalHydropower/FishResource/index.vue';
|
||||||
import zengZhiFangLiu from './components/conventionalHydropower/zengZhiFangLiu/index.vue';
|
import zengZhiFangLiu from './components/conventionalHydropower/zengZhiFangLiu/index.vue';
|
||||||
import sonarCam from './components/conventionalHydropower/sonarCam/index.vue';
|
|
||||||
import fishSurvey from './components/conventionalHydropower/fishSurvey/index.vue';
|
|
||||||
import aiBox from './components/conventionalHydropower/aiBox/index.vue';
|
|
||||||
import Approval from './components/conventionalHydropower/Approval/index.vue';
|
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
const activeTab = ref('BasicData');
|
const activeTab = ref('BasicData');
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
60
frontend/src/views/DataQueryMenuModule/monitoringDevices.vue
Normal file
60
frontend/src/views/DataQueryMenuModule/monitoringDevices.vue
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<template>
|
||||||
|
<div class="conventionalHydropower-page">
|
||||||
|
<!-- 1. 排序 -->
|
||||||
|
<a-tabs v-model:activeKey="activeTab" class="conventionalHydropower-tabs">
|
||||||
|
<a-tab-pane tab="生态流量泄放设施" key="shengTaiLiuLiang">
|
||||||
|
<shengTaiLiuLiang />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="低温水减缓设施" key="tempMit">
|
||||||
|
<tempMit />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="过鱼设施" key="guoYuSheShi">
|
||||||
|
<guoYuSheShi />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="视频站" key="shiPinJianKong">
|
||||||
|
<shiPinJianKong />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="声纳及水下摄像头" key="sonarCam">
|
||||||
|
<sonarCam />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="AI智能监测装置" key="fishSurvey">
|
||||||
|
<fishSurvey />
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane tab="AI边缘计算盒子" key="aiBox">
|
||||||
|
<aiBox />
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import shengTaiLiuLiang from './components/conventionalHydropower/shengTaiLiuLiang/index.vue';
|
||||||
|
import tempMit from './components/conventionalHydropower/tempMit/index.vue';
|
||||||
|
import guoYuSheShi from './components/conventionalHydropower/guoYuSheShi/index.vue';
|
||||||
|
import shiPinJianKong from './components/conventionalHydropower/shiPinJianKong/index.vue';
|
||||||
|
import sonarCam from './components/conventionalHydropower/sonarCam/index.vue';
|
||||||
|
import fishSurvey from './components/conventionalHydropower/fishSurvey/index.vue';
|
||||||
|
import aiBox from './components/conventionalHydropower/aiBox/index.vue';
|
||||||
|
import { ref } from 'vue';
|
||||||
|
const activeTab = ref('shengTaiLiuLiang');
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.conventionalHydropower-page {
|
||||||
|
position: relative;
|
||||||
|
z-index: 900;
|
||||||
|
pointer-events: all;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #ffffff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.conventionalHydropower-tabs {
|
||||||
|
padding-left: 20px;
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
height: calc(100% - 20px);
|
||||||
|
:deep(.ant-tabs-content) {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue
Block a user