修改
This commit is contained in:
300
src/views/mechanism/ledger/components/add.vue
Normal file
300
src/views/mechanism/ledger/components/add.vue
Normal 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>
|
||||
0
src/views/mechanism/ledger/components/details.vue
Normal file
0
src/views/mechanism/ledger/components/details.vue
Normal file
Reference in New Issue
Block a user