2024-08-23 13:19:20 +08:00
|
|
|
|
<template>
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<div class="table_info">
|
2024-11-29 13:45:48 +08:00
|
|
|
|
<!-- :request-api="getTableList" -->
|
2024-08-27 18:37:46 +08:00
|
|
|
|
<ProTable
|
|
|
|
|
|
ref="proTable"
|
|
|
|
|
|
:columns="columns"
|
|
|
|
|
|
@drag-sort="sortTable"
|
2024-12-04 21:36:12 +08:00
|
|
|
|
:default-sort="{ prop: 'check_State', order: 'ascending' }"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
:stripe="true"
|
2024-11-25 21:11:10 +08:00
|
|
|
|
:pagination = "false"
|
2024-11-21 23:02:43 +08:00
|
|
|
|
:key="tableKey"
|
2024-11-25 21:11:10 +08:00
|
|
|
|
@selection-change='handleSelectionChange'
|
2024-12-16 15:25:30 +08:00
|
|
|
|
:request-api='getTableList'
|
2024-12-26 09:28:19 +08:00
|
|
|
|
:toolButton = 'false'
|
2024-08-27 18:37:46 +08:00
|
|
|
|
>
|
2024-12-02 14:11:09 +08:00
|
|
|
|
<!-- :height="tableHeight" -->
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<!-- 表格 header 按钮 -->
|
2024-12-16 16:33:18 +08:00
|
|
|
|
<template #tableHeader="">
|
2024-12-02 14:11:09 +08:00
|
|
|
|
<el-form :model="form" :inline="true">
|
2024-12-04 21:36:12 +08:00
|
|
|
|
<el-form-item label="关键字">
|
2025-01-06 09:21:24 +08:00
|
|
|
|
<el-input v-model="form.search" placeholder="请输入设备名称" clearable></el-input>
|
2024-11-25 21:11:10 +08:00
|
|
|
|
</el-form-item>
|
2024-12-09 16:17:04 +08:00
|
|
|
|
<el-form-item label="检测状态" v-if="form.activeTabs != 3 && form.activeTabs != 4 && form.activeTabs != 5">
|
2024-11-07 20:41:32 +08:00
|
|
|
|
<el-select v-model="form.checkStatus" clearable>
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<el-option
|
2024-12-17 11:34:54 +08:00
|
|
|
|
v-for="(item, index) in checkStatus"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
:label="item.label"
|
2024-12-17 11:34:54 +08:00
|
|
|
|
:value="item.id"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
:key="index"
|
2024-12-04 21:36:12 +08:00
|
|
|
|
v-show="shouldShowOption(item)"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
2024-11-29 13:45:48 +08:00
|
|
|
|
<el-form-item label="检测结果">
|
|
|
|
|
|
<el-select v-model="form.checkResult" clearable>
|
|
|
|
|
|
<el-option
|
2024-12-17 11:34:54 +08:00
|
|
|
|
v-for="(item, index) in checkResult"
|
2024-11-29 13:45:48 +08:00
|
|
|
|
:label="item.label"
|
2024-12-17 11:34:54 +08:00
|
|
|
|
:value="item.id"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
|
2024-11-29 13:45:48 +08:00
|
|
|
|
:key="index"
|
2024-12-04 21:36:12 +08:00
|
|
|
|
v-show="shouldShowOption(item)"
|
2024-11-29 13:45:48 +08:00
|
|
|
|
></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
2024-12-09 16:17:04 +08:00
|
|
|
|
<el-form-item label="报告状态" v-if="form.activeTabs != 0">
|
2024-11-07 20:41:32 +08:00
|
|
|
|
<el-select v-model="form.checkReportStatus" clearable>
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<el-option
|
2024-12-17 11:34:54 +08:00
|
|
|
|
v-for="(item, index) in checkReportStatus"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
:label="item.label"
|
2024-12-17 11:34:54 +08:00
|
|
|
|
:value="item.id"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
:key="index"
|
2024-12-04 21:36:12 +08:00
|
|
|
|
v-show="shouldShowOption(item)"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-button type="primary" :icon="Search" @click="handleSearch"
|
|
|
|
|
|
>查询</el-button
|
|
|
|
|
|
>
|
2024-11-29 13:45:48 +08:00
|
|
|
|
<el-button :icon="Delete" @click="handleRefresh"
|
|
|
|
|
|
>重置</el-button
|
|
|
|
|
|
>
|
2024-12-04 21:36:12 +08:00
|
|
|
|
<!-- :disabled='!scope.isSelected' -->
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
2024-11-18 22:04:59 +08:00
|
|
|
|
:icon="Clock"
|
2024-11-20 11:22:05 +08:00
|
|
|
|
@click="handleTest('手动检测')"
|
2024-09-02 16:10:33 +08:00
|
|
|
|
v-if="form.activeTabs === 0"
|
2024-11-15 09:34:43 +08:00
|
|
|
|
>手动检测</el-button
|
2024-09-02 16:10:33 +08:00
|
|
|
|
>
|
2024-12-04 21:36:12 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- :disabled='!scope.isSelected' -->
|
2024-09-02 16:10:33 +08:00
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
2024-11-18 22:04:59 +08:00
|
|
|
|
:icon="ChatLineRound"
|
2024-11-20 11:22:05 +08:00
|
|
|
|
@click="handleTest('自动检测')"
|
2024-11-13 18:58:53 +08:00
|
|
|
|
v-if="form.activeTabs === 0"
|
2024-11-15 09:34:43 +08:00
|
|
|
|
>自动检测</el-button
|
2024-09-02 16:10:33 +08:00
|
|
|
|
>
|
2024-11-20 11:22:05 +08:00
|
|
|
|
<el-button type="primary" :icon="ChatLineSquare" @click="handleTest('不合格项复检')" v-if="form.activeTabs === 2"
|
2024-11-07 20:41:32 +08:00
|
|
|
|
>不合格项复检</el-button
|
|
|
|
|
|
>
|
2024-11-20 11:22:05 +08:00
|
|
|
|
<el-button type="primary" :icon="ChatDotSquare" @click="handleTest('全部复检')" v-if="form.activeTabs === 2"
|
2024-11-07 20:41:32 +08:00
|
|
|
|
>全部复检</el-button
|
2024-09-02 16:10:33 +08:00
|
|
|
|
>
|
2024-11-07 20:41:32 +08:00
|
|
|
|
|
2024-12-04 21:36:12 +08:00
|
|
|
|
<!-- :disabled='!scope.isSelected' -->
|
|
|
|
|
|
<el-button type="primary" :icon="Download" @click="handleTest('批量下载')" v-if="form.activeTabs === 3"
|
|
|
|
|
|
>报告下载</el-button
|
2024-11-29 13:45:48 +08:00
|
|
|
|
>
|
2024-12-04 21:36:12 +08:00
|
|
|
|
<!-- :disabled='!scope.isSelected' -->
|
2025-01-13 21:06:24 +08:00
|
|
|
|
<!-- <el-button type="primary" :icon="Postcard" @click="handleTest('批量生成')" v-if="form.activeTabs === 3"
|
2024-12-04 21:36:12 +08:00
|
|
|
|
>报告生成</el-button
|
2025-01-13 21:06:24 +08:00
|
|
|
|
> -->
|
2024-12-04 21:36:12 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- :disabled="!scope.isSelected || scope.selectedList.filter((item) => item.check_State === '检测完成').length === 0" -->
|
2024-12-09 16:17:04 +08:00
|
|
|
|
<el-button type="primary" :icon="Notebook" @click="handleTest('批量归档')" v-if="form.activeTabs === 4"
|
|
|
|
|
|
>归档</el-button>
|
2024-12-11 17:46:59 +08:00
|
|
|
|
<!-- <el-button type="primary" :icon="CirclePlus" @click="addDevice('设备新增')" v-if="form.activeTabs === 0"
|
|
|
|
|
|
>设备新增</el-button> -->
|
2024-12-20 10:19:58 +08:00
|
|
|
|
|
2025-01-09 13:56:56 +08:00
|
|
|
|
<el-button type="primary" v-auth.role="'channelsTest'" :icon="Odometer" @click="handleTest('系数校准')" v-if="form.activeTabs === 0"
|
2024-12-18 15:49:29 +08:00
|
|
|
|
>系数校准</el-button>
|
2024-09-02 16:10:33 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</template>
|
2024-08-27 18:37:46 +08:00
|
|
|
|
<!-- 表格操作 -->
|
2024-11-12 20:35:12 +08:00
|
|
|
|
<template #operation="scope">
|
2024-08-27 18:37:46 +08:00
|
|
|
|
<el-button
|
2024-11-12 20:35:12 +08:00
|
|
|
|
type="primary"
|
2024-08-27 18:37:46 +08:00
|
|
|
|
link
|
|
|
|
|
|
:icon="View"
|
2024-11-14 11:45:25 +08:00
|
|
|
|
@click="openDrawer('查看', scope.row)"
|
2024-11-22 10:46:10 +08:00
|
|
|
|
v-if="form.activeTabs === 3 && form.activeChildTabs === 1"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>查看</el-button>
|
2024-12-11 17:46:59 +08:00
|
|
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
link
|
|
|
|
|
|
:icon="Download"
|
|
|
|
|
|
@click="openDrawer('报告下载', scope.row)"
|
2024-12-18 15:49:29 +08:00
|
|
|
|
v-if="form.activeTabs === 3 && form.activeChildTabs === 0 && scope.row.reportState === 1"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>报告下载</el-button>
|
2024-12-11 17:46:59 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- <div class='cn-render-buttons' v-if="form.activeTabs === 3 && form.activeChildTabs === 0">
|
2024-11-14 11:45:25 +08:00
|
|
|
|
<el-dropdown trigger='click'>
|
2024-11-29 13:45:48 +08:00
|
|
|
|
<el-button link type='primary' :icon="Download" class='table-operate'>
|
2024-12-02 14:11:09 +08:00
|
|
|
|
<div class='table-operate-text'>报告下载</div>
|
2024-11-14 11:45:25 +08:00
|
|
|
|
</el-button>
|
|
|
|
|
|
<template #dropdown>
|
|
|
|
|
|
<el-dropdown-menu>
|
|
|
|
|
|
<el-dropdown-item>Q/GDW 10650.2-2021 报告</el-dropdown-item>
|
|
|
|
|
|
<el-dropdown-item>Q/GDW 1650.2-2016 报告</el-dropdown-item>
|
|
|
|
|
|
<el-dropdown-item>GBT 19862-2016 报告</el-dropdown-item>
|
|
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-dropdown>
|
2024-12-11 17:46:59 +08:00
|
|
|
|
</div> -->
|
2024-11-14 11:45:25 +08:00
|
|
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
link
|
2024-11-18 22:04:59 +08:00
|
|
|
|
:icon="Postcard"
|
2024-11-14 11:45:25 +08:00
|
|
|
|
@click="openDrawer('生成', scope.row)"
|
2024-11-12 20:35:12 +08:00
|
|
|
|
v-if="form.activeTabs === 3"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>报告生成</el-button>
|
2024-11-20 21:30:05 +08:00
|
|
|
|
<!-- <el-button
|
2024-11-15 09:34:43 +08:00
|
|
|
|
type="primary"
|
|
|
|
|
|
link
|
|
|
|
|
|
:icon="View"
|
|
|
|
|
|
@click="openDrawer('数据查看', scope.row)"
|
|
|
|
|
|
v-if="form.activeTabs === 4"
|
|
|
|
|
|
>数据查看</el-button
|
2024-11-20 21:30:05 +08:00
|
|
|
|
> -->
|
2024-11-15 09:34:43 +08:00
|
|
|
|
<el-button
|
2024-12-04 21:36:12 +08:00
|
|
|
|
:type="scope.row.check_State === '检测完成' ? 'primary' : 'info'"
|
2024-11-14 11:45:25 +08:00
|
|
|
|
link
|
2024-11-18 22:04:59 +08:00
|
|
|
|
:icon="Notebook"
|
2024-11-14 11:45:25 +08:00
|
|
|
|
@click="openDrawer('归档', scope.row)"
|
2024-12-09 16:17:04 +08:00
|
|
|
|
v-if="form.activeTabs === 4"
|
2024-12-17 13:57:45 +08:00
|
|
|
|
:disabled = "scope.row.checkState != 2"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>归档</el-button>
|
|
|
|
|
|
|
2024-08-27 18:37:46 +08:00
|
|
|
|
<el-button
|
2024-11-12 20:35:12 +08:00
|
|
|
|
type="primary"
|
2024-08-27 18:37:46 +08:00
|
|
|
|
link
|
2024-11-19 19:34:00 +08:00
|
|
|
|
:icon="PieChart"
|
|
|
|
|
|
@click="openDrawer('检测数据查询', scope.row)"
|
2024-11-12 20:35:12 +08:00
|
|
|
|
v-if="form.activeTabs === 5"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>检测数据查询</el-button>
|
|
|
|
|
|
|
2024-11-19 19:34:00 +08:00
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
link
|
|
|
|
|
|
:icon="Switch"
|
|
|
|
|
|
@click="openDrawer('误差体系更换', scope.row)"
|
2025-01-06 09:21:24 +08:00
|
|
|
|
v-if="form.activeTabs === 5"
|
2024-12-20 10:19:58 +08:00
|
|
|
|
>误差体系更换</el-button>
|
2024-12-11 17:46:59 +08:00
|
|
|
|
|
2025-01-06 09:21:24 +08:00
|
|
|
|
<div class='cn-render-buttons' v-if="form.activeTabs === 5 ">
|
2024-12-11 17:46:59 +08:00
|
|
|
|
<el-dropdown trigger='click'>
|
|
|
|
|
|
<el-button link type='primary' :icon="Download" class='table-operate'>
|
|
|
|
|
|
<div class='table-operate-text'>报告下载</div>
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<template #dropdown>
|
|
|
|
|
|
<el-dropdown-menu>
|
|
|
|
|
|
<!-- <el-dropdown-item>Q/GDW 10650.2-2021 报告</el-dropdown-item> -->
|
|
|
|
|
|
<el-dropdown-item>Q/GDW 1650.2-2016 报告</el-dropdown-item>
|
|
|
|
|
|
<el-dropdown-item>GBT 19862-2016 报告</el-dropdown-item>
|
|
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-dropdown>
|
|
|
|
|
|
</div>
|
2024-11-12 20:35:12 +08:00
|
|
|
|
<!-- <el-button
|
2024-10-31 14:53:29 +08:00
|
|
|
|
dictType="primary"
|
2024-08-27 18:37:46 +08:00
|
|
|
|
link
|
|
|
|
|
|
:icon="Delete"
|
|
|
|
|
|
@click="deleteAccount(scope.row)"
|
|
|
|
|
|
>删除</el-button
|
2024-11-12 20:35:12 +08:00
|
|
|
|
> -->
|
|
|
|
|
|
</template>
|
2024-08-27 18:37:46 +08:00
|
|
|
|
</ProTable>
|
2024-11-18 22:04:59 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- 检测过程对话框 -->
|
2024-12-20 10:19:58 +08:00
|
|
|
|
<!-- <testPopup
|
2024-11-18 22:04:59 +08:00
|
|
|
|
:visible="dialogFormVisible"
|
|
|
|
|
|
:formData="dialogForm"
|
|
|
|
|
|
:dialogTitle="dialogTitle"
|
|
|
|
|
|
@update:visible="dialogFormVisible = $event"
|
2024-12-18 15:49:29 +08:00
|
|
|
|
/> -->
|
2025-01-13 21:06:24 +08:00
|
|
|
|
<TestPopup ref="testPopup" @quitClicked="handleQuitClicked" ></TestPopup>
|
2024-11-19 19:34:00 +08:00
|
|
|
|
|
|
|
|
|
|
<reportPopup
|
|
|
|
|
|
:visible="reportDialogVisible"
|
|
|
|
|
|
@update:visible="reportDialogVisible = $event"
|
|
|
|
|
|
></reportPopup>
|
|
|
|
|
|
|
2024-12-20 10:19:58 +08:00
|
|
|
|
<dataCheckPopup ref="dataCheckPopupRef"/>
|
2024-11-19 19:34:00 +08:00
|
|
|
|
|
|
|
|
|
|
<dataCheckChangeErrSysPopup
|
|
|
|
|
|
:visible="dataCheckChangeErrSysDialogVisible"
|
|
|
|
|
|
@update:visible="dataCheckChangeErrSysDialogVisible = $event"
|
|
|
|
|
|
></dataCheckChangeErrSysPopup>
|
2024-11-22 13:27:41 +08:00
|
|
|
|
|
|
|
|
|
|
<matchPopup
|
|
|
|
|
|
:visible="matchDialogVisible"
|
|
|
|
|
|
@update:visible="matchDialogVisible = $event"
|
|
|
|
|
|
></matchPopup>
|
2024-12-18 15:49:29 +08:00
|
|
|
|
|
2024-12-20 10:21:36 +08:00
|
|
|
|
<!--系数校准-->
|
2025-01-02 13:12:13 +08:00
|
|
|
|
<ChannelsTest ref="channelsTest" :webMsgSend="webMsgSend"></ChannelsTest>
|
2024-08-23 13:19:20 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
2024-08-27 18:37:46 +08:00
|
|
|
|
|
|
|
|
|
|
<script setup lang="tsx" name="useProTable">
|
|
|
|
|
|
import { useRouter } from "vue-router";
|
2024-11-18 09:02:57 +08:00
|
|
|
|
import type { Device } from '@/api/device/interface/device'
|
2024-08-27 18:37:46 +08:00
|
|
|
|
import { useHandleData } from "@/hooks/useHandleData";
|
2024-12-16 16:33:18 +08:00
|
|
|
|
import { ElMessage, ElMessageBox, ElLoading, Action} from "element-plus";
|
2024-08-27 18:37:46 +08:00
|
|
|
|
import ProTable from "@/components/ProTable/index.vue";
|
2024-11-07 20:41:32 +08:00
|
|
|
|
import { type ProTableInstance, type ColumnProps } from '@/components/ProTable/interface'
|
2024-08-27 18:37:46 +08:00
|
|
|
|
import {
|
2024-12-18 15:49:29 +08:00
|
|
|
|
Search,View,Delete,Download,EditPen,Clock,ChatLineRound,ChatLineSquare,ChatDotSquare,Postcard,Notebook,Switch,PieChart,CirclePlus,Odometer
|
2024-08-27 18:37:46 +08:00
|
|
|
|
} from "@element-plus/icons-vue";
|
|
|
|
|
|
import { getPlanList } from "@/api/plan/planList";
|
2024-11-18 09:02:57 +08:00
|
|
|
|
import deviceDataList from '@/api/device/device/deviceData'
|
2024-12-18 15:49:29 +08:00
|
|
|
|
import TestPopup from "./testPopup.vue";
|
2024-11-19 19:34:00 +08:00
|
|
|
|
import reportPopup from "./reportPopup.vue";
|
2024-12-20 10:19:58 +08:00
|
|
|
|
import dataCheckPopup from "./dataCheckSingleChannelSingleTestPopup.vue";
|
2024-11-19 19:34:00 +08:00
|
|
|
|
import dataCheckChangeErrSysPopup from "./dataCheckChangeErrSysPopup.vue";
|
2024-12-13 16:35:27 +08:00
|
|
|
|
import { getBoundPqDevList } from '@/api/plan/plan.ts'
|
2025-01-13 21:06:24 +08:00
|
|
|
|
import { onBeforeMount, onMounted, reactive, ref, watch } from "vue";
|
2024-12-13 16:35:27 +08:00
|
|
|
|
import { useDictStore } from '@/stores/modules/dict'
|
2024-12-18 15:49:29 +08:00
|
|
|
|
import ChannelsTest from './channelsTest.vue'
|
|
|
|
|
|
import { useModeStore } from '@/stores/modules/mode'; // 引入模式 store
|
2024-12-20 18:19:18 +08:00
|
|
|
|
import {useCheckStore} from '@/stores/modules/check'
|
2024-12-21 12:41:06 +08:00
|
|
|
|
import {CheckData} from '@/api/check/interface'
|
2025-01-02 09:02:46 +08:00
|
|
|
|
import socketClient from '@/utils/webSocketClient';
|
2025-01-09 13:56:56 +08:00
|
|
|
|
import auth from "@/directives/modules/auth";
|
|
|
|
|
|
import { useAuthStore } from "@/stores/modules/auth";
|
2025-01-13 09:59:05 +08:00
|
|
|
|
import { useDownload } from '@/hooks/useDownload'
|
|
|
|
|
|
import {downloadDevData} from '@/api/plan/plan.ts'
|
2025-01-13 18:20:35 +08:00
|
|
|
|
import {documentedPqDev} from "@/api/device/device";
|
2025-01-13 19:28:51 +08:00
|
|
|
|
import { getPqDev } from '@/api/device/device/index.ts'
|
2024-12-13 16:35:27 +08:00
|
|
|
|
const dictStore = useDictStore()
|
2024-12-20 18:19:18 +08:00
|
|
|
|
const checkStore = useCheckStore()
|
2025-01-02 13:12:13 +08:00
|
|
|
|
const webMsgSend = ref();//webSocket推送的数据
|
2024-12-04 21:36:12 +08:00
|
|
|
|
let devNum = 0;//当前选取的被检设备数量
|
|
|
|
|
|
let devChannelsNum = 0;//当前选择的被检设备通道总数
|
|
|
|
|
|
let devTestedNum = 0;//当前选择的已完成检测的被检设备数量
|
2024-11-21 23:02:43 +08:00
|
|
|
|
const tableKey = ref(0);
|
2024-08-27 18:37:46 +08:00
|
|
|
|
const router = useRouter();
|
|
|
|
|
|
const value1 = ref("");
|
|
|
|
|
|
const value2 = ref("");
|
|
|
|
|
|
const tableHeight = ref(0);
|
2024-11-19 19:34:00 +08:00
|
|
|
|
const reportDialogVisible = ref(false)
|
2024-12-20 10:19:58 +08:00
|
|
|
|
|
|
|
|
|
|
const dataCheckPopupRef=ref<InstanceType<typeof dataCheckPopup>>()
|
|
|
|
|
|
|
2024-11-19 19:34:00 +08:00
|
|
|
|
const dataCheckChangeErrSysDialogVisible = ref(false)
|
2024-11-22 13:27:41 +08:00
|
|
|
|
const matchDialogVisible = ref(false)
|
2024-11-18 22:04:59 +08:00
|
|
|
|
const dialogTitle = ref('手动检测')
|
2024-12-17 11:34:54 +08:00
|
|
|
|
const checkStateTable = ref<number[]>([0,1,2])
|
2024-11-18 22:04:59 +08:00
|
|
|
|
const dialogForm = ref<any>({
|
|
|
|
|
|
id: '',
|
|
|
|
|
|
name: '',
|
|
|
|
|
|
standard_Name:'',
|
|
|
|
|
|
standard_Time:'',
|
|
|
|
|
|
dev_Level:'',
|
|
|
|
|
|
enable:1,
|
|
|
|
|
|
state:1,
|
|
|
|
|
|
});
|
2024-12-18 15:49:29 +08:00
|
|
|
|
const modeStore = useModeStore();
|
2024-12-04 21:36:12 +08:00
|
|
|
|
const shouldShowOption = (item) => {
|
2025-01-06 09:21:24 +08:00
|
|
|
|
// 检查 weiJianTab 是否不等于 0
|
|
|
|
|
|
if (weiJianTab.value !== 0) {
|
|
|
|
|
|
// 排除 label 为“归档”和“未检”的项
|
|
|
|
|
|
return item.label !== '归档' && item.label !== '未检';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 只排除 label 为“归档”的项
|
|
|
|
|
|
return item.label !== '归档';
|
|
|
|
|
|
}
|
2024-12-04 21:36:12 +08:00
|
|
|
|
};
|
2024-12-13 16:35:27 +08:00
|
|
|
|
|
2024-11-25 21:11:10 +08:00
|
|
|
|
tableHeight.value = window.innerHeight - 600;
|
2024-12-13 16:35:27 +08:00
|
|
|
|
const deviceData = ref<Device.ResPqDev[]>([]);
|
2024-11-12 20:35:12 +08:00
|
|
|
|
const operationShow = ref(false);
|
2024-12-04 21:36:12 +08:00
|
|
|
|
const documentStateShow = ref(false);
|
|
|
|
|
|
const checkStateShow = ref(true);
|
2025-01-09 13:56:56 +08:00
|
|
|
|
const factorCheckShow = ref(true);
|
2024-11-21 23:02:43 +08:00
|
|
|
|
const operationMinWidth = ref(200);
|
2024-12-04 21:36:12 +08:00
|
|
|
|
const selectionShow = ref(true);
|
2024-12-18 15:49:29 +08:00
|
|
|
|
const channelsTest = ref()
|
|
|
|
|
|
const testPopup = ref()
|
2025-01-06 09:21:24 +08:00
|
|
|
|
const weiJianTab = ref(0)//除设备检测外,检测结果不显示'未检'
|
2024-12-20 10:21:36 +08:00
|
|
|
|
const channelsSelection = ref<Device.ResPqDev[]>([])
|
2024-12-13 16:35:27 +08:00
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
id: {
|
|
|
|
|
|
type: String,
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
},
|
2024-12-18 15:49:29 +08:00
|
|
|
|
isTimeCheck: {
|
|
|
|
|
|
type: Boolean,
|
|
|
|
|
|
required: true,
|
|
|
|
|
|
},
|
2025-01-08 11:40:12 +08:00
|
|
|
|
plan: {
|
|
|
|
|
|
type: Object,
|
|
|
|
|
|
default: null
|
|
|
|
|
|
}
|
2024-12-13 16:35:27 +08:00
|
|
|
|
})
|
|
|
|
|
|
|
2025-01-13 21:06:24 +08:00
|
|
|
|
const emit = defineEmits<{
|
|
|
|
|
|
(e: 'batchGenerateClicked'): void;
|
|
|
|
|
|
}>();
|
2025-01-13 19:28:51 +08:00
|
|
|
|
|
|
|
|
|
|
// 存储设备类型选项
|
|
|
|
|
|
const devTypeOptions = ref<{
|
|
|
|
|
|
id: string;
|
|
|
|
|
|
name: string ,
|
|
|
|
|
|
icd:string ,
|
|
|
|
|
|
power:string,
|
|
|
|
|
|
devVolt:number,
|
|
|
|
|
|
devCurr:number,
|
|
|
|
|
|
devChns:number,
|
|
|
|
|
|
}[]>([])
|
|
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//下拉框数据
|
2024-12-16 16:33:18 +08:00
|
|
|
|
interface Dict {
|
|
|
|
|
|
id: string;
|
|
|
|
|
|
label: string;
|
|
|
|
|
|
}
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//检测状态数据
|
2024-12-16 16:33:18 +08:00
|
|
|
|
const checkStatus: Dict[] = [
|
2024-09-02 16:10:33 +08:00
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "0",
|
|
|
|
|
|
label: '未检',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "1",
|
|
|
|
|
|
label: '检测中',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "2",
|
|
|
|
|
|
label: '检测完成',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "3",
|
|
|
|
|
|
label: '归档',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
2024-12-16 16:33:18 +08:00
|
|
|
|
]
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//检测报告状态数据
|
2024-12-16 16:33:18 +08:00
|
|
|
|
const checkReportStatus: Dict[] = [
|
2024-12-16 15:25:30 +08:00
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "0",
|
2024-12-17 13:38:59 +08:00
|
|
|
|
label: '未生成',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "1",
|
2024-12-17 13:38:59 +08:00
|
|
|
|
label: '已生成',
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
id: "2",
|
|
|
|
|
|
label: '未检',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
2024-12-16 16:33:18 +08:00
|
|
|
|
]
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//检测结果数组
|
2024-12-16 16:33:18 +08:00
|
|
|
|
const checkResult: Dict[] = [
|
2024-09-02 16:10:33 +08:00
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "0",
|
|
|
|
|
|
label: '不符合',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "1",
|
|
|
|
|
|
label: '符合',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-16 16:33:18 +08:00
|
|
|
|
id: "2",
|
|
|
|
|
|
label: '未检',
|
2024-09-02 16:10:33 +08:00
|
|
|
|
},
|
2024-12-16 16:33:18 +08:00
|
|
|
|
]
|
|
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//查询条件
|
|
|
|
|
|
const form: any = ref({
|
|
|
|
|
|
activeTabs: 0, //功能选择
|
2024-12-17 11:34:54 +08:00
|
|
|
|
search: null,//搜索内容
|
2024-11-14 11:45:25 +08:00
|
|
|
|
activeChildTabs: 0,//子功能选择
|
2024-11-29 13:45:48 +08:00
|
|
|
|
checkStatus: null, //检测状态
|
|
|
|
|
|
checkResult: null, //检测结果
|
|
|
|
|
|
checkReportStatus: null, //检测报告状态
|
2024-09-02 16:10:33 +08:00
|
|
|
|
deviceBindStatus: 0, //绑定状态
|
|
|
|
|
|
deviceType: 0, //设备类型
|
|
|
|
|
|
manufacturer: 0, //制造厂商
|
|
|
|
|
|
});
|
2024-08-27 18:37:46 +08:00
|
|
|
|
const searchForm = ref({
|
|
|
|
|
|
intervalType: 0,
|
|
|
|
|
|
time: ["2024-08-20", "2024-08-27"],
|
|
|
|
|
|
searchBeginTime: "",
|
|
|
|
|
|
searchEndTime: "",
|
|
|
|
|
|
checkStatus: 0,
|
|
|
|
|
|
checkReportStatus: 0,
|
|
|
|
|
|
checkResult: 0,
|
|
|
|
|
|
});
|
|
|
|
|
|
// ProTable 实例
|
|
|
|
|
|
const proTable = ref<ProTableInstance>();
|
2024-08-23 13:19:20 +08:00
|
|
|
|
|
2024-12-13 16:35:27 +08:00
|
|
|
|
const getTableList = async (params: any) => {
|
2025-01-09 13:56:56 +08:00
|
|
|
|
//权限不包含通道系数,表格不展示列
|
|
|
|
|
|
const authStore = useAuthStore()
|
|
|
|
|
|
const currentPageRoles = authStore.authButtonListGet[authStore.routeName] ?? []
|
|
|
|
|
|
if (!currentPageRoles.includes('channelsTest')) {
|
|
|
|
|
|
factorCheckShow.value = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-20 10:21:36 +08:00
|
|
|
|
// 调用 ProTable 的 clearSelection 方法清空选择
|
|
|
|
|
|
if (proTable.value) {
|
|
|
|
|
|
proTable.value.clearSelection();
|
|
|
|
|
|
}
|
2024-12-17 13:38:59 +08:00
|
|
|
|
if(props.id){
|
|
|
|
|
|
const checkStateList = ref<any>()
|
2025-01-13 21:06:24 +08:00
|
|
|
|
if(form.value.checkStatus != null){
|
|
|
|
|
|
checkStateList.value = [form.value.checkStatus]
|
|
|
|
|
|
}else{
|
|
|
|
|
|
checkStateList.value = checkStateTable.value
|
|
|
|
|
|
}
|
|
|
|
|
|
return getBoundPqDevList({'planId': props.id,
|
|
|
|
|
|
'checkStateList': checkStateList.value,
|
|
|
|
|
|
'checkResult': form.value.checkResult,
|
|
|
|
|
|
'reportState': form.value.checkReportStatus,
|
|
|
|
|
|
'name':form.value.search
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2024-08-27 18:37:46 +08:00
|
|
|
|
};
|
2024-11-07 20:41:32 +08:00
|
|
|
|
|
2024-08-27 18:37:46 +08:00
|
|
|
|
// 表格配置项
|
2024-12-13 16:35:27 +08:00
|
|
|
|
const columns = reactive<ColumnProps<Device.ResPqDev>[]>([
|
2024-12-04 21:36:12 +08:00
|
|
|
|
{ type: 'selection', fixed: 'left', width: 70, isShow:selectionShow },
|
2024-12-02 14:11:09 +08:00
|
|
|
|
{ type: 'index', fixed: 'left', width: 70, label: '序号' },
|
2024-11-07 20:41:32 +08:00
|
|
|
|
{
|
|
|
|
|
|
prop: 'name',
|
2024-11-19 19:34:00 +08:00
|
|
|
|
label: '设备名称',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
minWidth: 220,
|
2024-12-16 16:33:18 +08:00
|
|
|
|
//search: { el: 'input' },
|
2024-08-27 18:37:46 +08:00
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'devType',
|
2024-11-19 19:34:00 +08:00
|
|
|
|
label: '设备类型',
|
2024-11-07 20:41:32 +08:00
|
|
|
|
minWidth: 100,
|
2025-01-13 19:28:51 +08:00
|
|
|
|
render: (scope) => {
|
|
|
|
|
|
// 查找设备类型名称
|
|
|
|
|
|
const name = devTypeOptions.value.find(option => option.id === scope.row.devType);
|
|
|
|
|
|
return <span>{name?.name}</span>
|
|
|
|
|
|
},
|
2024-08-27 18:37:46 +08:00
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'devChns',
|
2024-11-07 20:41:32 +08:00
|
|
|
|
label: '通道数',
|
|
|
|
|
|
minWidth: 100,
|
2024-12-02 14:11:09 +08:00
|
|
|
|
sortable:true,
|
2024-08-27 18:37:46 +08:00
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'reCheckNum',
|
2024-12-04 21:36:12 +08:00
|
|
|
|
label: '检测次数',
|
2024-11-13 18:58:53 +08:00
|
|
|
|
minWidth: 100,
|
2024-12-02 14:11:09 +08:00
|
|
|
|
sortable:true,
|
2024-12-04 21:36:12 +08:00
|
|
|
|
// <template #header>
|
|
|
|
|
|
// <span>检测次数</span>
|
|
|
|
|
|
// <el-tooltip content = "最大检测次数为3次,超过会强制归档" placement="top" style="align-items: bottom;">
|
|
|
|
|
|
// <el-icon><InfoFilled /></el-icon>
|
|
|
|
|
|
// </el-tooltip>
|
|
|
|
|
|
// </template>
|
2024-08-27 18:37:46 +08:00
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'checkState',
|
2024-11-29 13:45:48 +08:00
|
|
|
|
label: '检测状态',
|
2024-11-13 18:58:53 +08:00
|
|
|
|
minWidth: 100,
|
2024-12-02 14:11:09 +08:00
|
|
|
|
sortable:true,
|
2024-12-04 21:36:12 +08:00
|
|
|
|
isShow:checkStateShow,
|
2024-12-16 15:25:30 +08:00
|
|
|
|
render: scope => {
|
|
|
|
|
|
return (
|
|
|
|
|
|
scope.row.checkState === 0 ? '未检' : scope.row.checkState === 1 ? '检测中' : '检测完成'
|
|
|
|
|
|
)
|
|
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'checkResult',
|
2024-11-07 20:41:32 +08:00
|
|
|
|
label: '检测结果',
|
2024-11-13 18:58:53 +08:00
|
|
|
|
minWidth: 100,
|
2024-12-02 14:11:09 +08:00
|
|
|
|
sortable:true,
|
2024-12-04 21:36:12 +08:00
|
|
|
|
render: (scope) => {
|
2024-12-16 15:25:30 +08:00
|
|
|
|
if (scope.row.checkResult === 0)
|
2024-12-13 16:35:27 +08:00
|
|
|
|
{
|
2024-12-16 15:25:30 +08:00
|
|
|
|
return <el-tag type='danger'>不符合</el-tag>
|
2024-12-17 11:34:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.checkResult === 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '符合';
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.checkResult === 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '未检';
|
2024-12-16 15:25:30 +08:00
|
|
|
|
}
|
2024-12-17 11:34:54 +08:00
|
|
|
|
return '';
|
2024-12-13 16:35:27 +08:00
|
|
|
|
},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
2024-12-13 16:35:27 +08:00
|
|
|
|
prop: 'reportState',
|
2024-11-29 13:45:48 +08:00
|
|
|
|
label: '报告状态',
|
2024-11-13 18:58:53 +08:00
|
|
|
|
minWidth: 100,
|
2024-12-02 14:11:09 +08:00
|
|
|
|
sortable:true,
|
2024-12-16 15:25:30 +08:00
|
|
|
|
render: scope => {
|
2024-12-17 13:38:59 +08:00
|
|
|
|
if (scope.row.reportState === 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '未生成';
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.reportState === 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '已生成';
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.reportState === 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '未检';
|
|
|
|
|
|
}
|
|
|
|
|
|
return '';
|
|
|
|
|
|
}
|
2024-11-07 20:41:32 +08:00
|
|
|
|
},
|
2025-01-09 13:56:56 +08:00
|
|
|
|
{
|
|
|
|
|
|
prop: 'factorCheckResult',
|
|
|
|
|
|
label: '系数校准结果',
|
|
|
|
|
|
minWidth: 100,
|
|
|
|
|
|
sortable:true,
|
|
|
|
|
|
isShow:factorCheckShow,
|
|
|
|
|
|
render: scope => {
|
|
|
|
|
|
if (scope.row.factorCheckResult === 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '不合格';
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.factorCheckResult === 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '合格';
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (scope.row.factorCheckResult === 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
return '/';
|
|
|
|
|
|
}
|
|
|
|
|
|
return '';
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-11-14 18:26:34 +08:00
|
|
|
|
{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 200 ,isShow: operationShow},
|
2024-11-07 20:41:32 +08:00
|
|
|
|
])
|
|
|
|
|
|
|
2024-12-13 16:35:27 +08:00
|
|
|
|
|
2024-12-18 15:49:29 +08:00
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
// 跳转详情页
|
|
|
|
|
|
const toDetail = () => {
|
|
|
|
|
|
router.push(
|
|
|
|
|
|
`/proTable/useProTable/detail/${Math.random().toFixed(3)}?params=detail-page`
|
|
|
|
|
|
);
|
|
|
|
|
|
};
|
2024-08-27 18:37:46 +08:00
|
|
|
|
//重置查询条件
|
|
|
|
|
|
const resetSearchForm = () => {
|
|
|
|
|
|
searchForm.value = {
|
|
|
|
|
|
intervalType: 0,
|
|
|
|
|
|
time: ["2024-08-20", "2024-08-27"],
|
|
|
|
|
|
searchBeginTime: "",
|
|
|
|
|
|
searchEndTime: "",
|
|
|
|
|
|
checkStatus: 0,
|
|
|
|
|
|
checkReportStatus: 0,
|
|
|
|
|
|
checkResult: 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
2024-11-29 13:45:48 +08:00
|
|
|
|
let testType = "test";//检测还是复检
|
2024-12-04 21:36:12 +08:00
|
|
|
|
|
2024-11-25 21:11:10 +08:00
|
|
|
|
const handleSelectionChange = (selection: any[]) => {
|
2024-12-20 10:21:36 +08:00
|
|
|
|
channelsSelection.value = selection
|
2024-12-04 21:36:12 +08:00
|
|
|
|
devNum = selection.length;
|
2024-12-05 11:21:10 +08:00
|
|
|
|
devChannelsNum = 0;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
for (let i = 0; i < selection.length; i++) {
|
|
|
|
|
|
devChannelsNum += selection[i].dev_Chns;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-18 15:49:29 +08:00
|
|
|
|
devTestedNum = selection.filter((item) => item.checkState === 2).length;
|
|
|
|
|
|
const result = selection.filter((item) => item.checkResult != 0)
|
2024-11-29 13:45:48 +08:00
|
|
|
|
if(result.length > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
testType= "test";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
testType= "reTest";
|
|
|
|
|
|
}
|
2024-12-21 12:41:06 +08:00
|
|
|
|
let devices: CheckData.Device[] = selection.map((item: any) => {
|
2024-12-20 18:19:18 +08:00
|
|
|
|
return {
|
|
|
|
|
|
deviceId: item.id,
|
|
|
|
|
|
deviceName: item.name,
|
|
|
|
|
|
deviceType: item.devType,
|
|
|
|
|
|
chnNum: item.devChns,
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2024-12-26 09:28:19 +08:00
|
|
|
|
|
|
|
|
|
|
if(selection.length > 0){
|
|
|
|
|
|
checkStore.clearDevices()
|
|
|
|
|
|
checkStore.addDevices(devices)
|
|
|
|
|
|
}else{
|
|
|
|
|
|
checkStore.clearDevices()
|
|
|
|
|
|
}
|
2024-11-25 21:11:10 +08:00
|
|
|
|
}
|
2024-11-29 13:45:48 +08:00
|
|
|
|
|
2024-08-27 18:37:46 +08:00
|
|
|
|
//查询
|
|
|
|
|
|
const handleSearch = () => {
|
2024-12-16 16:33:18 +08:00
|
|
|
|
proTable.value?.getTableList();
|
2024-08-27 18:37:46 +08:00
|
|
|
|
};
|
|
|
|
|
|
//重置
|
|
|
|
|
|
const handleRefresh = () => {
|
2024-12-17 11:34:54 +08:00
|
|
|
|
form.value.search = null;
|
2024-11-29 13:45:48 +08:00
|
|
|
|
form.value.checkStatus = null;
|
|
|
|
|
|
form.value.checkResult = null;
|
|
|
|
|
|
form.value.checkReportStatus = null;
|
2024-12-17 11:34:54 +08:00
|
|
|
|
proTable.value?.getTableList();
|
2024-08-27 18:37:46 +08:00
|
|
|
|
};
|
|
|
|
|
|
// 表格拖拽排序
|
|
|
|
|
|
const sortTable = ({
|
|
|
|
|
|
newIndex,
|
|
|
|
|
|
oldIndex,
|
|
|
|
|
|
}: {
|
|
|
|
|
|
newIndex?: number;
|
|
|
|
|
|
oldIndex?: number;
|
|
|
|
|
|
}) => {
|
2024-11-14 18:26:34 +08:00
|
|
|
|
//console.log(newIndex, oldIndex);
|
|
|
|
|
|
//console.log(proTable.value?.tableData);
|
2024-08-27 18:37:46 +08:00
|
|
|
|
ElMessage.success("修改列表排序成功");
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
//顶部功能切换时修改activeTabs
|
2024-11-29 13:45:48 +08:00
|
|
|
|
const changeActiveTabs = (val: number,val2: number,tabledata:any[]) => {
|
2025-01-06 14:02:22 +08:00
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
form.value.activeTabs = val;
|
2024-11-14 11:45:25 +08:00
|
|
|
|
form.value.activeChildTabs= val2;
|
2024-11-29 13:45:48 +08:00
|
|
|
|
deviceData.value = tabledata;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
tableHeaderInit(val)
|
2024-09-02 16:10:33 +08:00
|
|
|
|
};
|
2024-11-07 20:41:32 +08:00
|
|
|
|
|
|
|
|
|
|
//根据当前功能,初始化表头下拉框中的默认值和禁用值
|
|
|
|
|
|
function tableHeaderInit(val: number) {
|
|
|
|
|
|
refreshStatusList()
|
2025-01-06 09:21:24 +08:00
|
|
|
|
weiJianTab.value = val;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
switch (val) {
|
2024-11-29 13:45:48 +08:00
|
|
|
|
case 0://设备检测
|
2024-11-07 20:41:32 +08:00
|
|
|
|
case 1://手动检测
|
2024-11-29 13:45:48 +08:00
|
|
|
|
//disableCheckStatus("检测中")
|
2024-11-07 20:41:32 +08:00
|
|
|
|
disableCheckStatus("归档")
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// operationShow.value = false;
|
2024-12-09 16:17:04 +08:00
|
|
|
|
// columns[columns.length - 1].minWidth = 100;
|
2024-12-17 11:34:54 +08:00
|
|
|
|
checkStateTable.value = [0,1,2]
|
2024-11-29 13:45:48 +08:00
|
|
|
|
tableKey.value ++;
|
2024-12-09 16:17:04 +08:00
|
|
|
|
operationShow.value = false;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
documentStateShow.value = false;
|
|
|
|
|
|
checkStateShow.value = true;
|
|
|
|
|
|
selectionShow.value = true;
|
2025-01-09 13:56:56 +08:00
|
|
|
|
factorCheckShow.value = true;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 2://设备复检
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// form.value.checkStatus = 2;//检测状态默认为检测完成
|
|
|
|
|
|
// form.value.checkReportStatus = 0;//检测报告状态默认为未生成报告
|
|
|
|
|
|
// form.value.checkResult = 1;//检测结果默认为不合格
|
2024-12-06 15:06:38 +08:00
|
|
|
|
// disableCheckStatus("未检")
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// disableCheckStatus("检测中")
|
|
|
|
|
|
// disableCheckStatus("归档")
|
|
|
|
|
|
// disablecheckResultList("未出结果")
|
|
|
|
|
|
// operationShow.value = false;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 3://报告生成
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// form.value.checkStatus = 2;//检测状态默认为检测完成
|
|
|
|
|
|
// form.value.checkReportStatus = 0;//检测报告状态默认为未生成报告
|
|
|
|
|
|
// form.value.checkResult = 2;//检测结果默认为合格
|
2024-12-06 15:06:38 +08:00
|
|
|
|
// disableCheckStatus("未检")
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// disableCheckStatus("检测中")
|
|
|
|
|
|
// disableCheckStatus("归档")
|
2024-12-17 11:34:54 +08:00
|
|
|
|
checkStateTable.value = [2,3]
|
2024-12-06 15:06:38 +08:00
|
|
|
|
disablecheckResultList("未检")
|
|
|
|
|
|
disableCheckReportStatus("未检")
|
2024-12-02 14:11:09 +08:00
|
|
|
|
columns[columns.length - 1].minWidth = 180;
|
2024-11-21 23:02:43 +08:00
|
|
|
|
tableKey.value += 1;
|
2024-11-12 20:35:12 +08:00
|
|
|
|
operationShow.value = true;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
documentStateShow.value = true;
|
|
|
|
|
|
checkStateShow.value = false;
|
2025-01-09 13:56:56 +08:00
|
|
|
|
factorCheckShow.value = false;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
selectionShow.value = true;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 4://设备归档
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// form.value.checkStatus = 2;//检测状态默认为检测完成
|
|
|
|
|
|
// form.value.checkReportStatus = 1;//检测报告状态默认为已生成报告
|
|
|
|
|
|
// form.value.checkResult = 2;//检测结果默认为合格
|
2024-12-06 15:06:38 +08:00
|
|
|
|
// disableCheckStatus("未检")
|
2024-11-29 13:45:48 +08:00
|
|
|
|
// disableCheckStatus("检测中")
|
|
|
|
|
|
// disableCheckStatus("归档")
|
2024-12-17 11:34:54 +08:00
|
|
|
|
checkStateTable.value = [2]
|
2024-12-09 16:17:04 +08:00
|
|
|
|
disablecheckResultList("未检")
|
|
|
|
|
|
disableCheckReportStatus("未检")
|
2024-11-21 23:02:43 +08:00
|
|
|
|
columns[columns.length - 1].minWidth = 100;
|
2024-12-09 16:17:04 +08:00
|
|
|
|
tableKey.value += 1;
|
2024-11-14 11:45:25 +08:00
|
|
|
|
operationShow.value = true;
|
2024-12-09 16:17:04 +08:00
|
|
|
|
documentStateShow.value = false;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
checkStateShow.value = false;
|
2025-01-09 13:56:56 +08:00
|
|
|
|
factorCheckShow.value = false;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
selectionShow.value = true;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
break;
|
2024-11-21 23:02:43 +08:00
|
|
|
|
case 5://数据查询
|
2024-12-17 11:34:54 +08:00
|
|
|
|
checkStateTable.value = [2,3]
|
2024-12-06 15:06:38 +08:00
|
|
|
|
disablecheckResultList("未检")
|
|
|
|
|
|
disableCheckReportStatus("未检")
|
2024-12-11 17:46:59 +08:00
|
|
|
|
columns[columns.length - 1].minWidth = 290;
|
2024-11-12 20:35:12 +08:00
|
|
|
|
operationShow.value = true;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
documentStateShow.value = true;
|
|
|
|
|
|
checkStateShow.value = false;
|
2025-01-09 13:56:56 +08:00
|
|
|
|
factorCheckShow.value = false;
|
2024-12-04 21:36:12 +08:00
|
|
|
|
selectionShow.value = false;
|
|
|
|
|
|
columns[0].isShow = false;
|
|
|
|
|
|
tableKey.value += 1;
|
2024-11-07 20:41:32 +08:00
|
|
|
|
break;
|
|
|
|
|
|
}
|
2024-12-11 19:39:09 +08:00
|
|
|
|
//console.log("test",columns);
|
2024-11-07 20:41:32 +08:00
|
|
|
|
}
|
2024-11-29 13:45:48 +08:00
|
|
|
|
|
2024-11-07 20:41:32 +08:00
|
|
|
|
function refreshStatusList(){
|
2024-12-04 21:36:12 +08:00
|
|
|
|
// devNum = 0;
|
|
|
|
|
|
// devChannelsNum = 0;
|
|
|
|
|
|
// devTestedNum = 0;
|
|
|
|
|
|
devNum = 0;
|
|
|
|
|
|
devChannelsNum = 0;
|
|
|
|
|
|
devTestedNum = 0;
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkStatus.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (item.disabled) {
|
|
|
|
|
|
item.disabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkReportStatus.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (item.disabled) {
|
|
|
|
|
|
item.disabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkResult.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (item.disabled) {
|
|
|
|
|
|
item.disabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2024-11-29 13:45:48 +08:00
|
|
|
|
|
|
|
|
|
|
form.value.checkStatus = null;//检测状态默认为未检
|
|
|
|
|
|
form.value.checkReportStatus = null;//检测报告状态默认为未生成报告
|
|
|
|
|
|
form.value.checkResult = null;//检测结果默认为未出结果
|
2024-11-07 20:41:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function disableCheckStatus(val: string){
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkStatus.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (val == item.label) {
|
|
|
|
|
|
item.disabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
function disableCheckReportStatus(val: string){
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkReportStatus.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (val == item.label) {
|
|
|
|
|
|
item.disabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
function disablecheckResultList(val: string){
|
2024-12-16 16:33:18 +08:00
|
|
|
|
checkResult.map((item: any, index: any) => {
|
2024-11-07 20:41:32 +08:00
|
|
|
|
if (val == item.label) {
|
|
|
|
|
|
item.disabled = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-02 14:11:09 +08:00
|
|
|
|
const addDevice = (val:string) => {
|
|
|
|
|
|
router.push({
|
|
|
|
|
|
path: "/machine/device",
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
2024-12-18 15:49:29 +08:00
|
|
|
|
const handleTest = async (val:string) => {
|
2024-11-20 11:22:05 +08:00
|
|
|
|
|
2025-01-02 13:12:13 +08:00
|
|
|
|
if(devNum == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'请先选择被检设备',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2024-12-24 20:22:36 +08:00
|
|
|
|
|
|
|
|
|
|
const checkDevVolt = channelsSelection.value.map(item => item.devVolt);
|
|
|
|
|
|
const isDevVoltConsistent = new Set(checkDevVolt).size === 1;
|
|
|
|
|
|
if (!isDevVoltConsistent) {
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'所勾选设备额定电压不一致,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const checkDevCurr = channelsSelection.value.map(item => item.devCurr);
|
|
|
|
|
|
const isDevCurrConsistent = new Set(checkDevCurr).size === 1;
|
|
|
|
|
|
if (!isDevCurrConsistent) {
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'所勾选设备额定电流不一致,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-21 23:02:43 +08:00
|
|
|
|
if(val==='手动检测'||val==='自动检测'||val==='不合格项复检'||val==='全部复检' )
|
|
|
|
|
|
{
|
2024-12-04 21:36:12 +08:00
|
|
|
|
if(devNum > 6)
|
|
|
|
|
|
{
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'每次检测最多只能选择6台设备,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
if(devChannelsNum > 20)
|
|
|
|
|
|
{
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'每次检测最多只能检测20个设备通道,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2024-11-29 13:45:48 +08:00
|
|
|
|
if(testType === "reTest")
|
|
|
|
|
|
{
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'请选择复检检测方式',
|
|
|
|
|
|
'设备复检',
|
|
|
|
|
|
{
|
|
|
|
|
|
distinguishCancelAndClose: true,
|
|
|
|
|
|
confirmButtonText: '不合格项复检',
|
|
|
|
|
|
cancelButtonText: '全部复检',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
},
|
|
|
|
|
|
)
|
|
|
|
|
|
.then(() => {
|
2024-12-05 11:21:10 +08:00
|
|
|
|
ElMessage.success('不合格项复检');
|
|
|
|
|
|
dialogTitle.value = val;
|
2024-12-23 14:05:53 +08:00
|
|
|
|
testPopup.value?.open(channelsSelection.value,dialogTitle.value,props.isTimeCheck)// 打开对话框
|
2024-12-05 11:21:10 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch((action: Action) => {
|
|
|
|
|
|
ElMessage.success('全部复检');
|
|
|
|
|
|
dialogTitle.value = val;
|
2024-12-23 14:05:53 +08:00
|
|
|
|
testPopup.value?.open(channelsSelection.value,dialogTitle.value,props.isTimeCheck) // 打开对话框
|
2024-11-29 13:45:48 +08:00
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
dialogTitle.value = val;
|
2024-12-23 14:05:53 +08:00
|
|
|
|
testPopup.value?.open(channelsSelection.value,dialogTitle.value,props.isTimeCheck)
|
2024-11-29 13:45:48 +08:00
|
|
|
|
}
|
2024-12-04 21:36:12 +08:00
|
|
|
|
return
|
2024-11-29 13:45:48 +08:00
|
|
|
|
|
2024-11-21 23:02:43 +08:00
|
|
|
|
}
|
2024-12-18 15:49:29 +08:00
|
|
|
|
|
2025-01-02 13:12:13 +08:00
|
|
|
|
if(val === '系数校准') {
|
2025-01-09 13:56:56 +08:00
|
|
|
|
const checkStates = channelsSelection.value.map(item => item.checkState);
|
|
|
|
|
|
const allCheckStatesEqual = new Set(checkStates).size <= 1;
|
|
|
|
|
|
|
|
|
|
|
|
if (!allCheckStatesEqual) {
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'所勾选设备检测状态不一致,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const factorFlagArray = ref<string[]>([]); // 初始化为空数组
|
|
|
|
|
|
for (let i = 0; i < channelsSelection.value.length; i++) {
|
|
|
|
|
|
const factorFlag = channelsSelection.value[i].factorFlag;
|
|
|
|
|
|
if (factorFlag !== undefined && factorFlag !== null && factorFlag === 0) {
|
|
|
|
|
|
factorFlagArray.value.push(channelsSelection.value[i].name.toString());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if(factorFlagArray.value.length > 0){
|
|
|
|
|
|
const factorFlags = factorFlagArray.value.join(', ');
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
factorFlags + '设备不支持系数校准,请重新选择',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-13 18:12:36 +08:00
|
|
|
|
// 检查 socketClient.Instance 是否存在
|
|
|
|
|
|
if (!socketClient.Instance) {
|
|
|
|
|
|
console.error('WebSocket 客户端实例不存在');
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2025-01-09 13:56:56 +08:00
|
|
|
|
|
2025-01-08 11:40:12 +08:00
|
|
|
|
//开始创建webSocket客户端
|
|
|
|
|
|
const data = reactive({
|
|
|
|
|
|
socketServe: socketClient.Instance,
|
|
|
|
|
|
});
|
2025-01-10 10:47:08 +08:00
|
|
|
|
const url = 'ws://localhost:7777/hello?name=cdf';
|
2025-01-08 11:40:12 +08:00
|
|
|
|
socketClient.Instance.connect(url);
|
|
|
|
|
|
data.socketServe = socketClient.Instance;
|
|
|
|
|
|
data.socketServe.registerCallBack('aaa', (res: { code: number; }) => {
|
|
|
|
|
|
// 处理来自服务器的消息
|
|
|
|
|
|
console.log('Received message:', res);
|
|
|
|
|
|
// 根据需要在这里添加更多的处理逻辑
|
|
|
|
|
|
if(res.code === 20000){
|
|
|
|
|
|
ElMessage.error(message.message)
|
|
|
|
|
|
loading.close()
|
|
|
|
|
|
}else {
|
|
|
|
|
|
webMsgSend.value = res
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2025-01-13 19:28:51 +08:00
|
|
|
|
|
2025-01-08 11:40:12 +08:00
|
|
|
|
channelsTest.value?.open(channelsSelection.value,props.plan);
|
2025-01-02 13:12:13 +08:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-11-21 23:02:43 +08:00
|
|
|
|
|
2024-12-04 21:36:12 +08:00
|
|
|
|
if(devTestedNum == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
ElMessageBox.confirm(
|
|
|
|
|
|
'请先选择检测完成状态的被检设备',
|
|
|
|
|
|
'提示',
|
|
|
|
|
|
{
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning',
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2025-01-13 21:06:24 +08:00
|
|
|
|
if(val==='批量下载')
|
2024-11-21 23:02:43 +08:00
|
|
|
|
{
|
2024-12-04 21:36:12 +08:00
|
|
|
|
reportDialogVisible.value = true;
|
2025-01-13 21:06:24 +08:00
|
|
|
|
|
2024-12-04 21:36:12 +08:00
|
|
|
|
return
|
2024-11-21 23:02:43 +08:00
|
|
|
|
}
|
2024-11-18 22:04:59 +08:00
|
|
|
|
|
2024-12-05 11:21:10 +08:00
|
|
|
|
if(val==='批量归档')
|
2024-11-21 23:02:43 +08:00
|
|
|
|
{
|
2025-01-13 18:20:35 +08:00
|
|
|
|
// const loading = ElLoading.service({
|
|
|
|
|
|
// lock: true,
|
|
|
|
|
|
// text: '归档中...',
|
|
|
|
|
|
// background: 'rgba(0, 0, 0, 0.7)',
|
|
|
|
|
|
// })
|
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
|
// loading.close()
|
|
|
|
|
|
// ElMessage.success("归档成功");
|
|
|
|
|
|
// }, 2000)
|
|
|
|
|
|
documentedPqDev(checkStore.devices.map(item => {item.deviceId}))
|
2024-09-02 16:10:33 +08:00
|
|
|
|
}
|
2024-12-18 15:49:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
};
|
2024-11-07 20:41:32 +08:00
|
|
|
|
|
2024-11-14 11:45:25 +08:00
|
|
|
|
|
2024-11-12 20:35:12 +08:00
|
|
|
|
// 打开 drawer(新增、查看、编辑)
|
|
|
|
|
|
const openDrawer = (title: string, row: any) => {
|
2024-11-19 19:34:00 +08:00
|
|
|
|
if (title === '查看')
|
|
|
|
|
|
{
|
|
|
|
|
|
const link = document.createElement('a');
|
|
|
|
|
|
const fileUrl = 'G:/南网数研院非结构化数据生成程序MMS_JSON修改记录.docx'; // 文件路径
|
|
|
|
|
|
link.href = fileUrl;
|
|
|
|
|
|
link.target = '_blank'; // 在新标签页中打开
|
|
|
|
|
|
link.download = 'file.docx'; // 设置下载文件的名称
|
|
|
|
|
|
link.click();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(title === '生成')
|
|
|
|
|
|
{
|
2025-01-13 09:59:05 +08:00
|
|
|
|
//reportDialogVisible.value = true;
|
2025-01-13 21:06:24 +08:00
|
|
|
|
emit('batchGenerateClicked'); // 触发事件
|
2025-01-13 09:59:05 +08:00
|
|
|
|
useDownload(downloadDevData,'调试报告'+formatDate(new Date()), {planId:checkStore.planId,devId:row.id}, false,'.docx')
|
2024-11-19 19:34:00 +08:00
|
|
|
|
}
|
2024-11-12 20:35:12 +08:00
|
|
|
|
|
2024-11-19 19:34:00 +08:00
|
|
|
|
if(title === '检测数据查询')
|
|
|
|
|
|
{
|
2024-12-31 14:27:36 +08:00
|
|
|
|
dataCheckPopupRef.value?.open(row.id,'-1',null)
|
2024-11-19 19:34:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (title === '误差体系更换')
|
|
|
|
|
|
{
|
|
|
|
|
|
dataCheckChangeErrSysDialogVisible.value = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-12 20:35:12 +08:00
|
|
|
|
|
2024-11-14 11:45:25 +08:00
|
|
|
|
if (title === '归档')
|
|
|
|
|
|
{
|
2025-01-13 21:06:24 +08:00
|
|
|
|
emit('batchGenerateClicked'); // 触发事件
|
2025-01-13 18:20:35 +08:00
|
|
|
|
documentedPqDev([row.id])
|
|
|
|
|
|
// const loading = ElLoading.service({
|
|
|
|
|
|
// lock: true,
|
|
|
|
|
|
// text: '归档中...',
|
|
|
|
|
|
// background: 'rgba(0, 0, 0, 0.7)',
|
|
|
|
|
|
// })
|
|
|
|
|
|
// setTimeout(() => {
|
|
|
|
|
|
// loading.close()
|
|
|
|
|
|
// ElMessage.success("归档成功");
|
|
|
|
|
|
// }, 2000)
|
2024-11-14 11:45:25 +08:00
|
|
|
|
}
|
2024-11-12 20:35:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-13 09:59:05 +08:00
|
|
|
|
function formatDate(date : Date) {
|
|
|
|
|
|
const year = date.getFullYear();
|
|
|
|
|
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
|
|
|
|
|
const day = String(date.getDate()).padStart(2, '0');
|
|
|
|
|
|
const hours = String(date.getHours()).padStart(2, '0');
|
|
|
|
|
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
|
|
|
|
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
|
|
|
|
|
|
|
|
|
|
return `${year}年${month}月${day}日${hours}时${minutes}分${seconds}秒`;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-13 16:35:27 +08:00
|
|
|
|
// 监听 props.id 的变化
|
|
|
|
|
|
watch(
|
|
|
|
|
|
() => props.id,
|
|
|
|
|
|
(newId) => {
|
2024-12-20 10:21:36 +08:00
|
|
|
|
|
2024-12-13 16:35:27 +08:00
|
|
|
|
// 调用获取数据的方法
|
2024-12-16 16:33:18 +08:00
|
|
|
|
handleSearch();
|
2024-12-13 16:35:27 +08:00
|
|
|
|
},
|
|
|
|
|
|
{ immediate: true } // 立即执行一次
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2025-01-13 19:28:51 +08:00
|
|
|
|
onBeforeMount(async () => {
|
|
|
|
|
|
const response = await getPqDev()
|
|
|
|
|
|
devTypeOptions.value = response.data.map(item => ({
|
|
|
|
|
|
id: item.id,
|
|
|
|
|
|
name: item.name,
|
|
|
|
|
|
icd: item.icd,
|
|
|
|
|
|
power: item.power,
|
|
|
|
|
|
devVolt: item.devVolt,
|
|
|
|
|
|
devCurr: item.devCurr,
|
|
|
|
|
|
devChns: item.devChns
|
|
|
|
|
|
}))
|
|
|
|
|
|
})
|
2025-01-13 21:06:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleQuitClicked = () => {
|
|
|
|
|
|
emit('batchGenerateClicked'); // 触发事件
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2024-09-02 16:10:33 +08:00
|
|
|
|
defineExpose({ changeActiveTabs });
|
2024-08-23 13:19:20 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
2024-09-02 16:10:33 +08:00
|
|
|
|
/* 当屏幕宽度小于或等于1300像素时 */
|
|
|
|
|
|
@media screen and (max-width: 1300px) {
|
|
|
|
|
|
.el-select {
|
|
|
|
|
|
width: 130px !important;
|
|
|
|
|
|
}
|
2024-08-23 13:19:20 +08:00
|
|
|
|
}
|
2024-09-02 16:10:33 +08:00
|
|
|
|
@media screen and (min-width: 1300px) {
|
|
|
|
|
|
.el-select {
|
|
|
|
|
|
width: 150px !important;
|
|
|
|
|
|
}
|
2024-08-27 18:37:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-form {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
.el-form-item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
.el-button {
|
|
|
|
|
|
margin: 0 !important;
|
|
|
|
|
|
margin-right: 10px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-01-06 14:02:22 +08:00
|
|
|
|
:deep(.card){
|
|
|
|
|
|
border: 0 !important;
|
|
|
|
|
|
}
|
2024-08-23 13:19:20 +08:00
|
|
|
|
</style>
|