From d472b2904009d1785edd337627a4816843f10899 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 28 七月 2022 09:01:01 +0800
Subject: [PATCH] 智能巡检
---
src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue | 2
src/api/intellectInspectSystem/inspectPointManage/index.ts | 53 ++
src/views/intellectInspect/inspectBasic/inspectPoint/index.vue | 229 +++++++++
src/api/intellectInspectSystem/RFID/index.ts | 6
src/views/intellectInspect/inspectBasic/inspectPoint/components/inspectPointDialog.vue | 166 +++++++
src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue | 169 +++++++
src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue | 139 ++++++
src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue | 185 ++++++++
src/views/intellectInspect/inspectBasic/discriminate/index.vue | 30
/dev/null | 11
src/views/intellectInspect/inspectBasic/facility/index.vue | 213 +++++++++
src/views/intellectInspect/inspectBasic/index.vue | 0
src/api/intellectInspectSystem/inspectTargetManage/index.ts | 14
src/api/intellectInspectSystem/facilityAreaManage/index.ts | 60 ++
src/views/intellectInspect/inspectBasic/inspectTarget/index.vue | 47 +
15 files changed, 1,287 insertions(+), 37 deletions(-)
diff --git a/src/api/intellectInspectSystem/RFID/index.ts b/src/api/intellectInspectSystem/RFID/index.ts
index 03ab934..3b09576 100644
--- a/src/api/intellectInspectSystem/RFID/index.ts
+++ b/src/api/intellectInspectSystem/RFID/index.ts
@@ -5,7 +5,7 @@
// v1
getRFIDList: (data: object) => {
return request({
- url: `/SafeCheckRfid/select/listRfidByPag`,
+ url: `/SafeCheckRfid/select/listRfidByPage`,
method: 'post',
data: data
});
@@ -37,8 +37,8 @@
// v1
getAllRFIDList: () => {
return request({
- url: `/prevent/device/select/listDevices`,
- method: 'post'
+ url: `/SafeCheckRfid/select/listRfidName`,
+ method: 'get'
});
}
};
diff --git a/src/api/intellectInspectSystem/facilityAreaManage/index.ts b/src/api/intellectInspectSystem/facilityAreaManage/index.ts
index e69de29..154918e 100644
--- a/src/api/intellectInspectSystem/facilityAreaManage/index.ts
+++ b/src/api/intellectInspectSystem/facilityAreaManage/index.ts
@@ -0,0 +1,60 @@
+import request from '/@/utils/request';
+
+export function facilityAreaApi() {
+ return {
+ // v1
+ getFacilityAreaList: (data: object) => {
+ return request({
+ url: `/safeCheckRegion/select/listRegionByPage`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ getFacilityAreaById: (data: object) => {
+ return request({
+ url: `/safeCheckRegion/select/getRegionById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ addFacilityArea: (data: object) => {
+ return request({
+ url: `/safeCheckRegion/insert/saveRegion`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ modFacilityArea: (data: object) => {
+ return request({
+ url: `/safeCheckRegion/update/updateRegionById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ deleteFacilityArea: (data: object) => {
+ return request({
+ url: `/safeCheckRegion/delete/deleteRegionById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ getAllFacilityAreaList: () => {
+ return request({
+ url: `/safeCheckRegion/select/listRegionName`,
+ method: 'get'
+ });
+ },
+ // v1
+ getFacilityAreaType: () => {
+ return request({
+ url: `/SafeCheckRegionType/select/listRegionType`,
+ method: 'get'
+ });
+ }
+ };
+}
diff --git a/src/api/intellectInspectSystem/inspectPointManage/index.ts b/src/api/intellectInspectSystem/inspectPointManage/index.ts
index e69de29..ecf9c37 100644
--- a/src/api/intellectInspectSystem/inspectPointManage/index.ts
+++ b/src/api/intellectInspectSystem/inspectPointManage/index.ts
@@ -0,0 +1,53 @@
+import request from '/@/utils/request';
+
+export function inspectPointApi() {
+ return {
+ // v1
+ getInspectPointList: (data: object) => {
+ return request({
+ url: `/safeCheckPoint/select/listPointByPage`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ getInspectPointById: (data: object) => {
+ return request({
+ url: `/safeCheckPoint/select/getPointById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ addInspectPoint: (data: object) => {
+ return request({
+ url: `/safeCheckPoint/insert/savePoint`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ modInspectPoint: (data: object) => {
+ return request({
+ url: `/safeCheckPoint/update/updatePointById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ deleteInspectPoint: (data: object) => {
+ return request({
+ url: `/safeCheckPoint/delete/deletePointById`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v1
+ getAllInspectPointList: () => {
+ return request({
+ url: `/safeCheckRegion/select/listRegionName`,
+ method: 'get'
+ });
+ }
+ };
+}
diff --git a/src/api/intellectInspectSystem/inspectTargetManage/index.ts b/src/api/intellectInspectSystem/inspectTargetManage/index.ts
index 5730d43..6d03aaa 100644
--- a/src/api/intellectInspectSystem/inspectTargetManage/index.ts
+++ b/src/api/intellectInspectSystem/inspectTargetManage/index.ts
@@ -11,6 +11,13 @@
});
},
// v1
+ getInspectTargetById: (id: number) => {
+ return request({
+ url: `/safeCheckQuota/select/getQuotaById?id=${id}`,
+ method: 'get'
+ });
+ },
+ // v1
addInspectTarget: (data: object) => {
return request({
url: `/safeCheckQuota/insert/saveQuota`,
@@ -40,6 +47,13 @@
url: `/prevent/device/select/listDevices`,
method: 'post'
});
+ },
+ // v1
+ getQuotaTypeList: () => {
+ return request({
+ url: `/safeCheckQuotaType/select/listQuotaType`,
+ method: 'get'
+ });
}
};
}
diff --git a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue
new file mode 100644
index 0000000..6de5818
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue
@@ -0,0 +1,139 @@
+<template>
+ <div class="system-add-menu-container">
+ <el-dialog :title="title" v-model="isShowRFIDDialog" width="600px">
+ <el-form :model="RFIDForm" :rules="RFIDFormRules" ref="RFIDFormRef" size="default" label-width="120px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RFID名称" prop="rfidName">
+ <el-input class="input-length" v-model.trim="RFIDForm.rfidName" placeholder="请输入RFID名称" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="RFID编码" prop="rfid">
+ <el-input class="input-length" v-model.trim="RFIDForm.rfid" placeholder="请输入RFID编码" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="isShowRFIDDialog = !isShowRFIDDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="submitRFID" v-throttle size="default">确 实</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+interface stateType {
+ isShowRFIDDialog: Boolean;
+ RFIDForm: {
+ rfid: string;
+ rfidName: string;
+ };
+ title: string;
+ RFIDFormRules: {};
+}
+interface levelListState {}
+import { reactive, toRefs, ref } from 'vue';
+import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
+import { ElMessage } from 'element-plus';
+export default {
+ name: 'RFIDDialog',
+ setup(props: any, context: any) {
+ const RFIDFormRef = ref();
+ const state = reactive<stateType>({
+ title: '',
+ isShowRFIDDialog: false,
+ RFIDForm: {
+ rfid: '',
+ rfidName: ''
+ },
+ RFIDFormRules: {
+ rfid: [{ required: true, message: '请填写RFID编码', trigger: 'blur' }],
+ rfidName: [{ required: true, message: '请填写RFID名称', trigger: 'change' }],
+ riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }],
+ location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }]
+ }
+ });
+
+ //打开模态框
+ const openRFIDDialog = (type: string, value: object) => {
+ state.isShowRFIDDialog = true;
+ setTimeout(() => {
+ RFIDFormRef.value.clearValidate();
+ });
+ if (type === '新增') {
+ state.title = '新增巡检指标';
+ state.RFIDForm = {
+ rfid: '',
+ rfidName: ''
+ };
+ } else {
+ state.title = '修改巡检指标';
+ state.RFIDForm = JSON.parse(JSON.stringify(value));
+ }
+ };
+
+ //新增修改提交
+ const submitRFID = async () => {
+ RFIDFormRef.value.validate(async (valid: Boolean) => {
+ if (valid) {
+ if (state.title === '新增巡检指标') {
+ let res = await RFIDApi().addRFID(state.RFIDForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '巡检指标新增成功',
+ duration: 2000
+ });
+ state.isShowRFIDDialog = false;
+ context.emit('refreshRFID');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await RFIDApi().modRFID(state.RFIDForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '巡检指标修改成功',
+ duration: 2000
+ });
+ state.isShowRFIDDialog = false;
+ context.emit('refreshRFID');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请完善基本信息'
+ });
+ }
+ });
+ };
+
+ return {
+ ...toRefs(state),
+ RFIDFormRef,
+ submitRFID,
+ openRFIDDialog
+ };
+ }
+};
+</script>
+
+<style scoped>
+.input-length {
+ width: 85%;
+}
+</style>
diff --git a/src/views/intellectInspectSystem/inspectBasic/RFID/index.vue b/src/views/intellectInspect/inspectBasic/discriminate/index.vue
similarity index 81%
rename from src/views/intellectInspectSystem/inspectBasic/RFID/index.vue
rename to src/views/intellectInspect/inspectBasic/discriminate/index.vue
index 87b6602..ecab504 100644
--- a/src/views/intellectInspectSystem/inspectBasic/RFID/index.vue
+++ b/src/views/intellectInspect/inspectBasic/discriminate/index.vue
@@ -2,8 +2,14 @@
<div class="system-role-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
- <div class="basic-line"></div>
- <div class="basic-line"></div>
+ <div class="basic-line">
+ <span>RFID名称:</span>
+ <el-input class="input-box" v-model="RFIDData.params.rfidName" placeholder="RFID名称" clearable> </el-input>
+ </div>
+ <div class="basic-line">
+ <span>RFID编码:</span>
+ <el-input class="input-box" v-model="RFIDData.params.rfid" placeholder="RFID编码" clearable> </el-input>
+ </div>
<el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch">
<el-icon>
<ele-Search />
@@ -19,17 +25,16 @@
</div>
<el-table :data="RFIDData.data" style="width: 100%">
<el-table-column type="index" label="序号" width="60" />
- <el-table-column prop="quota" label="指标名称" show-overflow-tooltip></el-table-column>
- <el-table-column prop="quotaUnit" label="指标单位" show-overflow-tooltip></el-table-column>
- <el-table-column prop="quotaType" label="指标类型" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="rfidName" label="RFID名称" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="rfid" label="RFID编码" show-overflow-tooltip></el-table-column>
<el-table-column prop="createUserName" label="创建人" show-overflow-tooltip></el-table-column>
<el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
<el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
<el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="150">
<template #default="scope">
- <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
- <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button>
+ <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
+ <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -50,7 +55,7 @@
<br />
<br />
</el-card>
- <RFIDDialog ref="RFIDDialogRef" @refreshProductionDevice="initRFIDTableData" />
+ <RFIDDialog ref="RFIDDialogRef" @refreshRFID="initRFIDTableData" />
</div>
</template>
@@ -59,6 +64,7 @@
import { ElMessageBox, ElMessage } from 'element-plus';
import RFIDDialog from './components/RFIDDialog.vue';
import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
+import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
// 定义接口来定义对象的类型
interface TableData {
@@ -86,7 +92,7 @@
export default defineComponent({
name: 'RFID',
- components: { RFIDDialog },
+ components: { RFIDDialog, Edit, Delete },
setup() {
const RFIDDialogRef = ref();
const state = reactive<TableDataState>({
@@ -118,11 +124,11 @@
// 打开生产装置弹窗
const onOpenDialogRef = (type: string, value: any) => {
- RFIDDialogRef.value.openProductionDeviceDialog(type, value);
+ RFIDDialogRef.value.openRFIDDialog(type, value);
};
// 删除角色
const onDelProductionDevice = (row: any) => {
- ElMessageBox.confirm(`此操作将永久删除该条生产装置:“${row.produceDeviceName}”,是否继续?`, '提示', {
+ ElMessageBox.confirm(`此操作将永久删除该RFID:“${row.rfidName}”,是否继续?`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
@@ -165,6 +171,8 @@
});
return {
+ Edit,
+ Delete,
handleSearch,
onOpenDialogRef,
onHandleSizeChange,
diff --git a/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue b/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue
new file mode 100644
index 0000000..e7a283f
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/facility/components/facilityAreaDialog.vue
@@ -0,0 +1,169 @@
+<template>
+ <div class="system-add-menu-container">
+ <el-dialog :title="title" v-model="isShowFacilityAreaDialog" width="600px">
+ <el-form :model="facilityAreaForm" :rules="facilityAreaFormRules" ref="facilityAreaFormRef" size="default" label-width="120px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="设备区域名称" prop="region">
+ <el-input
+ class="input-length"
+ v-model.trim="facilityAreaForm.region"
+ placeholder="请输入设备区域名称"
+ clearable
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="设备区域类型" prop="regionTypeId">
+ <el-select
+ class="input-length"
+ v-model="facilityAreaForm.regionTypeId"
+ placeholder="请选择设备区域类型"
+ clearable
+ filterable
+ >
+ <el-option v-for="item in facilityAreaTypeList" :key="item.id" :label="item.regionType" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="isShowFacilityAreaDialog = !isShowFacilityAreaDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="submitFacilityArea" v-throttle size="default">确 实</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+interface stateType {
+ isShowFacilityAreaDialog: Boolean;
+ facilityAreaForm: {
+ region: string;
+ regionTypeId: number | null;
+ };
+ title: string;
+ facilityAreaTypeList: Array<facilityAreaTypeState>;
+ facilityAreaFormRules: {};
+}
+interface facilityAreaTypeState {
+ regionType: string;
+ id: number;
+}
+
+import { reactive, toRefs, ref } from 'vue';
+import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
+import { ElMessage } from 'element-plus';
+export default {
+ name: 'facilityAreaDialog',
+ setup(props: any, context: any) {
+ const facilityAreaFormRef = ref();
+ const state = reactive<stateType>({
+ title: '',
+ facilityAreaTypeList: [],
+ isShowFacilityAreaDialog: false,
+ facilityAreaForm: {
+ region: '',
+ regionTypeId: null
+ },
+ facilityAreaFormRules: {
+ region: [{ required: true, message: '请填写设备区域名称', trigger: 'blur' }],
+ regionTypeId: [{ required: true, message: '请选择设备区域类型', trigger: 'change' }]
+ }
+ });
+
+ //打开模态框
+ const openFacilityAreaDialog = (
+ type: string,
+ value: { id: number; region: string; regionTypeId: number },
+ facilityAreaTypeList: Array<facilityAreaTypeState>
+ ) => {
+ state.isShowFacilityAreaDialog = true;
+ state.facilityAreaTypeList = facilityAreaTypeList.filter((item) => item.regionType !== '所有类型');
+ setTimeout(() => {
+ facilityAreaFormRef.value.clearValidate();
+ });
+ if (type === '新增') {
+ state.title = '新增设备区域';
+ state.facilityAreaForm = {
+ region: '',
+ regionTypeId: null
+ };
+ } else {
+ state.title = '修改设备区域';
+ facilityAreaApi()
+ .getFacilityAreaById({ id: value.id })
+ .then((res) => {
+ if (res.data.code === '200') {
+ state.facilityAreaForm = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ }
+ })
+ .catch((error) => {});
+ }
+ };
+
+ //新增修改提交
+ const submitFacilityArea = async () => {
+ facilityAreaFormRef.value.validate(async (valid: Boolean) => {
+ if (valid) {
+ if (state.title === '新增设备区域') {
+ let res = await facilityAreaApi().addFacilityArea(state.facilityAreaForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '设备区域新增成功',
+ duration: 2000
+ });
+ state.isShowFacilityAreaDialog = false;
+ context.emit('refreshFacilityArea');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await facilityAreaApi().modFacilityArea(state.facilityAreaForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '设备区域修改成功',
+ duration: 2000
+ });
+ state.isShowFacilityAreaDialog = false;
+ context.emit('refreshFacilityArea');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请完善基本信息'
+ });
+ }
+ });
+ };
+
+ return {
+ ...toRefs(state),
+ facilityAreaFormRef,
+ submitFacilityArea,
+ openFacilityAreaDialog
+ };
+ }
+};
+</script>
+
+<style scoped>
+.input-length {
+ width: 85%;
+}
+</style>
diff --git a/src/views/intellectInspect/inspectBasic/facility/index.vue b/src/views/intellectInspect/inspectBasic/facility/index.vue
new file mode 100644
index 0000000..e25ffd3
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/facility/index.vue
@@ -0,0 +1,213 @@
+<template>
+ <div class="system-role-container">
+ <el-card shadow="hover">
+ <div class="system-user-search mb15">
+ <div class="basic-line">
+ <span>设备区域名称:</span>
+ <el-input class="input-box" v-model="facilityAreaData.params.regionName" placeholder="设备区域名称" clearable> </el-input>
+ </div>
+ <div class="basic-line">
+ <span>设备区域类型:</span>
+ <el-select class="input-box" v-model="facilityAreaData.params.regionTypeId" placeholder="设备区域类型" filterable>
+ <el-option v-for="item in facilityAreaTypeList" :key="item.id" :label="item.regionType" :value="item.id"></el-option>
+ </el-select>
+ </div>
+ <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch">
+ <el-icon>
+ <ele-Search />
+ </el-icon>
+ 查询
+ </el-button>
+ <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')">
+ <el-icon>
+ <ele-FolderAdd />
+ </el-icon>
+ 新增巡检指标
+ </el-button>
+ </div>
+ <el-table :data="facilityAreaData.data" style="width: 100%">
+ <el-table-column type="index" label="序号" width="60" />
+ <el-table-column prop="region" label="设备区域名称" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="regionType" label="设备区域类型" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
+ <el-table-column label="操作" width="150">
+ <template #default="scope">
+ <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
+ <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <br />
+ <el-pagination
+ @size-change="onHandleSizeChange"
+ @current-change="onHandleCurrentChange"
+ :pager-count="5"
+ :page-sizes="[10, 20, 30]"
+ v-model:current-page="facilityAreaData.params.pageIndex"
+ background
+ v-model:page-size="facilityAreaData.params.pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="facilityAreaData.total"
+ class="page-position"
+ >
+ </el-pagination>
+ <br />
+ <br />
+ </el-card>
+ <facilityAreaDialog ref="facilityAreaDialogRef" @refreshFacilityArea="initFacilityAreaTableData" />
+ </div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import facilityAreaDialog from './components/facilityAreaDialog.vue';
+import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
+import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+
+// 定义接口来定义对象的类型
+interface TableData {
+ quota: string;
+ quotaUnit: string;
+ quotaType: string;
+ createUserName: string;
+ gmtCreate: string;
+ lastEditUserName: string;
+ gmtModitify: string;
+}
+interface TableDataState {
+ facilityAreaData: {
+ data: Array<TableData>;
+ total: number;
+ loading: boolean;
+ params: {
+ pageIndex: number;
+ pageSize: number;
+ regionTypeId: number;
+ regionName: string | null;
+ };
+ };
+ facilityAreaTypeList: Array<facilityAreaTypeState>;
+}
+
+interface facilityAreaTypeState {
+ regionType: string;
+ id: number;
+}
+
+export default defineComponent({
+ name: 'facilityArea',
+ components: { facilityAreaDialog, Edit, Delete },
+ setup() {
+ const facilityAreaDialogRef = ref();
+ const state = reactive<TableDataState>({
+ facilityAreaData: {
+ data: [],
+ total: 0,
+ loading: false,
+ params: {
+ pageIndex: 1,
+ pageSize: 10,
+ regionTypeId: 1,
+ regionName: null
+ }
+ },
+ facilityAreaTypeList: []
+ });
+ // 初始化表格数据
+ const initFacilityAreaTableData = async () => {
+ let res = await facilityAreaApi().getFacilityAreaList(state.facilityAreaData.params);
+ if (res.data.code === '200') {
+ state.facilityAreaData.data = res.data.data.records;
+ state.facilityAreaData.total = res.data.data.total;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ //获取所有设施区域类型
+ const initFacilityAreaType = async () => {
+ let res = await facilityAreaApi().getFacilityAreaType();
+ if (res.data.code === '200') {
+ state.facilityAreaTypeList = res.data.data;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ // 打开生产装置弹窗
+ const onOpenDialogRef = (type: string, value: any) => {
+ facilityAreaDialogRef.value.openFacilityAreaDialog(type, value, state.facilityAreaTypeList);
+ };
+ // 删除角色
+ const onDelProductionDevice = (row: any) => {
+ ElMessageBox.confirm(`此操作将永久删除该条设备区域:“${row.region}”,是否继续?`, '提示', {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(async () => {
+ let res = await facilityAreaApi().deleteFacilityArea({ id: row.id });
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ duration: 2000,
+ message: '删除成功'
+ });
+ await initFacilityAreaTableData();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+ .catch(() => {});
+ };
+
+ const handleSearch = () => {
+ initFacilityAreaTableData();
+ };
+ // 分页改变
+ const onHandleSizeChange = (val: number) => {
+ state.facilityAreaData.params.pageSize = val;
+ initFacilityAreaTableData();
+ };
+ // 分页改变
+ const onHandleCurrentChange = (val: number) => {
+ state.facilityAreaData.params.pageIndex = val;
+ initFacilityAreaTableData();
+ };
+ // 页面加载时
+ onMounted(() => {
+ initFacilityAreaTableData();
+ initFacilityAreaType();
+ });
+
+ return {
+ Edit,
+ Delete,
+ handleSearch,
+ onOpenDialogRef,
+ onHandleSizeChange,
+ onDelProductionDevice,
+ onHandleCurrentChange,
+ facilityAreaDialog,
+ facilityAreaDialogRef,
+ initFacilityAreaTableData,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
+
+<style scoped></style>
diff --git a/src/views/intellectInspectSystem/inspectBasic/index.vue b/src/views/intellectInspect/inspectBasic/index.vue
similarity index 100%
rename from src/views/intellectInspectSystem/inspectBasic/index.vue
rename to src/views/intellectInspect/inspectBasic/index.vue
diff --git a/src/views/intellectInspect/inspectBasic/inspectPoint/components/inspectPointDialog.vue b/src/views/intellectInspect/inspectBasic/inspectPoint/components/inspectPointDialog.vue
new file mode 100644
index 0000000..5a53ccd
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/inspectPoint/components/inspectPointDialog.vue
@@ -0,0 +1,166 @@
+<template>
+ <div class="system-add-menu-container">
+ <el-dialog :title="title" v-model="isShowInspectPointDialog" width="600px">
+ <el-form :model="inspectPointForm" :rules="inspectPointFormRules" ref="inspectPointFormRef" size="default" label-width="120px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="巡检点名称" prop="code">
+ <el-input class="input-length" v-model.trim="inspectPointForm.code" placeholder="请输入巡检点名称" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="所属设备区域" prop="regionId">
+ <el-select class="input-length" v-model="inspectPointForm.regionId" placeholder="请选择所属设备区域" clearable filterable>
+ <el-option v-for="item in regionNameList" :key="item.id" :label="item.region" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="关联RFID" prop="rfidId">
+ <el-select class="input-length" v-model="inspectPointForm.rfidId" placeholder="请选择关联RFID" clearable filterable>
+ <el-option v-for="item in RFIDList" :key="item.id" :label="item.rfidName" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="isShowInspectPointDialog = !isShowInspectPointDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="submitInspectPoint" v-throttle size="default">确 实</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
+
+interface stateType {
+ isShowInspectPointDialog: Boolean;
+ inspectPointForm: {
+ code: string;
+ regionId: number | null;
+ rfidId: number | null;
+ };
+ title: string;
+ regionNameList: [];
+ RFIDList: Array<levelListState>;
+ inspectPointFormRules: {};
+}
+interface levelListState {}
+import { reactive, toRefs, ref } from 'vue';
+import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';
+import { ElMessage } from 'element-plus';
+export default {
+ name: 'inspectPointDialog',
+ setup(props: any, context: any) {
+ const inspectPointFormRef = ref();
+ const state = reactive<stateType>({
+ title: '',
+ isShowInspectPointDialog: false,
+ inspectPointForm: {
+ code: '',
+ regionId: null,
+ rfidId: null
+ },
+ regionNameList: [],
+ RFIDList: [],
+ inspectPointFormRules: {
+ code: [{ required: true, message: '请填写巡检点名称', trigger: 'blur' }],
+ regionId: [{ required: true, message: '请选择所属设施区域', trigger: 'change' }],
+ rfidId: [{ required: true, message: '请选择关联RFID', trigger: 'change' }]
+ }
+ });
+
+ //打开模态框
+ const openInspectPointDialog = (type: string, value: { id: number }, regionNameList: [], RFIDList: []) => {
+ state.isShowInspectPointDialog = true;
+ state.regionNameList = regionNameList;
+ state.RFIDList = RFIDList;
+ setTimeout(() => {
+ inspectPointFormRef.value.clearValidate();
+ });
+ if (type === '新增') {
+ state.title = '新增巡检点';
+ state.inspectPointForm = {
+ code: '',
+ regionId: null,
+ rfidId: null
+ };
+ } else {
+ state.title = '修改巡检点';
+ inspectPointApi()
+ .getInspectPointById({ id: value.id })
+ .then((res) => {
+ if (res.data.code === '200') {
+ state.inspectPointForm = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ }
+ })
+ .catch((error) => {});
+ }
+ };
+
+ //新增修改提交
+ const submitInspectPoint = async () => {
+ inspectPointFormRef.value.validate(async (valid: Boolean) => {
+ if (valid) {
+ if (state.title === '新增巡检点') {
+ let res = await inspectPointApi().addInspectPoint(state.inspectPointForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '巡检点新增成功',
+ duration: 2000
+ });
+ state.isShowInspectPointDialog = false;
+ context.emit('refreshInspectPoint');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await inspectPointApi().modInspectPoint(state.inspectPointForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '巡检点修改成功',
+ duration: 2000
+ });
+ state.isShowInspectPointDialog = false;
+ context.emit('refreshInspectPoint');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请完善基本信息'
+ });
+ }
+ });
+ };
+
+ return {
+ ...toRefs(state),
+ inspectPointFormRef,
+ submitInspectPoint,
+ openInspectPointDialog
+ };
+ }
+};
+</script>
+
+<style scoped>
+.input-length {
+ width: 85%;
+}
+</style>
diff --git a/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue b/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue
new file mode 100644
index 0000000..69aea63
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue
@@ -0,0 +1,229 @@
+<template>
+ <div class="system-role-container">
+ <el-card shadow="hover">
+ <div class="system-user-search mb15">
+ <div class="basic-line">
+ <span>巡检点名称:</span>
+ <el-input class="input-box" v-model="inspectPointData.params.code" placeholder="巡检点名称" clearable> </el-input>
+ </div>
+ <div class="basic-line">
+ <span>所属区域名称:</span>
+ <el-select class="input-box" v-model="inspectPointData.params.regionId" placeholder="所属区域名称" filterable>
+ <el-option v-for="item in regionNameList" :key="item.id" :label="item.region" :value="item.id"></el-option>
+ </el-select>
+ </div>
+ <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch">
+ <el-icon>
+ <ele-Search />
+ </el-icon>
+ 查询
+ </el-button>
+ <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')">
+ <el-icon>
+ <ele-FolderAdd />
+ </el-icon>
+ 新增巡检指标
+ </el-button>
+ </div>
+ <el-table :data="inspectPointData.data" style="width: 100%">
+ <el-table-column type="index" label="序号" width="60" />
+ <el-table-column prop="code" label="巡检点名称" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="regionName" label="所属设备区域" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="rfidName" label="关联RFID" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="createUserName" label="创建人" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
+ <el-table-column label="操作" width="150">
+ <template #default="scope">
+ <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
+ <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <br />
+ <el-pagination
+ @size-change="onHandleSizeChange"
+ @current-change="onHandleCurrentChange"
+ :pager-count="5"
+ :page-sizes="[10, 20, 30]"
+ v-model:current-page="inspectPointData.params.pageIndex"
+ background
+ v-model:page-size="inspectPointData.params.pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="inspectPointData.total"
+ class="page-position"
+ >
+ </el-pagination>
+ <br />
+ <br />
+ </el-card>
+ <inspectPointDialog ref="inspectPointDialogRef" @refreshInspectPoint="initInspectPointTableData" />
+ </div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import inspectPointDialog from './components/inspectPointDialog.vue';
+import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';
+import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
+import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+import { RFIDApi } from '/@/api/intellectInspectSystem/RFID';
+
+// 定义接口来定义对象的类型
+interface TableData {
+ quota: string;
+ quotaUnit: string;
+ quotaType: string;
+ createUserName: string;
+ gmtCreate: string;
+ lastEditUserName: string;
+ gmtModitify: string;
+}
+interface TableDataState {
+ inspectPointData: {
+ data: Array<TableData>;
+ total: number;
+ loading: boolean;
+ params: {
+ pageIndex: number;
+ pageSize: number;
+ code: string | null;
+ regionId: number;
+ };
+ };
+ regionNameList: Array<regionNameState>;
+ RFIDList: [];
+}
+
+interface regionNameState {}
+
+export default defineComponent({
+ name: 'productionDevice',
+ components: { inspectPointDialog, Edit, Delete },
+ setup() {
+ const inspectPointDialogRef = ref();
+ const state = reactive<TableDataState>({
+ inspectPointData: {
+ data: [],
+ total: 0,
+ loading: false,
+ params: {
+ pageIndex: 1,
+ pageSize: 10,
+ code: null,
+ regionId: 1
+ }
+ },
+ regionNameList: [],
+ RFIDList: []
+ });
+ // 初始化表格数据
+ const initInspectPointTableData = async () => {
+ let res = await inspectPointApi().getInspectPointList(state.inspectPointData.params);
+ if (res.data.code === '200') {
+ state.inspectPointData.data = res.data.data.records;
+ state.inspectPointData.total = res.data.data.total;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ //获取所有设施区域名称
+ const initFacilityAreaType = async () => {
+ let res = await facilityAreaApi().getAllFacilityAreaList();
+ if (res.data.code === '200') {
+ state.regionNameList = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ //获取所有RFID名称
+ const initRFIDList = async () => {
+ let res = await RFIDApi().getAllRFIDList();
+ if (res.data.code === '200') {
+ state.RFIDList = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ // 打开生产装置弹窗
+ const onOpenDialogRef = (type: string, value: any) => {
+ inspectPointDialogRef.value.openInspectPointDialog(type, value, state.regionNameList, state.RFIDList);
+ };
+ // 删除角色
+ const onDelProductionDevice = (row: any) => {
+ ElMessageBox.confirm(`此操作将永久删除该巡检点:“${row.code}”,是否继续?`, '提示', {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(async () => {
+ let res = await inspectPointApi().deleteInspectPoint({ id: row.id });
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ duration: 2000,
+ message: '删除成功'
+ });
+ await initInspectPointTableData();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+ .catch(() => {});
+ };
+
+ const handleSearch = () => {
+ initInspectPointTableData();
+ };
+ // 分页改变
+ const onHandleSizeChange = (val: number) => {
+ state.inspectPointData.params.pageSize = val;
+ initInspectPointTableData();
+ };
+ // 分页改变
+ const onHandleCurrentChange = (val: number) => {
+ state.inspectPointData.params.pageIndex = val;
+ initInspectPointTableData();
+ };
+ // 页面加载时
+ onMounted(() => {
+ initInspectPointTableData();
+ initFacilityAreaType();
+ initRFIDList();
+ });
+
+ return {
+ Edit,
+ Delete,
+ handleSearch,
+ onOpenDialogRef,
+ onHandleSizeChange,
+ onDelProductionDevice,
+ onHandleCurrentChange,
+ inspectPointDialog,
+ inspectPointDialogRef,
+ initInspectPointTableData,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
+
+<style scoped></style>
diff --git a/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue
new file mode 100644
index 0000000..4fff37e
--- /dev/null
+++ b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue
@@ -0,0 +1,185 @@
+<template>
+ <div class="system-add-menu-container">
+ <el-dialog :title="title" v-model="isShowInspectTargetDialog" width="600px">
+ <el-form :model="inspectTargetForm" :rules="inspectTargetFormRules" ref="inspectTargetFormRef" size="default" label-width="120px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="指标名称" prop="quota">
+ <el-input class="input-length" v-model.trim="inspectTargetForm.quota" placeholder="请输入指标名称" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="指标类型" prop="quotaTypeId">
+ <el-select
+ class="input-length"
+ v-model="inspectTargetForm.quotaTypeId"
+ @change="changeQuotaUnit"
+ placeholder="请选择指标类型"
+ clearable
+ filterable
+ >
+ <el-option v-for="item in quotaTypeList" :key="item.id" :label="item.type" :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="指标单位" prop="quotaUnit">
+ <el-input
+ class="input-length"
+ v-model.trim="inspectTargetForm.quotaUnit"
+ type="textarea"
+ placeholder="请输入指标单位"
+ maxlength="150"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="isShowInspectTargetDialog = !isShowInspectTargetDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="submitInspectTarget" v-throttle size="default">确 实</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';
+
+interface stateType {
+ isShowInspectTargetDialog: Boolean;
+ inspectTargetForm: {
+ quota: string;
+ quotaTypeId: number | null;
+ quotaUnit: string;
+ };
+ title: string;
+ quotaTypeList: Array<quotaTypeState>;
+ inspectTargetFormRules: {};
+}
+interface quotaTypeState {
+ id: number;
+ type: string;
+ unit: string;
+}
+import { reactive, toRefs, ref, computed } from 'vue';
+import { inspectTargetApi } from '/@/api/intellectInspectSystem/inspectTargetManage';
+import { ElMessage } from 'element-plus';
+export default {
+ name: 'inspectTargetDialog',
+ setup(props: any, context: any) {
+ const inspectTargetFormRef = ref();
+ const state = reactive<stateType>({
+ title: '',
+ quotaTypeList: [],
+ isShowInspectTargetDialog: false,
+ inspectTargetForm: {
+ quota: '',
+ quotaTypeId: null,
+ quotaUnit: ''
+ },
+ inspectTargetFormRules: {
+ quota: [{ required: true, message: '请填写指标名称', trigger: 'blur' }],
+ quotaTypeId: [{ required: true, message: '请选择指标类型', trigger: 'change' }],
+ quotaUnit: [{ required: true, message: '请选择指标单位', trigger: 'blur' }]
+ }
+ });
+
+ //打开模态框
+ const openInspectTargetDialog = (type: string, value: { id: number }, quotaTypeList: []) => {
+ state.isShowInspectTargetDialog = true;
+ state.quotaTypeList = quotaTypeList;
+ setTimeout(() => {
+ inspectTargetFormRef.value.clearValidate();
+ });
+ if (type === '新增') {
+ state.title = '新增巡检指标';
+ state.inspectTargetForm = {
+ quota: '',
+ quotaTypeId: null,
+ quotaUnit: ''
+ };
+ } else {
+ state.title = '修改巡检指标';
+ inspectTargetApi()
+ .getInspectTargetById(value.id)
+ .then((res) => {
+ if (res.data.code === '200') {
+ state.inspectTargetForm = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ }
+ })
+ .catch((error) => {});
+ }
+ };
+
+ const changeQuotaUnit = () => {
+ state.inspectTargetForm.quotaUnit = JSON.parse(JSON.stringify(state.quotaTypeList)).find(
+ (item: any) => item.id === state.inspectTargetForm.quotaTypeId
+ ).unit;
+ };
+
+ //新增修改提交
+ const submitInspectTarget = async () => {
+ inspectTargetFormRef.value.validate(async (valid: Boolean) => {
+ if (valid) {
+ if (state.title === '新增巡检指标') {
+ let res = await inspectTargetApi().addInspectTarget(state.inspectTargetForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '巡检指标新增成功',
+ duration: 2000
+ });
+ state.isShowInspectTargetDialog = false;
+ context.emit('refreshInspectTarget');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await inspectTargetApi().modInspectTarget(state.inspectTargetForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '生巡检指标修改成功',
+ duration: 2000
+ });
+ state.isShowInspectTargetDialog = false;
+ context.emit('refreshInspectTarget');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请完善基本信息'
+ });
+ }
+ });
+ };
+
+ return {
+ ...toRefs(state),
+ changeQuotaUnit,
+ inspectTargetFormRef,
+ submitInspectTarget,
+ openInspectTargetDialog
+ };
+ }
+};
+</script>
+
+<style scoped>
+.input-length {
+ width: 85%;
+}
+</style>
diff --git a/src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/index.vue b/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue
similarity index 79%
rename from src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/index.vue
rename to src/views/intellectInspect/inspectBasic/inspectTarget/index.vue
index 0a819e5..cae2d06 100644
--- a/src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/index.vue
+++ b/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue
@@ -2,8 +2,10 @@
<div class="system-role-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
- <div class="basic-line"></div>
- <div class="basic-line"></div>
+ <div class="basic-line">
+ <span>巡检指标名称:</span>
+ <el-input class="input-box" v-model="inspectTargetData.params.quotaName" placeholder="巡检指标名称"> </el-input>
+ </div>
<el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch">
<el-icon>
<ele-Search />
@@ -28,8 +30,8 @@
<el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="150">
<template #default="scope">
- <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
- <el-button size="small" text type="danger" @click="onDelProductionDevice(scope.row)">删除</el-button>
+ <el-button size="small" text type="primary" :icon="Edit" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
+ <el-button size="small" text type="danger" :icon="Delete" @click="onDelProductionDevice(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -50,15 +52,17 @@
<br />
<br />
</el-card>
- <inspectTargetDialog ref="inspectTargetDialogRef" @refreshProductionDevice="initProductionDeviceTableData" />
+ <inspectTargetDialog ref="inspectTargetDialogRef" @refreshInspectTarget="initInspectTargetTableData" />
</div>
</template>
<script lang="ts">
-import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { toRefs, reactive, onMounted, ref, defineComponent, computed } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import inspectTargetDialog from './components/inspectTargetDialog.vue';
import { inspectTargetApi } from '/@/api/intellectInspectSystem/inspectTargetManage';
+import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage';
// 定义接口来定义对象的类型
interface TableData {
@@ -78,13 +82,15 @@
params: {
pageIndex: number;
pageSize: number;
+ quotaName: string;
};
};
+ quotaTypeList: [];
}
export default defineComponent({
name: 'productionDevice',
- components: { inspectTargetDialog },
+ components: { inspectTargetDialog, Edit, Delete },
setup() {
const inspectTargetDialogRef = ref();
const state = reactive<TableDataState>({
@@ -94,10 +100,13 @@
loading: false,
params: {
pageIndex: 1,
- pageSize: 10
+ pageSize: 10,
+ quotaName: ''
}
- }
+ },
+ quotaTypeList: []
});
+
// 初始化表格数据
const initInspectTargetTableData = async () => {
let res = await inspectTargetApi().getInspectTargetList(state.inspectTargetData.params);
@@ -112,13 +121,26 @@
}
};
+ //获取所有指标类型及单位
+ const initQuotaType = async () => {
+ let res = await inspectTargetApi().getQuotaTypeList();
+ if (res.data.code === '200') {
+ state.quotaTypeList = JSON.parse(JSON.stringify(res.data.data));
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
// 打开生产装置弹窗
const onOpenDialogRef = (type: string, value: any) => {
- inspectTargetDialogRef.value.openProductionDeviceDialog(type, value);
+ inspectTargetDialogRef.value.openInspectTargetDialog(type, value, state.quotaTypeList);
};
// 删除角色
const onDelProductionDevice = (row: any) => {
- ElMessageBox.confirm(`此操作将永久删除该条生产装置:“${row.produceDeviceName}”,是否继续?`, '提示', {
+ ElMessageBox.confirm(`此操作将永久删除该条巡检指标:“${row.quota}”,是否继续?`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
@@ -158,9 +180,12 @@
// 页面加载时
onMounted(() => {
initInspectTargetTableData();
+ initQuotaType();
});
return {
+ Edit,
+ Delete,
handleSearch,
onOpenDialogRef,
onHandleSizeChange,
diff --git a/src/views/intellectInspectSystem/inspectBasic/facilityAreaManage/index.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
similarity index 83%
rename from src/views/intellectInspectSystem/inspectBasic/facilityAreaManage/index.vue
rename to src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
index e6a1a17..fe95193 100644
--- a/src/views/intellectInspectSystem/inspectBasic/facilityAreaManage/index.vue
+++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue
@@ -1,5 +1,5 @@
<template>
- <div>111</div>
+ <div>1235</div>
</template>
<script>
diff --git a/src/views/intellectInspectSystem/inspectBasic/RFID/components/RFIDDialog.vue b/src/views/intellectInspectSystem/inspectBasic/RFID/components/RFIDDialog.vue
deleted file mode 100644
index 613567c..0000000
--- a/src/views/intellectInspectSystem/inspectBasic/RFID/components/RFIDDialog.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-<template></template>
-
-<script>
-export default {
- name: 'RFIDDialog'
-};
-</script>
-
-<style scoped></style>
diff --git a/src/views/intellectInspectSystem/inspectBasic/inspectPointMange/index.vue b/src/views/intellectInspectSystem/inspectBasic/inspectPointMange/index.vue
deleted file mode 100644
index 90bbe6f..0000000
--- a/src/views/intellectInspectSystem/inspectBasic/inspectPointMange/index.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-<template>
- <div>222</div>
-</template>
-
-<script>
-export default {
- name: 'index'
-};
-</script>
-
-<style scoped></style>
diff --git a/src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/components/inspectTargetDialog.vue b/src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/components/inspectTargetDialog.vue
deleted file mode 100644
index e62fb9b..0000000
--- a/src/views/intellectInspectSystem/inspectBasic/inspectTargetManage/components/inspectTargetDialog.vue
+++ /dev/null
@@ -1,200 +0,0 @@
-<template>
- <div class="system-add-menu-container">
- <el-dialog :title="title" v-model="isShowProductionDeviceDialog" width="600px">
- <el-form
- :model="productionDeviceForm"
- :rules="productionDeviceFormRules"
- ref="productionDeviceFormRef"
- size="default"
- label-width="120px"
- >
- <el-row :gutter="35">
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="生产装置名称" prop="produceDeviceName">
- <el-input
- class="input-length"
- v-model.trim="productionDeviceForm.produceDeviceName"
- placeholder="请输入生产装置名称"
- clearable
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="所属部门" prop="depId">
- <el-cascader
- :options="departmentList"
- :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
- placeholder="请选择部门"
- clearable
- filterable
- style="width: 85%"
- v-model="productionDeviceForm.depId"
- >
- </el-cascader>
- <!-- <el-select class="input-length" v-model="productionDeviceForm.depName" placeholder="请选择所属部门" clearable filterable></el-select>-->
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险等级" prop="riskLevel">
- <el-select
- class="input-length"
- v-model="productionDeviceForm.riskLevel"
- placeholder="请选择风险等级"
- clearable
- filterable
- >
- <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="区域位置" prop="location">
- <el-input
- class="input-length"
- v-model.trim="productionDeviceForm.location"
- type="textarea"
- placeholder="请输入区域位置"
- maxlength="150"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="isShowProductionDeviceDialog = !isShowProductionDeviceDialog" size="default">取 消</el-button>
- <el-button type="primary" @click="submitProductionDevice" v-throttle size="default">确 实</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
-</template>
-
-<script lang="ts">
-interface stateType {
- isShowProductionDeviceDialog: Boolean;
- productionDeviceForm: {
- produceDeviceName: string;
- depId: number | null;
- riskLevel: number | null;
- location: string;
- };
- title: string;
- departmentList: [];
- levelList: Array<levelListState>;
- productionDeviceFormRules: {};
-}
-interface levelListState {}
-import { reactive, toRefs, ref } from 'vue';
-import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice';
-import { ElMessage } from 'element-plus';
-export default {
- name: 'inspectTargetDialog',
- setup(props: any, context: any) {
- const productionDeviceFormRef = ref();
- const state = reactive<stateType>({
- title: '',
- departmentList: [],
- isShowProductionDeviceDialog: false,
- levelList: [
- { id: 1, name: '低风险' },
- { id: 2, name: '一般风险' },
- { id: 3, name: '较大风险' },
- { id: 4, name: '重大风险' }
- ],
- productionDeviceForm: {
- produceDeviceName: '',
- depId: null,
- riskLevel: null,
- location: ''
- },
- productionDeviceFormRules: {
- produceDeviceName: [{ required: true, message: '请填写生产装置名称', trigger: 'blur' }],
- depId: [{ required: true, message: '请选择部门', trigger: 'change' }],
- riskLevel: [{ required: true, message: '请选择风险等级', trigger: 'change' }],
- location: [{ required: true, message: '请填写区域位置', trigger: 'blur' }]
- }
- });
-
- //打开模态框
- const openProductionDeviceDialog = (type: string, value: object, department: []) => {
- state.isShowProductionDeviceDialog = true;
- state.departmentList = department;
- setTimeout(() => {
- productionDeviceFormRef.value.clearValidate();
- });
- if (type === '新增') {
- state.title = '新增生产装置';
- state.productionDeviceForm = {
- produceDeviceName: '',
- depId: null,
- riskLevel: null,
- location: ''
- };
- } else {
- state.title = '修改生产装置';
- state.productionDeviceForm = JSON.parse(JSON.stringify(value));
- }
- };
-
- //新增修改提交
- const submitProductionDevice = async () => {
- productionDeviceFormRef.value.validate(async (valid: Boolean) => {
- if (valid) {
- if (state.title === '新增生产装置') {
- let res = await productionDeviceApi().addProductionDevice(state.productionDeviceForm);
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: '生产装置新增成功',
- duration: 2000
- });
- state.isShowProductionDeviceDialog = false;
- context.emit('refreshProductionDevice');
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- } else {
- let res = await productionDeviceApi().modProductionDevice(state.productionDeviceForm);
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: '生产装置修改成功',
- duration: 2000
- });
- state.isShowProductionDeviceDialog = false;
- context.emit('refreshProductionDevice');
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
- } else {
- ElMessage({
- type: 'warning',
- message: '请完善基本信息'
- });
- }
- });
- };
-
- return {
- ...toRefs(state),
- productionDeviceFormRef,
- submitProductionDevice,
- openProductionDeviceDialog
- };
- }
-};
-</script>
-
-<style scoped>
-.input-length {
- width: 85%;
-}
-</style>
diff --git a/src/views/intellectInspectSystem/inspectTaskManage/index.vue b/src/views/intellectInspectSystem/inspectTaskManage/index.vue
deleted file mode 100644
index ea0d797..0000000
--- a/src/views/intellectInspectSystem/inspectTaskManage/index.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-<template></template>
-
-<script>
-export default {
- name: 'index'
-};
-</script>
-
-<style scoped></style>
diff --git a/src/views/intellectInspectSystem/inspectTaskManage/inspectTask/index.vue b/src/views/intellectInspectSystem/inspectTaskManage/inspectTask/index.vue
deleted file mode 100644
index 6530e6b..0000000
--- a/src/views/intellectInspectSystem/inspectTaskManage/inspectTask/index.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-<template>
- <div>1234</div>
-</template>
-
-<script>
-export default {
- name: 'index'
-};
-</script>
-
-<style scoped></style>
--
Gitblit v1.9.2