添加增删改查

This commit is contained in:
lcj
2025-03-10 18:28:07 +08:00
parent 3e3f6f8aab
commit 340cc2029b
34 changed files with 3197 additions and 685 deletions

View File

@ -7,51 +7,6 @@
<el-form-item label="材料名称" prop="materialsName">
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<!-- <el-form-item label="公司id" prop="companyId">
<el-input v-model="queryParams.companyId" placeholder="请输入公司id" clearable @keyup.enter="handleQuery" />
</el-form-item> -->
<el-form-item label="项目id" prop="projectId">
<el-input v-model="queryParams.projectId" placeholder="请输入项目id" clearable @keyup.enter="handleQuery" />
</el-form-item>
<!-- <el-form-item label="规格型号名称" prop="typeSpecificationName">
<el-input v-model="queryParams.typeSpecificationName" placeholder="请输入规格型号名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="规格型号文件路径" prop="typeSpecificationUrl">
<el-input v-model="queryParams.typeSpecificationUrl" placeholder="请输入规格型号文件路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="合格证编号名称" prop="certificateConformityName">
<el-input v-model="queryParams.certificateConformityName" placeholder="请输入合格证编号名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="合格证编号文件路径" prop="certificateConformityUrl">
<el-input v-model="queryParams.certificateConformityUrl" placeholder="请输入合格证编号文件路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="质量说明书编号" prop="qualityName">
<el-input v-model="queryParams.qualityName" placeholder="请输入质量说明书编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="质量说明书文件路径" prop="qualityUrl">
<el-input v-model="queryParams.qualityUrl" placeholder="请输入质量说明书文件路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="检验报告编号" prop="inspectionReportName">
<el-input v-model="queryParams.inspectionReportName" placeholder="请输入检验报告编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="检验报告文件路径" prop="inspectionReportUrl">
<el-input v-model="queryParams.inspectionReportUrl" placeholder="请输入检验报告文件路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="复试报告编号" prop="reexamineReportName">
<el-input v-model="queryParams.reexamineReportName" placeholder="请输入复试报告编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="复试报告文件路径" prop="reexamineReportUrl">
<el-input v-model="queryParams.reexamineReportUrl" placeholder="请输入复试报告文件路径" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="使用部位" prop="usePart">
<el-input v-model="queryParams.usePart" placeholder="请输入使用部位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="计量单位" prop="weightId">
<el-input v-model="queryParams.weightId" placeholder="请输入计量单位" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="预计材料数量" prop="quantityCount">
<el-input v-model="queryParams.quantityCount" placeholder="请输入预计材料数量" clearable @keyup.enter="handleQuery" />
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
@ -84,18 +39,11 @@
</el-row>
</template>
<el-table v-loading="loading" :data="materialsInventoryList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="materialsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键id" align="center" prop="id" v-if="true" /> -->
<el-table-column label="序号" type="index" width="60" align="center" />
<el-table-column label="材料名称" align="center" prop="materialsName" />
<!-- <el-table-column label="公司id" align="center" prop="companyId" /> -->
<el-table-column label="公司名称" align="center" prop="companyVo.companyName" />
<el-table-column label="项目名称" align="center" prop="">
<template #default="scope">
{{ getProjectName(scope.row.projectId) }}
</template>
</el-table-column>
<el-table-column label="规格型号名称" align="center" prop="typeSpecificationName" />
<el-table-column label="规格型号文件路径" align="center" prop="typeSpecificationUrl" />
<el-table-column label="合格证编号名称" align="center" prop="certificateConformityName" />
@ -148,9 +96,6 @@
<!-- <el-form-item label="公司id" prop="companyId">
<el-input v-model="form.companyId" placeholder="请输入公司id" />
</el-form-item> -->
<el-form-item label="项目id" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入项目id" />
</el-form-item>
<el-form-item label="规格型号名称" prop="typeSpecificationName">
<el-input v-model="form.typeSpecificationName" placeholder="请输入规格型号名称" />
</el-form-item>
@ -205,11 +150,16 @@
</template>
<script setup name="Materials" lang="ts">
import { listMaterials, getMaterials, delMaterials, addMaterials, updateMaterials } from '@/api/materials/materials';
import { MaterialsVO, MaterialsQuery, MaterialsForm } from '@/api/materials/materials/types';
import { addMaterials, delMaterials, getMaterials, listMaterials, updateMaterials } from '@/api/materials/materials';
import { MaterialsForm, MaterialsQuery, MaterialsVO } from '@/api/materials/materials/types';
import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
// 获取用户 store
const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目
const currentProject = computed(() => userStore.selectedProject);
const materialsList = ref<MaterialsVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
@ -231,7 +181,7 @@ const initFormData: MaterialsForm = {
id: undefined,
materialsName: undefined,
companyId: undefined,
projectId: undefined,
projectId: currentProject.value.id,
companyVo: undefined,
typeSpecificationName: undefined,
typeSpecificationUrl: undefined,
@ -256,7 +206,7 @@ const data = reactive<PageData<MaterialsForm, MaterialsQuery>>({
pageSize: 10,
materialsName: undefined,
companyId: undefined,
projectId: undefined,
projectId: currentProject.value.id,
companyVo: undefined,
typeSpecificationName: undefined,
typeSpecificationUrl: undefined,
@ -286,7 +236,7 @@ const getList = async () => {
loading.value = true;
const res = await listMaterials(queryParams.value);
materialsList.value = res.data.records;
total.value = res.total;
total.value = res.data.total;
loading.value = false;
};
@ -375,27 +325,6 @@ const handleExport = () => {
);
};
import { useUserStoreHook } from '@/store/modules/user';
// 获取用户 store
const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目
const projectList = computed(() => userStore.projects);
const currentProject = computed(() => userStore.selectedProject);
const materialsInventoryList = computed(() => {
// 如果有选中的项目,则只显示该项目的数据
if (currentProject.value && currentProject.value.id) {
return materialsList.value.filter((item) => item.projectId === currentProject.value.id);
}
// 没有选中项目则显示所有数据
return materialsList.value;
});
// 根据 projectId 获取对应的 projectName
const getProjectName = (projectId) => {
const project = projectList.value.find((p) => p.id === projectId);
return project ? project.name : projectId; // 如果找不到对应的项目名,则显示 ID
};
onMounted(() => {
getList();
});