|
@@ -20,17 +20,11 @@
|
|
|
<i-ep-setting />
|
|
|
参数设置
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- v-hasPerm="['sys:dataCollection:delete']"
|
|
|
- type="primary"
|
|
|
- >
|
|
|
+ <el-button @click="dataStorageVisible = true" type="primary">
|
|
|
<i-ep-Document />
|
|
|
存储设置
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- v-hasPerm="['sys:dataCollection:delete']"
|
|
|
- type="danger"
|
|
|
- >
|
|
|
+ <el-button @click="dataBackVisible = true" type="danger">
|
|
|
<i-ep-view />
|
|
|
数据回放
|
|
|
</el-button>
|
|
@@ -132,11 +126,19 @@
|
|
|
style="position: relative"
|
|
|
>
|
|
|
<div class="flex">
|
|
|
- <!-- <secondChart fileName="/outer+inner+ball_1_1800.csv" title="时域图" csvFlag='true' />
|
|
|
- <lineChart fileName="/实物频谱.xlsx" title="频域图" csvFlag='false' /> -->
|
|
|
+ <secondChart
|
|
|
+ fileName="/outer+inner+ball_1_1800.csv"
|
|
|
+ title="时域图"
|
|
|
+ csvFlag="true"
|
|
|
+ />
|
|
|
+ <lineChart
|
|
|
+ fileName="/实物频谱.xlsx"
|
|
|
+ title="频域图"
|
|
|
+ csvFlag="false"
|
|
|
+ />
|
|
|
</div>
|
|
|
<el-select
|
|
|
- style=" position: absolute; top: 0; right: 0;width: 150px"
|
|
|
+ style="position: absolute; top: 0; right: 0; width: 150px"
|
|
|
v-model="selectData.data"
|
|
|
placeholder="请选择轴承"
|
|
|
>
|
|
@@ -159,7 +161,12 @@
|
|
|
width="70%"
|
|
|
append-to-body
|
|
|
>
|
|
|
- <el-tabs type="border-card" v-model="dialogActiveName" class="demo-tabs">
|
|
|
+ <el-tabs
|
|
|
+ type="border-card"
|
|
|
+ v-model="dialogActiveName"
|
|
|
+ class="demo-tabs"
|
|
|
+ style="height: 530px"
|
|
|
+ >
|
|
|
<el-tab-pane label="通道设置" name="one">
|
|
|
<el-table size="small" border :data="tableData" style="width: 100%">
|
|
|
<el-table-column prop="siteName" align="center" label="站点名" />
|
|
@@ -194,10 +201,328 @@
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="采集和预处理算法设置" name="two">
|
|
|
- Task11
|
|
|
+ <div class="flex justify-center">
|
|
|
+ <el-form :model="form" label-width="auto" style="max-width: 600px">
|
|
|
+ <el-form-item label="站点选择:">
|
|
|
+ <el-select
|
|
|
+ v-model="form.region"
|
|
|
+ style="width: 200px"
|
|
|
+ placeholder="please select your zone"
|
|
|
+ >
|
|
|
+ <el-option label="站点1" value="one" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="bigBox">
|
|
|
+ <span class="title">采集设置</span>
|
|
|
+ <div class="flex">
|
|
|
+ <div style="width: 85%">
|
|
|
+ <el-form :model="form" :inline="true" label-width="auto">
|
|
|
+ <el-form-item label="DDA采样率:">
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date1"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="流速信号每帧传输点:"
|
|
|
+ style="margin-left: 100px"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date2"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="振动信号每帧传输点:">
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date1"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="温度信号每帧传输点:"
|
|
|
+ style="margin-left: 100px"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date2"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="压力信号每帧传输点:">
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date2"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ label="交流电信号每帧传输点:"
|
|
|
+ style="margin-left: 100px"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.date2"
|
|
|
+ :min="0"
|
|
|
+ :max="20000"
|
|
|
+ controls-position="right"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 50px">
|
|
|
+ <el-button color="#47487a">设置采集参数</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoBox">
|
|
|
+ <span class="title">设置预处理算法</span>
|
|
|
+ <div class="flex">
|
|
|
+ <div style="width: 85%">
|
|
|
+ <el-form :model="form" :inline="true" label-width="auto">
|
|
|
+ <el-form-item label="选择预处理算法:">
|
|
|
+ <el-select
|
|
|
+ v-model="form.delivery"
|
|
|
+ style="width: 200px"
|
|
|
+ placeholder="please select your zone"
|
|
|
+ >
|
|
|
+ <el-option label="FFT" value="one" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="选择通道:" style="margin-left: 100px">
|
|
|
+ <el-select
|
|
|
+ v-model="form.type"
|
|
|
+ style="width: 200px"
|
|
|
+ placeholder="please select your zone"
|
|
|
+ >
|
|
|
+ <el-option label="站点1" value="one" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button color="#47487a">设置预处理算法</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="数据存储设置"
|
|
|
+ v-model="dataStorageVisible"
|
|
|
+ width="50%"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :lg="16" :xs="24">
|
|
|
+ <div class="bigBox" style="height: 200px">
|
|
|
+ <span class="title">记录设置:</span>
|
|
|
+ <div>
|
|
|
+ <el-form
|
|
|
+ :model="dataStorageForm"
|
|
|
+ :inline="true"
|
|
|
+ label-width="auto"
|
|
|
+ >
|
|
|
+ <el-form-item label="文件路径:">
|
|
|
+ <div style="width: 500px" class="flex justify-between">
|
|
|
+ <el-input
|
|
|
+ v-model="dataStorageForm.file"
|
|
|
+ style="width: 350px"
|
|
|
+ />
|
|
|
+ <el-button
|
|
|
+ style="margin-right: 50px"
|
|
|
+ size="small"
|
|
|
+ plain
|
|
|
+ type="info"
|
|
|
+ >
|
|
|
+ <i-ep-MoreFilled />
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="选择通道:">
|
|
|
+ <div style="width: 520px" class="flex justify-between">
|
|
|
+ <el-input
|
|
|
+ v-model="dataStorageForm.info"
|
|
|
+ style="width: 350px"
|
|
|
+ />
|
|
|
+ <el-checkbox
|
|
|
+ v-model="dataStorageForm.info2"
|
|
|
+ label="添加信号信息"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="">
|
|
|
+ <div style="width: 530px" class="flex justify-between">
|
|
|
+ <el-input
|
|
|
+ v-model="dataStorageForm.csv"
|
|
|
+ style="width: 432px"
|
|
|
+ />
|
|
|
+ <el-checkbox
|
|
|
+ v-model="dataStorageForm.info2"
|
|
|
+ label="添加时间"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :lg="8" :xs="24">
|
|
|
+ <div class="bigBox" style="height: 200px">
|
|
|
+ <span class="title">存储模式:</span>
|
|
|
+ <div class="flex" style="flex-direction: column">
|
|
|
+ <el-checkbox label="存储有效值" size="large" />
|
|
|
+ <el-checkbox
|
|
|
+ v-model="dataStorageForm.model"
|
|
|
+ label="存储全部原始波形"
|
|
|
+ size="large"
|
|
|
+ />
|
|
|
+ <el-checkbox label="只存储振动信号" size="large" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" style="margin-top: 20px">
|
|
|
+ <el-col :lg="16" :xs="24">
|
|
|
+ <div class="bigBox" style="height: 240px">
|
|
|
+ <span class="title">磁盘状态:</span>
|
|
|
+ <pieChart />
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :lg="8" :xs="24">
|
|
|
+ <div class="bigBox" style="height: 130px; margin-top: 20px">
|
|
|
+ <span class="title">每个文件存储长度:</span>
|
|
|
+ <div>
|
|
|
+ <el-form
|
|
|
+ :model="dataStorageForm"
|
|
|
+ :inline="true"
|
|
|
+ label-position="top"
|
|
|
+ label-width="auto"
|
|
|
+ >
|
|
|
+ <el-form-item label="每个存储文件时间长度:">
|
|
|
+ <el-input-number
|
|
|
+ style="margin-left: 20px"
|
|
|
+ v-model="dataStorageForm.long"
|
|
|
+ :min="0"
|
|
|
+ :max="200"
|
|
|
+ controls-position="right"
|
|
|
+ />
|
|
|
+ <span style="margin-left: 10px">秒</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="margin: 50px 0 0 180px">
|
|
|
+ <el-button type="info">确认退出</el-button>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="数据回放"
|
|
|
+ v-model="dataBackVisible"
|
|
|
+ width="75%"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <el-row :gutter="20" class="mb-[12px]" style="margin-left: 10px">
|
|
|
+ <el-button type="success">
|
|
|
+ <i-ep-Document />
|
|
|
+ 加载文件
|
|
|
+ </el-button>
|
|
|
+ <el-button type="warning">
|
|
|
+ <i-ep-VideoPlay />
|
|
|
+ 开始
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary">
|
|
|
+ <i-ep-VideoPause />
|
|
|
+ 暂停
|
|
|
+ </el-button>
|
|
|
+ <el-button type="danger">
|
|
|
+ <i-ep-SwitchButton />
|
|
|
+ 停止
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#626aef">
|
|
|
+ <i-ep-ArrowRightBold />
|
|
|
+ 下一帧
|
|
|
+ </el-button>
|
|
|
+ <el-form :model="form" label-width="auto" style="margin: 0 30px">
|
|
|
+ <el-form-item label="通道选择:">
|
|
|
+ <el-select v-model="form.type" style="width: 100px">
|
|
|
+ <el-option label="1" value="one" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :lg="7" :xs="24" class="mb-[12px]">
|
|
|
+ <el-card shadow="never" style="padding-bottom: 100px">
|
|
|
+ <el-tree
|
|
|
+ style="max-width: 600px"
|
|
|
+ :data="data"
|
|
|
+ show-checkbox
|
|
|
+ :props="defaultProps"
|
|
|
+ node-key="id"
|
|
|
+ :default-expanded-keys="[1]"
|
|
|
+ :default-checked-keys="[2]"
|
|
|
+ />
|
|
|
+ </el-card>
|
|
|
+ <el-card
|
|
|
+ shadow="never"
|
|
|
+ style=" padding-bottom: 50px;margin-top: 15px"
|
|
|
+ >
|
|
|
+ <el-descriptions :column="1" border>
|
|
|
+ <el-descriptions-item label="数据长度">
|
|
|
+ 1200000
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="起始时间">
|
|
|
+ 2024/4/17 9:50:15
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="结束时间">
|
|
|
+ 2024/4/17 9:51:15
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="通道数">3</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="文件格式">csv</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ <el-col :lg="17" :xs="24" class="mb-[12px]">
|
|
|
+ <div style="position: relative">
|
|
|
+ <el-divider content-position="left">时域波形:</el-divider>
|
|
|
+ <secondChart
|
|
|
+ fileName="/outer+inner+ball_2_1800.csv"
|
|
|
+ title=""
|
|
|
+ csvFlag="false"
|
|
|
+ />
|
|
|
+ <el-select
|
|
|
+ size="small"
|
|
|
+ v-model="dataBackForm.tongdao"
|
|
|
+ style=" position: absolute; top: 22px; right: 65px;width: 60px"
|
|
|
+ >
|
|
|
+ <el-option label="A10" value="one" />
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-divider content-position="left">频域波形:</el-divider>
|
|
|
+ <secondChart fileName="/频谱1.xlsx" title="" csvFlag="false" />
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -212,6 +537,7 @@ import dataCollectionAPI, {
|
|
|
} from "@/api/sLongDemo/dataCollection";
|
|
|
import type { TabsPaneContext } from "element-plus";
|
|
|
import secondChart from "@/views/sLongDemo/dataCollection/secondChart.vue";
|
|
|
+import pieChart from "@/views/sLongDemo/dataCollection/pieChart.vue";
|
|
|
import lineChart from "@/views/sLongDemo/bearingManage/lineChart.vue";
|
|
|
|
|
|
const pageData = ref<dataCollectionPageVO[]>();
|
|
@@ -227,9 +553,29 @@ const dialog = reactive({
|
|
|
visible: false,
|
|
|
title: "",
|
|
|
});
|
|
|
+const dataStorageVisible = ref(false);
|
|
|
+const dataBackVisible = ref(false);
|
|
|
const selectData = {
|
|
|
data: "振动A10",
|
|
|
};
|
|
|
+const form = reactive({
|
|
|
+ region: "站点1",
|
|
|
+ date1: 20000,
|
|
|
+ date2: 0,
|
|
|
+ delivery: "FFT",
|
|
|
+ type: "1",
|
|
|
+});
|
|
|
+const dataStorageForm = reactive({
|
|
|
+ file: "D:\data",
|
|
|
+ info: "1",
|
|
|
+ info2: true,
|
|
|
+ csv: "outer+inner+ball_1_1800.csv",
|
|
|
+ model: true,
|
|
|
+ long: 60,
|
|
|
+});
|
|
|
+const dataBackForm = reactive({
|
|
|
+ tongdao: "A10",
|
|
|
+});
|
|
|
const tableData = [
|
|
|
{
|
|
|
siteName: "站点1",
|
|
@@ -304,6 +650,43 @@ const tableData = [
|
|
|
choose: false,
|
|
|
},
|
|
|
];
|
|
|
+const defaultProps = {
|
|
|
+ children: "children",
|
|
|
+ label: "label",
|
|
|
+};
|
|
|
+const data = [
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ label: "D:\data\实物试验\Outer+Inner+Ball",
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ label: "outer+inner+ball_1_1800.csv",
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ label: "outer+inner+ball_1_1950.csv",
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 4,
|
|
|
+ label: "outer+inner+ball_1_2100.csv",
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 5,
|
|
|
+ label: "outer+inner+ball_1_2250.csv",
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 6,
|
|
|
+ label: "outer+inner+ball_1_2400.csv",
|
|
|
+ children: [],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+];
|
|
|
const tableRowClassName = ({ row, rowIndex }: { row: any; rowIndex: any }) => {
|
|
|
if (rowIndex >= 3) {
|
|
|
return "info-row";
|
|
@@ -396,4 +779,30 @@ onMounted(() => {
|
|
|
::v-deep .el-table .info-row .cell {
|
|
|
color: #ccc;
|
|
|
}
|
|
|
+
|
|
|
+.bigBox {
|
|
|
+ position: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: 220px;
|
|
|
+ padding: 30px 20px;
|
|
|
+ border: 1px solid #dddcdc;
|
|
|
+}
|
|
|
+
|
|
|
+.twoBox {
|
|
|
+ position: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: 100px;
|
|
|
+ padding: 30px 20px;
|
|
|
+ margin-top: 30px;
|
|
|
+ border: 1px solid #dddcdc;
|
|
|
+}
|
|
|
+
|
|
|
+.title {
|
|
|
+ position: absolute;
|
|
|
+ top: -15px;
|
|
|
+ left: 10px;
|
|
|
+ padding: 5px;
|
|
|
+ font-weight: 700;
|
|
|
+ background-color: #fff;
|
|
|
+}
|
|
|
</style>
|