<template>
|
<div class="system-menu-dialog-container">
|
<el-dialog :title="equipmentDialogState.title" v-model="equipmentDialogState.equipmentDialogVisible" :close-on-click-modal="false" width="600px">
|
<el-form ref="EquipmentFormRef" :rules="equipmentDialogState.equipmentFormRules" :model="equipmentDialogState.equipmentForm" 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="deviceCode">
|
<el-input v-model="equipmentDialogState.equipmentForm.deviceCode" placeholder="设备编号" clearable class="input-length"></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="deviceName">
|
<el-input v-model="equipmentDialogState.equipmentForm.deviceName" placeholder="设备名称" clearable class="input-length"></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="deviceTypeId">
|
<el-select v-model="equipmentDialogState.equipmentForm.deviceTypeId" placeholder="设备类型" clearable class="input-length">
|
<el-option v-for="item in equipmentTypeList" :key="item.id" :label="item.deviceType" :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="deviceDesc">
|
<el-input v-model="equipmentDialogState.equipmentForm.deviceDesc" placeholder="设备型号" clearable class="input-length"></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="devicePower">
|
<el-input v-model="equipmentDialogState.equipmentForm.devicePower" placeholder="额定功率" clearable class="input-length"></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="deviceUnit">
|
<el-select v-model="equipmentDialogState.equipmentForm.deviceUnit" placeholder="计量单位" clearable class="input-length">
|
<el-option v-for="item in equipmentDialogState.deviceUnitList" :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="是否特种设备">
|
<el-select v-model="equipmentDialogState.equipmentForm.specialDevice" placeholder="是否特种设备" clearable class="input-length">
|
<el-option v-for="item in equipmentDialogState.specialDeviceList" :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="deviceStatus">
|
<el-select v-model="equipmentDialogState.equipmentForm.deviceStatus" placeholder="设备状态" clearable class="input-length">
|
<el-option :key="1" label="完好" :value="1"></el-option>
|
<el-option :key="2" label="异常" :value="2"></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="安全防护">
|
<el-input type="textarea" :rows="3" v-model="equipmentDialogState.equipmentForm.safeProtect" placeholder="安全防护" clearable class="input-length"></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="buyTime">
|
<el-date-picker
|
v-model="equipmentDialogState.equipmentForm.buyTime"
|
format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD 00:00:00"
|
type="dateTime"
|
placeholder="购入时间"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="校准时间" prop="adjustTime">
|
<el-date-picker
|
v-model="equipmentDialogState.equipmentForm.adjustTime"
|
format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD 00:00:00"
|
type="dateTime"
|
placeholder="校准时间"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="equipmentDialogState.equipmentDialogVisible = !equipmentDialogState.equipmentDialogVisible" size="default">取 消</el-button>
|
<el-button type="primary" @click="onSubmitEquipment" size="default">确定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import { defineProps, reactive, ref } from "vue";
|
import {useMenuApi} from "/@/api/systemManage/menu";
|
import {ElMessage} from "element-plus";
|
import {equipmentApi} from "/@/api/basic/equipement";
|
|
const EquipmentFormRef = ref()
|
|
const equipmentDialogState = reactive<EquipmentDialogType>({
|
title: '',
|
equipmentDialogVisible: false,
|
equipmentForm: {
|
id: null,
|
deviceCode: '',
|
deviceName: '',
|
devicePower: '',
|
deviceUnit: null,
|
specialDevice: null,
|
safeProtect: '',
|
deviceTypeId: null,
|
deviceDesc: '',
|
deviceStatus: null,
|
buyTime: '',
|
adjustTime: ''
|
},
|
equipmentFormRules: {
|
deviceCode: [{ required: true, message: '请填写设备编号', trigger: 'blur' }],
|
deviceName: [{ required: true, message: '请填写设备名称', trigger: 'blur' }],
|
devicePower: [{ required: true, message: '请填写额定功率', trigger: 'blur' }],
|
deviceUnit: [{ required: true, message: '请选择计量单位', trigger: 'change' }],
|
deviceTypeId: [{ required: true, message: '请填写设备类型ID', trigger: 'blur' }],
|
deviceDesc: [{ required: true, message: '请填写设备型号', trigger: 'blur' }],
|
deviceStatus: [{ required: true, message: '请选择设备状态', trigger: 'blur' }],
|
buyTime: [{ required: true, message: '请选择购入时间', trigger: 'blur' }],
|
adjustTime: [{ required: true, message: '请选择校准时间', trigger: 'blur' }]
|
},
|
specialDeviceList: [],
|
deviceUnitList: [
|
{id:1, name: '台'},
|
{id:2, name: '个'},
|
{id:3, name: '件'}
|
]
|
})
|
|
const showEquipmentDialog = (title: string, value: EquipmentType, specialDeviceList: Type []) => {
|
|
equipmentDialogState.equipmentDialogVisible = true;
|
equipmentDialogState.specialDeviceList = specialDeviceList;
|
setTimeout(() => {
|
EquipmentFormRef.value.clearValidate();
|
});
|
if(title === '新增'){
|
equipmentDialogState.title = '新增';
|
equipmentDialogState.equipmentForm = {
|
deviceCode: '',
|
deviceName: '',
|
devicePower: '',
|
deviceUnit: null,
|
specialDevice: null,
|
safeProtect: '',
|
deviceTypeId: null,
|
deviceDesc: '',
|
deviceStatus: null,
|
buyTime: '',
|
adjustTime: ''
|
};
|
}else{
|
equipmentDialogState.title = '编辑'
|
equipmentDialogState.equipmentForm = {
|
id: value.id,
|
deviceCode: value.deviceCode,
|
deviceName: value.deviceName,
|
devicePower: value.devicePower,
|
deviceUnit: value.deviceUnit,
|
specialDevice: value.specialDevice,
|
safeProtect: value.safeProtect,
|
deviceTypeId:value.deviceTypeId,
|
deviceDesc: value.deviceDesc,
|
deviceStatus: value.deviceStatus,
|
buyTime: value.buyTime,
|
adjustTime: value.adjustTime
|
};
|
}
|
};
|
|
const onSubmitEquipment = () => {
|
EquipmentFormRef.value.validate(async(valid: boolean) => {
|
if(valid){
|
if(equipmentDialogState.title === '新增'){
|
let res = await equipmentApi().addEquipment(equipmentDialogState.equipmentForm);
|
if(res.data.code === 100){
|
emit('refresh')
|
equipmentDialogState.equipmentDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '新增成功'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}else{
|
console.log(equipmentDialogState.equipmentForm,'修改')
|
let res = await equipmentApi().modEquipment(equipmentDialogState.equipmentForm)
|
if(res.data.code === 100){
|
emit('refresh')
|
equipmentDialogState.equipmentDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '编辑成功'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: '请完善基本信息',
|
});
|
}
|
})
|
}
|
|
const emit = defineEmits(['refresh'])
|
|
defineProps({
|
equipmentTypeList: Array
|
})
|
|
defineExpose({
|
showEquipmentDialog
|
})
|
</script>
|
|
<style scoped>
|
|
</style>
|