From 4d2e623294dd0396af0ce0ad724e8f2a9389df09 Mon Sep 17 00:00:00 2001
From: 李旭东 <woaiguo66@sina.com>
Date: 星期二, 17 十月 2023 16:59:48 +0800
Subject: [PATCH] 设备点检增加
---
web/src/views/EquipmentManage/EquipSpot.vue | 325 +++++++++++++++++++++++++++++++++++++++++++++++++++++
web/src/api/modules/device.js | 30 +++++
2 files changed, 353 insertions(+), 2 deletions(-)
diff --git a/web/src/api/modules/device.js b/web/src/api/modules/device.js
index a8d580f..43833a5 100644
--- a/web/src/api/modules/device.js
+++ b/web/src/api/modules/device.js
@@ -133,4 +133,34 @@
// 删除设备维修信息
deleteServiceDevice: params =>
axios.get('/engineering/overhaul/overhaulDel', {params}),
+
+ /**
+ * 设备点检
+ */
+ // 查询设备点检列表信息
+ searchSpotCheckList: (params) =>
+ axios({
+ method: 'post',
+ url: '/m/checkDevice/findList',
+ headers: {
+ pageNum: params.pageNum,
+ pageSize: params.pageSize
+ },
+ data: params
+ }),
+ // 添加设备点检信息
+ insertSpotCheckInfo: (params) =>
+ axios.post('m/checkDevice/addCheckDevice', params),
+ // 修改设备点检信息
+ updateSpotCheckInfo: (params) =>
+ axios.post('m/checkDevice/addCheckDevice', params),
+ //删除设备点检信息
+ deleteSpotCheckInfo: (params) =>
+ axios.post('/m/checkDevice/delete', params),
+ // 获取点检详情
+ getSpotCheckDetail: (params) =>
+ axios.post('m/checkDevice/checkDeviceInfo', params),
+ // 获取全部设备信息
+ getAllDeviceData: () =>
+ axios.post('/m/checkDevice/deviceList'),
}
\ No newline at end of file
diff --git a/web/src/views/EquipmentManage/EquipSpot.vue b/web/src/views/EquipmentManage/EquipSpot.vue
index 5058d0b..c4742f6 100644
--- a/web/src/views/EquipmentManage/EquipSpot.vue
+++ b/web/src/views/EquipmentManage/EquipSpot.vue
@@ -1,3 +1,324 @@
<template>
- <div>设备点检</div>
-</template>
\ No newline at end of file
+ <div class="main">
+ <div class="main_header">
+ <div class="header_item">
+ <span class="header_label">设备编号:</span>
+ <el-input v-model="bigDeviceName" clearable placeholder="请输入设备编号"></el-input>
+ </div>
+ <div class="header_item">
+ <span class="header_label">点检日期:</span>
+ <el-date-picker
+ v-model="timeData"
+ type="daterange"
+ value-format="yyyy-MM-dd"
+ range-separator="至"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期">
+ </el-date-picker>
+ </div>
+ <div class="header_item">
+ <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchSpotCheckList(true)">查询</el-button>
+ <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="propInsert()">新增</el-button>
+ </div>
+ </div>
+ <div class="main_content">
+ <el-table
+ v-loading="loading"
+ :data="spotCheckList"
+ height="100%">
+ <el-table-column label="序号" align="center" >
+ <template #default="scope">
+ <div>
+ <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="bigDeviceName" label="设备名称" align="center" ></el-table-column>
+ <el-table-column prop="bigDeviceModel" label="规格型号" align="center" ></el-table-column>
+ <el-table-column prop="bigNumber" label="设备编号" align="center" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="bigTypeStr" label="设备类型" align="center" ></el-table-column>
+ <el-table-column prop="checkTime" label="点检时间" align="center" ></el-table-column>
+ <el-table-column prop="checkTypeName" label="点检类型" align="center" ></el-table-column>
+ <el-table-column prop="adminUserName" label="责任人" align="center" ></el-table-column>
+ <el-table-column prop="adminUserPhone" label="责任人电话" align="center" ></el-table-column>
+ <el-table-column prop="checkContent" show-overflow-tooltip label="点检内容及结果" align="center" ></el-table-column>
+ <el-table-column label="操作" align="center" >
+ <template #default="{ row }">
+ <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button>
+ <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <div class="main_footer">
+ <el-pagination
+ background
+ @current-change="changePageNum"
+ @size-change="changePageSize"
+ :current-page="pageNum"
+ :page-sizes="[10, 20, 50, 100]"
+ :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total">
+ </el-pagination>
+ </div>
+ <!-- 新增 修改 -->
+ <el-dialog
+ class="prop_dialog"
+ :title="asyncTitle ? '新增点检' : '修改点检信息'"
+ :visible.sync="asyncSpot"
+ width="35%">
+ <el-form ref="form" :model="formSpot" :rules="rulesSpot" label-width="auto" class="rule_form">
+ <el-form-item label="设备名称:" prop="deviceId">
+ <el-select v-model="formSpot.deviceId" clearable placeholder="请选择设备" @change="selectDevice">
+ <el-option
+ v-for="item in deviceData"
+ :key="item.bigDeviceId"
+ :label="item.bigDeviceName"
+ :value="item.bigDeviceId">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="规格型号:" prop="bigDeviceModel">
+ <el-input v-model="formSpot.bigDeviceModel" disabled placeholder="请输入规格型号"></el-input>
+ </el-form-item>
+ <el-form-item label="设备编号:" prop="bigNumber">
+ <el-input v-model="formSpot.bigNumber" disabled placeholder="请输入设备编号"></el-input>
+ </el-form-item>
+ <el-form-item label="设备类型:" prop="bigTypeName">
+ <el-input v-model="formSpot.bigTypeName" disabled placeholder="请输入设备类型"></el-input>
+ </el-form-item>
+ <el-form-item label="开始时间:" prop="checkTime">
+ <el-date-picker
+ v-model="formSpot.checkTime"
+ type="datetime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="请选择开始时间">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="点检类型:" prop="checkType">
+ <el-select v-model="formSpot.checkType" clearable placeholder="请选择点检类型">
+ <el-option
+ v-for="item in checkTypeData"
+ :key="item.dictId"
+ :label="item.dictName"
+ :value="item.dictId">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="点检内容及结果:" prop="checkContent">
+ <el-input
+ type="textarea"
+ v-model="formSpot.checkContent"
+ clearable
+ placeholder="请输入点检内容及结果">
+ </el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer">
+ <el-button @click="asyncSpot = false">取 消</el-button>
+ <el-button class="submit_btn" @click="asyncTitle ? submitInsertForm() : submitUpdateForm()">提 交</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { buttonPinia } from '../../pinia';
+import { throttle } from '../../plugins/public';
+ export default {
+ data() {
+ return {
+ bigDeviceName: '',
+ timeData: '',
+ pageNum: 1,
+ pageSize: 10,
+ total: 0,
+ loading: false,
+ spotCheckList: [],
+ asyncTitle: true, // true 新增 false 修改
+ asyncSpot: false,
+ formSpot: {},
+ rulesSpot: {
+ deviceId: [{
+ required: true,
+ message: '请选择设备',
+ trigger: ['blur', 'change']
+ }]
+ },
+ deviceData: [],
+ checkTypeData: []
+ }
+ },
+ mounted() {
+ this.searchSpotCheckList(true);
+ },
+ methods: {
+ // 获取全部设备信息
+ async getAllDeviceData() {
+ const { data } = await this.$api.Device.getAllDeviceData();
+ this.deviceData = data;
+ },
+ // 获取点检类型
+ async getChackAllTypes(){
+ const { data } = await this.$api.Dictionary.searchDictionary({
+ pageNum: 1,
+ pageSize: 100000000,
+ dictType: 'check_type'
+ });
+ this.checkTypeData = data.list;
+ },
+ // 查询设备点检列表信息
+ searchSpotCheckList(bol) {
+ if(bol) {
+ this.pageNum = 1;
+ }
+ this.loading = true;
+ this.spotCheckList = [];
+ this.$api.Device.searchSpotCheckList({
+ pageNum: this.pageNum,
+ pageSize: this.pageSize,
+ startTime: this.timeData ? this.timeData[0] : '',
+ endTime: this.timeData ? this.timeData[1] : ''
+ }).then(res => {
+ if(res.success) {
+ this.total = res.data.total;
+ this.spotCheckList = res.data.list;
+ }
+ this.loading = false;
+ }).catch(() => {
+ this.loading = false;
+ })
+ },
+ // 打开添加
+ propInsert() {
+ this.asyncTitle = true;
+ this.asyncSpot = true;
+ },
+ // 选择设备获取设备信息
+ selectDevice(data) {
+ this.$set(this.formSpot, 'bigDeviceModel', '');
+ this.$set(this.formSpot, 'bigNumber', '');
+ this.$set(this.formSpot, 'bigTypeName', '');
+ if(!data) return;
+ this.$api.Device.detailsBigDevice({
+ bigDeviceId: data
+ }).then(res => {
+ this.$set(this.formSpot, 'bigDeviceModel', res.data.bigDeviceModel);
+ this.$set(this.formSpot, 'bigNumber', res.data.bigNumber);
+ this.$set(this.formSpot, 'bigTypeName', res.data.bigTypeName);
+ })
+ },
+ // 打开修改信息
+ updateProp(row) {
+ this.$api.Device.getSpotCheckDetail({
+ id: row.id
+ }).then((res) => {
+ this.selectDevice(res.data.deviceId);
+ this.$set(this.formSpot, 'id', res.data.id);
+ this.$set(this.formSpot, 'deviceId', res.data.deviceId);
+ this.$set(this.formSpot, 'checkTime', res.data.checkTime);
+ this.$set(this.formSpot, 'checkType', res.data.checkType);
+ this.$set(this.formSpot, 'checkContent', res.data.checkContent);
+ });
+ this.asyncTitle = false;
+ this.asyncSpot = true;
+ },
+ // 删除设备点检信息
+ deleteInfo(row) {
+ this.$confirm("该操作将删除该点检信息,是否继续删除?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ this.$api.Device.deleteSpotCheckInfo({id: row.id})
+ .then(res => {
+ if(res.statusMsg === 'ok') {
+ this.searchSpotCheckList(true);
+ this.$message.success("删除成功!");
+ } else {
+ this.$message.warning(res.statusMsg);
+ }
+ })
+ })
+ .catch(() => {
+ this.$message.warning("您已取消");
+ })
+ },
+ // 提交添加信息
+ submitInsertForm: throttle(function() {
+ this.$refs.form.validate((valid) => {
+ if(valid) {
+ const params = {};
+ params.deviceId = this.formSpot.deviceId;
+ params.checkTime = this.formSpot.checkTime;
+ params.checkType = this.formSpot.checkType;
+ params.checkContent = this.formSpot.checkContent;
+ params.fileList = [];
+ this.$api.Device.insertSpotCheckInfo(params).then(res => {
+ if(res.success) {
+ this.asyncSpot = false;
+ this.searchSpotCheckList(true);
+ this.$message.success('添加成功!');
+ } else {
+ this.$message.warning(res.statusMsg);
+ }
+ })
+ }
+ })
+ }, 3000),
+ // 提交添加信息
+ submitUpdateForm: throttle(function() {
+ this.$refs.form.validate((valid) => {
+ if(valid) {
+ const params = {};
+ params.id = this.formSpot.id;
+ params.deviceId = this.formSpot.deviceId;
+ params.checkTime = this.formSpot.checkTime;
+ params.checkType = this.formSpot.checkType;
+ params.checkContent = this.formSpot.checkContent;
+ params.fileList = [];
+ this.$api.Device.updateSpotCheckInfo(params).then(res => {
+ if(res.success) {
+ this.asyncSpot = false;
+ this.searchSpotCheckList(true);
+ this.$message.success('修改成功!');
+ } else {
+ this.$message.warning(res.statusMsg);
+ }
+ })
+ }
+ })
+ }, 3000),
+ // 判断按钮权限信息
+ showButton(str) {
+ const pinia = buttonPinia();
+ return pinia.$state.buttonInfo.includes(str);
+ },
+ // 切换页数
+ changePageNum(page) {
+ this.pageNum = page;
+ },
+ // 切换每页条数
+ changePageSize(size) {
+ this.pageSize = size;
+ }
+ },
+ watch: {
+ asyncSpot(bol) {
+ if(bol) {
+ this.getAllDeviceData();
+ this.getChackAllTypes();
+ } else {
+ this.formSpot = {};
+ this.$refs.form.resetFields();
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+@import '@/style/layout-main.scss';
+</style>
\ No newline at end of file
--
Gitblit v1.9.3