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