材料管理,机械管理

This commit is contained in:
Teo
2025-04-11 18:03:49 +08:00
parent 1f6734db48
commit 895ca5f1b3
21 changed files with 161 additions and 49 deletions

View File

@ -54,7 +54,7 @@ interface Props {
}
const props = defineProps<Props>();
const emit = defineEmits(['submit']);
const visible = ref<boolean>(false);
const loading = ref<boolean>(false);
@ -90,6 +90,7 @@ const submitForm = () => {
// 调用接口提交数据
await addMachineryDetail({ ...form, machineryId: props.machineryId }).finally(() => (loading.value = false));
ElMessage.success('提交成功');
emit('submit');
closeDialog();
} catch (error) {
ElMessage.error('提交失败');

View File

@ -10,9 +10,15 @@
<el-table-column label="检验单位" align="center" prop="checkoutUnit" />
<el-table-column label="检定日期/有效期" align="center" prop="checkoutDate" />
<el-table-column label="入场时间" align="center" prop="entryTime" />
<el-table-column label="图片" align="center" prop="pictureList.url">
<el-table-column label="图片" align="center">
<template #default="scope">
<el-image :key="picture.id" v-for="picture in scope.row.pictureList" :src="picture.url" />
<el-image
:z-index="9999"
:preview-src-list="imgList(scope.row.pictureList)"
preview-teleported
:src="scope.row.pictureList[0].url"
class="w20"
/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
@ -39,7 +45,7 @@
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog title="修改机械出入场详情" v-model="dialogRef" width="500px" append-to-body>
<el-dialog title="修改机械出入场详情" v-model="dialogRef" width="700px" append-to-body>
<el-form ref="formRef" :model="form" :rules="rules" label-width="140px">
<el-form-item label="出入场" prop="type">
<el-select v-model="form.type" clearable placeholder="请选择出入场">
@ -92,6 +98,7 @@
import { MachineryDetailForm, MachineryDetailQuery, MachineryDetailVO } from '@/api/machinery/machineryDetail/types';
import { delMachineryDetail, getMachineryDetail, listMachineryDetail, updateMachineryDetail } from '@/api/machinery/machineryDetail';
import { ref } from 'vue';
import { Picture } from '@element-plus/icons-vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { machinery_entry_exit_type, sys_normal_disable } = toRefs<any>(proxy?.useDict('machinery_entry_exit_type', 'sys_normal_disable'));
@ -141,6 +148,11 @@ const data = reactive<PageData<MachineryDetailForm, MachineryDetailQuery>>({
const { queryParams, form, rules } = toRefs(data);
const imgList = computed(() => (list) => {
const newList = list.map((item) => item.url);
return newList;
});
const machineryDetailList = ref<MachineryDetailVO[]>([]);
/** 展开选中数据 */
const getList = async () => {

View File

@ -54,9 +54,11 @@
<el-table-column label="机械型号" align="center" prop="machineryNumber" />
<el-table-column label="数量" align="center" prop="number" />
<el-table-column label="负责人" align="center" prop="principal" />
<el-table-column label="负责人电话" align="center" prop="principalPhone" />
<el-table-column label="供应商" align="center" prop="provider" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="创建时间" align="center" prop="createTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding" width="300">
<template #default="scope">
<el-space wrap>
<el-button link type="success" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['machinery:machinery:edit']">修改 </el-button>
@ -73,7 +75,7 @@
</el-card>
<!-- 添加或修改机械对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="machineryFormRef" :model="form" :rules="rules" label-width="80px">
<el-form ref="machineryFormRef" :model="form" :rules="rules" label-width="90px">
<el-form-item label="机械名称" prop="machineryName">
<el-input v-model="form.machineryName" placeholder="请输入机械名称" />
</el-form-item>
@ -86,6 +88,12 @@
<el-form-item label="负责人" prop="principal">
<el-input v-model="form.principal" placeholder="请输入负责人" />
</el-form-item>
<el-form-item label="负责人电话" prop="principalPhone">
<el-input v-model="form.principalPhone" placeholder="请输入负责人电话" type="number" />
</el-form-item>
<el-form-item label="供应商" prop="provider">
<el-input v-model="form.provider" placeholder="请输入供应商" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
@ -97,7 +105,7 @@
</div>
</template>
</el-dialog>
<machinery-detail-add-dialog :machinery-id="currentMachineryId" ref="dialogRef" />
<machinery-detail-add-dialog :machinery-id="currentMachineryId" ref="dialogRef" @submit="getList" />
</div>
</template>
@ -139,7 +147,9 @@ const initFormData: MachineryForm = {
projectId: currentProject.value.id,
number: undefined,
principal: undefined,
remark: undefined
remark: undefined,
principalPhone: undefined,
provider: undefined
};
const data = reactive<PageData<MachineryForm, MachineryQuery>>({
form: { ...initFormData },
@ -151,7 +161,9 @@ const data = reactive<PageData<MachineryForm, MachineryQuery>>({
projectId: currentProject.value.id,
number: undefined,
principal: undefined,
params: {}
params: {},
principalPhone: undefined,
provider: undefined
},
rules: {
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }]
@ -262,6 +274,20 @@ const handleAddMachineryDetail = (row?: MachineryVO) => {
dialogRef.value.openDialog();
};
//监听项目id刷新数据
const listeningProject = watch(
() => currentProject.value.id,
(nid, oid) => {
queryParams.value.projectId = nid;
form.value.projectId = nid;
getList();
}
);
onUnmounted(() => {
listeningProject();
});
onMounted(() => {
getList();
});