This commit is contained in:
ljx
2025-09-12 19:28:43 +08:00
parent 6a07a25c2e
commit ae21698e5f
15 changed files with 1489 additions and 22 deletions

View File

@ -0,0 +1,300 @@
<template>
<!-- 添加或修改机械台账对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="50%" append-to-body>
<el-form ref="mechanicalrewritingFormRef" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="设备名称" prop="devicename">
<el-input v-model="form.devicename" placeholder="请输入设备名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设备类型" prop="equipmentType">
<!-- <el-cascader v-model="form.deviceType" :options="options" @change="handleChange" /> -->
<el-cascader
placeholder="请选择设备类型"
:emitPath="false"
filterable
v-model="form.equipmentType"
:options="options"
:props="propsConfig"
@change="handleChange"
style="width: 300px"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备编号" prop="deviceNumber">
<el-input v-model="form.deviceNumber" placeholder="请输入设备编号" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班组名称" prop="teamName">
<el-input v-model="form.teamName" placeholder="请输入班组名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入场日期" prop="entryTime">
<el-date-picker clearable v-model="form.entryTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择入场日期"> </el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格型号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产能力" prop="production">
<el-input v-model="form.production" placeholder="请输入生产能力" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="车牌号码" prop="plateNumber">
<el-input v-model="form.plateNumber" placeholder="请输入车牌号码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备管理员" prop="deviceKeeper">
<el-input v-model="form.deviceKeeper" placeholder="请输入设备管理员" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="车辆行驶证" prop="drivingLicence">
<el-input v-model="form.drivingLicence" placeholder="请输入车辆行驶证" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="新旧程度" prop="degree">
<el-input v-model="form.degree" placeholder="请输入新旧程度" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="车辆容量" prop="vehicleCapacity">
<el-input v-model="form.vehicleCapacity" placeholder="请输入车辆容量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆净重" prop="suttle">
<el-input v-model="form.suttle" placeholder="请输入车辆净重" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="铭牌" prop="nameplateId">
<image-upload v-model="form.nameplateId" :limit="1" :is-show-tip="false" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合格证书" prop="qualificationId">
<image-upload v-model="form.qualificationId" :limit="1" :is-show-tip="false" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设备照片" prop="equipmentPhotoId">
<image-upload v-model="form.equipmentPhotoId" :limit="1" :is-show-tip="false" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验报告" prop="verificationReportId">
<image-upload v-model="form.verificationReportId" :limit="1" :is-show-tip="false" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { getType, addMechanicalrewriting, getMechanicalrewriting, updateMechanicalrewriting } from '@/api/mechanical/mechanicalrewriting';
import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const dialog = reactive<DialogOption>({
visible: false,
title: '添加机械台账'
});
const form: any = ref({
id: undefined,
projectId: undefined,
teamName: undefined,
devicename: undefined,
deviceType: undefined,
equipmentType: undefined,
deviceNumber: undefined,
entryTime: undefined,
specification: undefined,
production: undefined,
plateNumber: undefined,
deviceKeeper: undefined,
drivingLicence: undefined,
degree: undefined,
vehicleCapacity: undefined,
suttle: undefined,
nameplateId: undefined,
qualificationId: undefined,
equipmentPhotoId: undefined,
verificationReportId: undefined,
remark: undefined
});
const rules = ref({
devicename: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
equipmentType: [{ required: true, message: '设备类型不能为空', trigger: 'blur' }],
deviceNumber: [{ required: true, message: '设备编号不能为空', trigger: 'blur' }],
entryTime: [{ required: true, message: '入场时间不能为空', trigger: 'blur' }],
specification: [{ required: true, message: '规格不能为空', trigger: 'blur' }],
production: [{ required: true, message: '生产能力不能为空', trigger: 'blur' }],
teamName: [{ required: true, message: '班组名称不能为空', trigger: 'blur' }],
degree: [{ required: true, message: '新旧程度不能为空', trigger: 'blur' }],
nameplateId: [{ required: true, message: '铭牌不能为空', trigger: 'blur' }],
qualificationId: [{ required: true, message: '合格证书不能为空', trigger: 'blur' }],
equipmentPhotoId: [{ required: true, message: '设备照片不能为空', trigger: 'blur' }]
});
const buttonLoading = ref(false);
const mechanicalrewritingFormRef = ref();
const propsConfig = {
expandTrigger: 'hover' as const,
value: 'code',
label: 'name',
children: 'children'
};
const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject);
const emit = defineEmits(['success']);
const submitForm = () => {
mechanicalrewritingFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
// buttonLoading.value = true;
console.log(form.value);
const parmas = {
...form.value,
projectId: currentProject.value.id
};
if (form.value.id) {
const res = await updateMechanicalrewriting(parmas);
if (res.code === 200) {
proxy?.$modal.msgSuccess('操作成功');
dialog.visible = false;
emit('success');
}
} else {
const res = await addMechanicalrewriting(parmas);
if (res.code === 200) {
proxy?.$modal.msgSuccess('操作成功');
dialog.visible = false;
emit('success');
}
}
}
});
};
/** 取消按钮 */
const cancel = () => {
reset();
dialog.visible = false;
};
/** 表单重置 */
const reset = () => {
form.value = {
id: undefined,
projectId: undefined,
teamName: undefined,
devicename: undefined,
deviceType: undefined,
deviceNumber: undefined,
entryTime: undefined,
specification: undefined,
production: undefined,
plateNumber: undefined,
deviceKeeper: undefined,
drivingLicence: undefined,
degree: undefined,
vehicleCapacity: undefined,
suttle: undefined,
nameplateId: undefined,
qualificationId: undefined,
equipmentPhotoId: undefined,
verificationReportId: undefined,
equipmentType: undefined,
remark: undefined
};
mechanicalrewritingFormRef.value?.resetFields();
};
const options: any = ref([]);
const open = async (id?: number) => {
const title = id ? '修改机械台账' : '添加机械台账';
dialog.title = title;
dialog.visible = true;
getTypeList();
if (id) {
const res = await getMechanicalrewriting(id);
console.log(res);
form.value = res.data;
form.value.equipmentType = res.data.deviceNumber + '_' + res.data.deviceType;
// Object.assign(form.value, res.data);
}
};
//获取类型
const getTypeList = async () => {
const res = await getType();
if (res.code === 200) {
res.data.forEach((element) => {
element.name = element.largeclass;
element.code = element.code + '_' + element.largeclass;
if (element.children && element.children.length) {
element.children.forEach((elements) => {
elements.name = elements.middleclass;
elements.code = elements.code + '_' + elements.middleclass;
if (elements.children && elements.children.length) {
elements.children.forEach((elementss) => {
elementss.code = elementss.code + '_' + elementss.subclass;
elementss.name = elementss.subclass;
});
}
});
}
});
options.value = res.data;
console.log(options.value);
}
};
//选择了类型
const handleChange = (val: any) => {
form.value.deviceNumber = val[val.length - 1].split('_')[0];
form.value.deviceType = val[val.length - 1].split('_')[1];
};
defineExpose({
open
});
</script>
<style scoped></style>