合并代码

This commit is contained in:
stt
2025-10-11 09:54:24 +08:00
parent c972ad6fb8
commit e4467c662b
13 changed files with 144 additions and 125 deletions

View File

@@ -23,7 +23,7 @@ window.addEventListener("message", (event) => {
});
// setTimeout(() => {
// console.log("🚀 ~ import.meta.env.VITE_NAME:", import.meta.env.VITE_NAME)
console.log("🚀 ~ import.meta.env.VITE_NAME:", import.meta.env.VITE_NAME)
if (import.meta.env.VITE_NAME == 'wuxi') {
store.dispatch("loginAction", {
username: "cdf",

View File

@@ -45,7 +45,7 @@ import {
} from "@element-plus/icons-vue";
import { getTerminalTreeForFive } from "@/api/manage_wx";
import { useStore } from "vuex";
import { ElMessage } from "element-plus";
const store = useStore();
const filterText = ref("");

View File

@@ -67,7 +67,6 @@ import {
Location,
Guide,
} from "@element-plus/icons-vue";
import { ElMessage } from "element-plus";
import { getTerminalTreeForFive } from "@/api/manage_wx";
import { useStore } from "vuex";
const totalId = ref('');

View File

@@ -1,5 +1,4 @@
import axios from "axios";
import { ElMessage } from "element-plus";
import type { AxiosInstance, AxiosRequestConfig } from "axios";
class HttpRequest {

View File

@@ -136,7 +136,7 @@ import type { UploadInstance } from "element-plus";
import { Search, Plus, Upload, Download } from "@element-plus/icons-vue";
import { useStore } from "vuex";
import * as XLSX from "xlsx";
import { ElMessage , ElMessageBox} from "element-plus";
import {
userDataList,
uploadUserData,

View File

@@ -320,7 +320,7 @@ import {
Download,
} from "@element-plus/icons-vue";
import * as XLSX from "xlsx";
import { ElMessage , ElMessageBox} from "element-plus";
// 定义 emit
const emit = defineEmits(["aggregation-success"]);

View File

@@ -125,7 +125,6 @@ import {
getDynamicData,
getResponsibilityData,
} from "@/api/manage_wx";
import { ElMessage } from "element-plus";
const emit = defineEmits(["setTitle"]); // 打开弹窗
const visible = ref(false);
const size = ref(0);

View File

@@ -307,7 +307,7 @@ import {
nextTick,
onBeforeUnmount,
} from "vue";
import { ElMessage,ElMessageBox } from "element-plus";
import { ElMessageBox } from "element-plus";
import {
eventSource,
eventAggregation,
@@ -322,6 +322,7 @@ import {
hasUpEventList,
} from "@/api/manage_wx/index";
import { HelpFilled, Aim, Memo } from "@element-plus/icons-vue";
const flag = ref(0); // 0 for 暂降, 1 for 谐波, 2 for 谐波放大
const time = ref(0); // 0 for 周, 1 for 月
const { proxy }: any = getCurrentInstance();

View File

@@ -128,7 +128,6 @@ import {
getDynamicData,
getResponsibilityData,
} from "@/api/manage_wx";
import { ElMessage } from "element-plus";
const visible = ref(false);
const size = ref(0);
const dotList: any = ref({});

View File

@@ -272,7 +272,6 @@ import {
getResponsibilityData,
getTerminalTreeForFive,
} from "@/api/manage_wx";
import { ElMessage } from "element-plus";
import { useStore } from "vuex";
const store = useStore();

View File

@@ -1,9 +1,9 @@
<template>
<!--短信查询-->
<el-dialog :close-on-click-modal="false" draggable v-model="machineVisible" :title="title" width="500">
<el-dialog :close-on-click-modal="false" draggable v-model="machineVisible" :title="title" width="500">
<div>
<div class="smsConfig">
<el-form :model="form" inline label-width="auto" class=" ml30 mt10">
<div style="height: 360px" class="smsConfig">
<el-form :model="form" inline label-width="auto" class="mb10 ml30 mt20">
<el-form-item label="屏幕通知">
<el-radio-group v-model="form.screenNotic" size="small">
<el-radio-button label="关闭" :value="0" />
@@ -39,30 +39,49 @@
</el-checkbox-group>
</el-form-item>
<el-form-item label="残余电压告警阈值">
<el-input-number v-model="form.eventValue" :min="0" :max="0.9" :precision="1" :step="0.1"
@change="(e) => (e == null ? (form.eventValue = 0.1) : null)" style="width: 200px" />
<el-input-number
v-model="form.eventValue"
:min="0"
:max="0.9"
:precision="1"
:step="0.1"
@change="(e) => (e == null ? (form.eventValue = 0.1) : null)"
style="width: 200px"
/>
</el-form-item>
<el-form-item label="持续时间告警阈值">
<el-input-number v-model="form.eventDuration" :min="0" :max="1000000" :precision="1" :step="1"
@change="(e) => (e == null ? (form.eventDuration = 1) : null)" style="width: 200px">
<el-input-number
v-model="form.eventDuration"
:min="0"
:max="1000000"
:precision="1"
:step="1"
@change="(e) => (e == null ? (form.eventDuration = 1) : null)"
style="width: 200px"
>
<template #suffix>
<span>ms</span>
</template></el-input-number>
</template></el-input-number
>
</el-form-item>
</el-form>
<!-- <el-divider />
<el-divider />
<div style="text-align: center">
<el-button :icon="Close" @click="setUp" class="mt10" size="small">取消</el-button>
<el-button type="primary" :icon="Tools" @click="setUp" class="mt10" size="small">设置</el-button>
</div> -->
<el-button
type="primary"
:icon="Tools"
@click="setUp"
class="mt10"
size="small"
>设置</el-button
>
<el-button :icon="Close" @click="setUp" class="mt10" size="small"
>取消</el-button
>
</div>
</div>
</div>
<template #footer>
<el-button :icon="Close" @click="setUp" size="small">取消</el-button>
<el-button type="primary" :icon="Tools" @click="setUp" size="small">设置</el-button>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
@@ -124,11 +143,9 @@ defineExpose({ open });
</script>
<style lang="scss" scoped>
@use "@/assets/scss/index.scss";
.smsConfig {
color: #fff;
}
.title {
background-color: #0a73ff40;
height: 30px;
@@ -138,28 +155,22 @@ defineExpose({ open });
margin-bottom: 10px;
border-left: 10px solid var(--el-color-primary);
}
:deep(.el-card__body) {
padding: 10px !important;
}
:deep(.el-select) {
min-width: 80px !important;
}
.checkbox {
display: flex;
justify-content: space-between;
}
:deep(.el-form-item__label, ) {
color: #fff;
}
:deep(.el-checkbox__label) {
color: #fff;
}
:deep(.el-form-item__label, ) {
color: #fff;
}

View File

@@ -182,44 +182,44 @@
<!-- 导出 -->
<el-dialog :close-on-click-modal="false" draggable v-model="exportVisible" title="导出" width="500"
@close="exportClose">
<div class="mb10 ml20 mt10">
<el-radio-group v-model="exportRadio" size="small">
<el-radio-button label="默认导出" value="0" />
<el-radio-button label="按时间导出" value="1" />
<el-radio-button label="按时间点导出" value="2" />
</el-radio-group>
<el-radio-group v-model="exportRadio" size="small">
<el-radio-button label="默认导出" value="0" />
<el-radio-button label="按时间段导出" value="1" />
<el-radio-button label="按时间导出" value="2" />
</el-radio-group>
<div class="mt10">
<div class="mt10" v-if="exportRadio == '1'">
<el-form label-width="auto">
<!-- <el-form-item label="重要敏感用户:" v-if="exportRadio != '0'">
<el-tree-select v-model="treeData" :data="treeList" multiple :render-after-expand="false" show-checkbox size="small"
style="width: 200px" />
</el-form-item> -->
<el-form-item label="时间段:" v-if="exportRadio == '1'">
<el-date-picker v-model="timePeriod" type="datetimerange" range-separator="至" start-placeholder="开始时间"
size="small" end-placeholder="结束时间" :disabled-date="disabledDate" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item label="时间点:" v-if="exportRadio == '2'">
<el-date-picker v-model="timePoint" type="datetime" placeholder="请选择时间" :disabled-date="disabledDate"
size="small" style="width: 200px;" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item label="聚合精度(秒):" v-if="exportRadio == '2'">
<el-input-number v-model="timeInterval" :min="0" :step="1" size="small" style="width: 200px;" />
</el-form-item>
</el-form>
</div>
<el-form-item label="时间段:" style="width: 400px;">
<el-date-picker v-model="timePeriod" type="datetimerange" range-separator="至" start-placeholder="开始时间"
size="small" end-placeholder="结束时间" :disabled-date="disabledDate" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
</div>
<div class="mt10" v-if="exportRadio == '2'">
<el-form label-width="auto">
<el-form-item label="时间点:">
<el-date-picker v-model="timePoint" type="datetime" placeholder="请选择时间" :disabled-date="disabledDate"
size="small" style="width: 200px;" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item label="聚合精度(秒):">
<el-input-number v-model="timeInterval" :min="0" :step="1" size="small" style="width: 200px;" />
</el-form-item>
</el-form>
</div>
<template #footer>
<div class="dialog-footer">
<el-button size="small" class="mr10" @click="exportClose" :icon="Close">取消</el-button>
<el-button type="primary" :icon="Check" size="small"
@click="exportRadio == '0' ? exportTable() : exportTable2()" :loading="exportLoading">
<el-button size="small" class="mr10" @click="exportClose">取消</el-button>
<el-button type="primary" size="small" @click="exportRadio == '0' ? exportTable() : exportTable2()"
:loading="exportLoading">
确定
</el-button>
</div>
@@ -233,7 +233,7 @@ import { onMounted, ref, getCurrentInstance, reactive, computed } from "vue";
import { ElMessage } from "element-plus";
import { useStore } from "vuex";
import waveForm from "@/components/BX/waveForm.vue";
import { DArrowRight, Search, RefreshLeft, Download, Close, Check } from "@element-plus/icons-vue";
import { DArrowRight, Search, RefreshLeft, Download } from "@element-plus/icons-vue";
import { getDateRange } from "@/utils/index"; //引入封装好的
import * as XLSX from "xlsx";
const store = useStore();
@@ -249,8 +249,6 @@ const dropList = ref([]);
const waveFormRef = ref();
const detailList: any = ref({});
const dataRow: any = ref({});
const treeData: any = ref([]);
const treeList: any = ref([]);
const trendVisible = ref(false);
const form: any = ref({
eventIndex: "", //id
@@ -534,39 +532,30 @@ const exportTable2 = async () => {
searchBeginTime: searchBeginTime,
searchEndTime: searchEndTime,
}).then((res) => {
let data = res.data.map((item) => {
return [
item.timeid + '.' + item.ms,
item.gdName,
item.bdname,
item.busName,
item.busName,
Math.floor(item.eventvalue * 10000) / 100 + '%',
Math.floor(item.persisttime * 1000) / 1000 + 's',
item.objName || "/",
];
});
list = [...columnExpor, ...data];
// 创建工作表
const worksheet = XLSX.utils.aoa_to_sheet(list);
if (res.data.length == 0) {
ElMessage({
message: "暂无数据!",
type: "warning",
});
} else {
let data = res.data.map((item) => {
return [
item.timeid + '.' + item.ms,
item.gdName,
item.bdname,
item.busName,
item.busVoltageLevel,
Math.floor(item.eventvalue * 10000) / 100 + '%',
Math.floor(item.persisttime * 1000) / 1000 + 's',
item.objName || "/",
];
});
list = [...columnExpor, ...data];
// 创建工作表
const worksheet = XLSX.utils.aoa_to_sheet(list);
worksheet["!cols"] = list.map((col) => ({ wch: 20 }));
worksheet["!cols"] = list.map((col) => ({ wch: 20 }));
// 创建工作簿
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, '暂降事件列表');
// 写出文件
XLSX.writeFile(workbook, '暂降事件列表' + ".xlsx");
}
// 创建工作簿
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, '暂降事件列表');
// 写出文件
XLSX.writeFile(workbook, '暂降事件列表' + ".xlsx");
});
exportLoading.value = false;
exportClose()

View File

@@ -1,32 +1,64 @@
<!--报表导出-->
<template>
<el-dialog :close-on-click-modal="false" draggable v-model="machineVisible" :title="title" width="500">
<el-dialog
:close-on-click-modal="false"
draggable
v-model="machineVisible"
:title="title"
width="500"
>
<div>
<div class="smsConfig">
<el-form :model="form" inline label-width="auto" class=" ml30 mt10">
<div style="height: 160px" class="smsConfig">
<el-form :model="form" inline label-width="auto" class="mb10 ml30 mt20">
<el-form-item label="时间">
<el-date-picker v-model="timeValue" size="small" type="daterange" :disabled-date="isFutureDate"
style="width: 250px; margin-right: 10px" unlink-panels :clearable="false" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" />
<el-date-picker
v-model="timeValue"
size="small"
type="daterange"
:disabled-date="isFutureDate"
style="width: 250px; margin-right: 10px"
unlink-panels
:clearable="false"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</el-form-item>
<el-form-item label="部门集合">
<el-select v-model="form.deptList" placeholder="请选择部门集合" style="width: 250px" size="small" multiple>
<el-option v-for="item in deptLists" :key="item.deptsIndex" :label="item.deptsname"
:value="item.deptsIndex" />
<el-select
v-model="form.deptList"
placeholder="请选择"
style="width: 250px"
size="small"
multiple
>
<el-option
v-for="item in deptLists"
:key="item.deptsIndex"
:label="item.deptsname"
:value="item.deptsIndex"
/>
</el-select>
</el-form-item>
</el-form>
<!-- <el-divider />
<div style="text-align: center">
</div> -->
<el-divider />
<div style="text-align: center">
<el-button
type="primary"
:icon="Check"
@click="save"
class="mt10"
size="small"
>确定</el-button
>
<el-button :icon="Close" @click="setUp" class="mt10" size="small"
>取消</el-button
>
</div>
</div>
</div>
<template #footer>
<el-button :icon="Close" @click="setUp" size="small">取消</el-button>
<el-button type="primary" :icon="Check" @click="save" size="small">确定</el-button>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
@@ -69,15 +101,6 @@ const init = () => {
};
const save = () => {
if (!timeValue.value[0]) {
ElMessage.warning("请选择时间!");
return;
}
if (form.value.deptList.length == 0) {
ElMessage.warning("请选择部门集合!");
return;
}
(form.value.deptId = store.state.deptId),
(form.value.searchBeginTime = timeValue.value[0]),
(form.value.searchEndTime = timeValue.value[1]