合并
This commit is contained in:
@ -75,3 +75,11 @@ export const inventoryList = (id: any) => {
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
//获取材料表信息
|
||||
export const getMaterialInfo = (id: any) => {
|
||||
return request({
|
||||
url: '/materials/materials/listByFormCode/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
@ -26,11 +26,11 @@
|
||||
<el-tooltip effect="dark" placement="bottom">
|
||||
<ProjectSelector />
|
||||
</el-tooltip>
|
||||
<!-- <el-tooltip content="搜索" effect="dark" placement="bottom">
|
||||
<el-tooltip content="搜索" effect="dark" placement="bottom">
|
||||
<div class="right-menu-item hover-effect" @click="openSearchMenu">
|
||||
<svg-icon class-name="search-icon" icon-class="search" />
|
||||
</div>
|
||||
</el-tooltip> -->
|
||||
</el-tooltip>
|
||||
<!-- 消息 -->
|
||||
<el-tooltip :content="proxy.$t('navbar.message')" effect="dark" placement="bottom">
|
||||
<div>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<el-form :model="queryForm" :inline="true">
|
||||
<el-form-item label="版本号" prop="versions">
|
||||
<el-select v-model="queryForm.versions" placeholder="选择版本号" @change="changeVersions">
|
||||
<el-option v-for="item in options" :key="item.id" :label="item.versions" :value="item.id" />
|
||||
<el-option v-for="item in options" :key="item.id" :label="item.versions" :value="item.versions" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="表名" prop="sheet">
|
||||
|
@ -138,9 +138,14 @@
|
||||
<el-table-column prop="useQuantity" label="剩余量" align="center">
|
||||
<template #default="scope">
|
||||
{{
|
||||
(scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) == 0
|
||||
(scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) ==
|
||||
0
|
||||
? ''
|
||||
: (scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
|
||||
: (scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -149,12 +154,16 @@
|
||||
<el-table-column prop="price" label="总价" align="center">
|
||||
<template #default="scope">
|
||||
{{
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)) *
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
|
||||
Number(scope.row.unitPrice) ==
|
||||
0
|
||||
? ''
|
||||
: (
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)) *
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
|
||||
Number(scope.row.unitPrice)
|
||||
).toFixed(2)
|
||||
}}
|
||||
|
@ -124,7 +124,7 @@ const loading = ref(false);
|
||||
const options = ref<any[]>([]);
|
||||
const sheets = ref<any[]>([]);
|
||||
const tableData = ref<any[]>([]);
|
||||
const isExpandAll = ref(false);
|
||||
const isExpandAll = ref(true);
|
||||
const reviewStatus = ref('');
|
||||
const versionObj: any = ref({});
|
||||
const versionMap = new Map();
|
||||
|
@ -65,7 +65,7 @@
|
||||
>
|
||||
<el-row :gutter="8" class="items-top">
|
||||
<!-- 1. 专业选择(核心:统一所有角色的专业来源) -->
|
||||
<el-col :span="3" class="mb-4 sm:mb-0 pl-4" style="margin-top:8px;">
|
||||
<el-col :span="3" class="mb-4 sm:mb-0 pl-4" style="margin-top: 8px">
|
||||
<el-form-item
|
||||
:prop="`designers.${configIndex}.userMajor`"
|
||||
:rules="[
|
||||
@ -76,7 +76,8 @@
|
||||
label-width="60px"
|
||||
label="专业"
|
||||
>
|
||||
<el-select filterable
|
||||
<el-select
|
||||
filterable
|
||||
v-model="form.designers[configIndex].userMajor"
|
||||
placeholder="请选择专业"
|
||||
class="w-full transition-all duration-300 border-gray-300"
|
||||
@ -109,7 +110,8 @@
|
||||
label="设计"
|
||||
label-width="50px"
|
||||
>
|
||||
<el-select filterable
|
||||
<el-select
|
||||
filterable
|
||||
v-model="person.userId"
|
||||
placeholder="选择人员"
|
||||
class="w-full transition-all duration-300 border-gray-300"
|
||||
@ -165,7 +167,8 @@
|
||||
label="校审"
|
||||
label-width="50px"
|
||||
>
|
||||
<el-select filterable
|
||||
<el-select
|
||||
filterable
|
||||
v-model="person.userId"
|
||||
placeholder="选择人员"
|
||||
class="w-full transition-all duration-300 border-gray-300"
|
||||
@ -221,7 +224,8 @@
|
||||
label="审定"
|
||||
label-width="50px"
|
||||
>
|
||||
<el-select filterable
|
||||
<el-select
|
||||
filterable
|
||||
v-model="person.userId"
|
||||
placeholder="选择人员"
|
||||
class="w-full transition-all duration-300 border-gray-300"
|
||||
@ -277,7 +281,8 @@
|
||||
label="审核"
|
||||
label-width="50px"
|
||||
>
|
||||
<el-select filterable
|
||||
<el-select
|
||||
filterable
|
||||
v-model="person.userId"
|
||||
placeholder="选择人员"
|
||||
class="w-full transition-all duration-300 border-gray-300"
|
||||
@ -318,7 +323,7 @@
|
||||
</el-col>
|
||||
|
||||
<!-- 操作列 -->
|
||||
<el-col :span="2" class="text-right pr-4">
|
||||
<el-col :span="2" class="pr-4 mt-2 text-right">
|
||||
<el-button
|
||||
type="text"
|
||||
class="text-red-500 hover:text-red-700 transition-colors"
|
||||
|
@ -81,7 +81,7 @@
|
||||
<el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" row-key="id" default-expand-all>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="手续办理清单模板父级" align="center" prop="formalitiesPname" /> -->
|
||||
<el-table-column label="手续办理清单" align="center" prop="formalitiesName" />
|
||||
<el-table-column label="手续办理清单" align="left" prop="formalitiesName" />
|
||||
<el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.planTheStartTime, '{y}-{m}-{d}') }}</span>
|
||||
|
@ -1,13 +1,11 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="auto">
|
||||
<el-form-item label="材料名称" prop="materialsName">
|
||||
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="材料提供商" prop="companyId">
|
||||
<el-select v-model="queryParams.companyId" clearable placeholder="全部">
|
||||
@ -27,22 +25,20 @@
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['materials:materials:add']"> 新增
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['materials:materials:add']"> 新增 </el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['materials:materials:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
v-hasPermi="['materials:materials:edit']">修改
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['materials:materials:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||
v-hasPermi="['materials:materials:remove']">删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport"
|
||||
v-hasPermi="['materials:materials:export']">导出 </el-button>
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['materials:materials:export']">导出 </el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
@ -72,25 +68,28 @@
|
||||
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="320">
|
||||
<template #default="scope">
|
||||
<el-space>
|
||||
<el-button link type="primary" icon="View" @click="handleShowDrawer(scope.row)"
|
||||
v-hasPermi="['materials:materials:query']">
|
||||
<el-button link type="primary" icon="View" @click="handleShowDrawer(scope.row)" v-hasPermi="['materials:materials:query']">
|
||||
详情
|
||||
</el-button>
|
||||
<el-button link type="success" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['materials:materials:edit']"> 修改 </el-button>
|
||||
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['materials:materials:remove']">
|
||||
<el-button link type="success" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['materials:materials:edit']"> 修改 </el-button>
|
||||
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['materials:materials:remove']">
|
||||
删除
|
||||
</el-button>
|
||||
<el-button v-hasPermi="['materials:materialsInventory:edit']" link type="primary" icon="Plus"
|
||||
@click="handleAddMaterialsInventory(scope.row)"> 出入库 </el-button>
|
||||
<el-button
|
||||
v-hasPermi="['materials:materialsInventory:edit']"
|
||||
link
|
||||
type="primary"
|
||||
icon="Plus"
|
||||
@click="handleAddMaterialsInventory(scope.row)"
|
||||
>
|
||||
出入库
|
||||
</el-button>
|
||||
</el-space>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改材料名称对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
@ -121,12 +120,17 @@
|
||||
<el-form-item label="材料文件" prop="fileOssIdMap">
|
||||
<div :key="item.value" v-for="item in materials_file_type">
|
||||
<h3>{{ item.label }}</h3>
|
||||
<file-upload v-model="ossIdMap[item.value]" :limit="1" :file-size="50" :file-type="['pdf']"
|
||||
<file-upload
|
||||
v-model="ossIdMap[item.value]"
|
||||
:limit="1"
|
||||
:file-size="50"
|
||||
:file-type="['pdf']"
|
||||
@update:model-value="
|
||||
(args) => {
|
||||
handleOssUpdate(args, item.value);
|
||||
}
|
||||
" />
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -137,8 +141,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<materials-inventory-add-dialog :materials-id="currentMaterialsId" :project-id="currentProject.id" ref="dialogRef"
|
||||
@submit="getList" />
|
||||
<materials-inventory-add-dialog :materials-id="currentMaterialsId" :project-id="currentProject.id" ref="dialogRef" @submit="getList" />
|
||||
<el-dialog title="材料详情" v-model="showDetailDrawer" width="700px">
|
||||
<materials-detail-drawer :materials-id="currentMaterialsId" />
|
||||
</el-dialog>
|
||||
|
@ -73,7 +73,10 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="表单编号" prop="formCode">
|
||||
<el-input v-model="form.formCode" placeholder="请输入表单编号" />
|
||||
<!-- <el-input v-model="form.formCode" placeholder="请输入表单编号" /> -->
|
||||
<el-select v-model="form.formCode" placeholder="请选择表单编号" @change="(value) => formCodeChange(value)">
|
||||
<el-option v-for="item in options" :key="item.formCode" :label="item.formCode" :value="item.formCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -247,7 +250,8 @@ import {
|
||||
addMaterialIssue,
|
||||
updateMaterialIssue,
|
||||
inventoryList,
|
||||
getMaterialName
|
||||
getMaterialName,
|
||||
getMaterialInfo
|
||||
} from '@/api/materials/materialIssue';
|
||||
|
||||
import { MaterialIssueVO, MaterialIssueQuery, MaterialIssueForm } from '@/api/materials/materialIssue/types';
|
||||
@ -529,8 +533,27 @@ const handleAdd = () => {
|
||||
dialog.title = '添加物料领料单';
|
||||
// 新增时初始计算材料名称
|
||||
computeMaterialName();
|
||||
getFormData();
|
||||
};
|
||||
|
||||
const options = ref([]);
|
||||
//新增获取表单数据
|
||||
const getFormData = async () => {
|
||||
const res = await getMaterialInfo(currentProject.value.id);
|
||||
if (res.code == 200) {
|
||||
options.value = res.data;
|
||||
}
|
||||
};
|
||||
const formCodeChange = (value) => {
|
||||
console.log(value);
|
||||
const selected = options.value.find((opt) => opt.formCode === value);
|
||||
if (selected) {
|
||||
form.value.materialName = selected.materialName;
|
||||
form.value.orderingUnit = selected.orderingUnit;
|
||||
form.value.supplierUnit = selected.supplierUnit;
|
||||
optionsName.value = selected.materials;
|
||||
}
|
||||
};
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: MaterialIssueVO) => {
|
||||
reset();
|
||||
@ -682,7 +705,7 @@ watch(
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getName();
|
||||
// getName();
|
||||
});
|
||||
|
||||
// 监听项目id刷新数据
|
||||
@ -692,7 +715,7 @@ const listeningProject = watch(
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
getName();
|
||||
// getName();
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -30,6 +30,9 @@
|
||||
>一键全部保存</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="toggleExpandAll">{{ isExpandAll ? '一键收起' : '一键展开' }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<right-toolbar @queryTable="getMasterDataList"></right-toolbar>
|
||||
</el-row>
|
||||
@ -38,6 +41,7 @@
|
||||
<el-table
|
||||
:data="state.tableData"
|
||||
v-loading="state.loading.list"
|
||||
ref="tableRef"
|
||||
stripe
|
||||
style="width: 100%; margin-bottom: 20px; height: calc(100vh - 230px)"
|
||||
row-key="id"
|
||||
@ -264,6 +268,17 @@ const formRules = reactive({
|
||||
],
|
||||
compileDate: [{ required: true, message: '请选择编制日期', trigger: 'change' }]
|
||||
});
|
||||
// 展开状态
|
||||
const isExpandAll = ref(false);
|
||||
const tableRef = ref(null);
|
||||
// 切换展开状态
|
||||
const toggleExpandAll = () => {
|
||||
isExpandAll.value = !isExpandAll.value;
|
||||
console.log(isExpandAll.value);
|
||||
state.tableData.forEach((row) => {
|
||||
tableRef.value.toggleRowExpansion(row, isExpandAll.value);
|
||||
});
|
||||
};
|
||||
// 获取主表数据
|
||||
async function getMasterDataList() {
|
||||
try {
|
||||
|
@ -81,7 +81,7 @@
|
||||
<el-form-item label="计划产值(元)" prop="planValue">
|
||||
<el-input v-model="form.planValue" placeholder="请输入计划产值" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="计划月份(元)" prop="planMonth">
|
||||
<el-form-item label="计划月份" prop="planMonth">
|
||||
<el-date-picker v-model="form.planMonth" type="month" value-format="YYYY-MM" placeholder="请选择计划月份" />
|
||||
</el-form-item>
|
||||
<el-form-item label="产值类型" prop="valueType">
|
||||
|
@ -431,6 +431,7 @@ const handleView = async (row: LandBlockVO) => {
|
||||
formM.landId = row.id;
|
||||
// 打开弹窗
|
||||
dialogMatrix.visible = true;
|
||||
|
||||
dialogMatrix.title = `关联方阵(地块:${row.landName || row.landCode})`;
|
||||
};
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
<el-option v-for="item in options" :key="item.versions" :label="item.versions" :value="item.versions" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="表名" prop="sheet">
|
||||
<el-form-item label="表名" prop="sheet" v-if="activeTab != '3'">
|
||||
<el-select v-model="queryForm.sheet" placeholder="选择表名" @change="changeSheet">
|
||||
<el-option v-for="item in sheets" :key="item" :label="item" :value="item" />
|
||||
</el-select>
|
||||
|
@ -191,9 +191,14 @@
|
||||
<el-table-column prop="useQuantity" label="剩余量" align="center">
|
||||
<template #default="scope">
|
||||
{{
|
||||
(scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) == 0
|
||||
(scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) ==
|
||||
0
|
||||
? ''
|
||||
: (scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
|
||||
: (scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -219,12 +224,16 @@
|
||||
<el-table-column prop="price" label="总价" align="center">
|
||||
<template #default="scope">
|
||||
{{
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)) *
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
|
||||
Number(scope.row.unitPrice) ==
|
||||
0
|
||||
? ''
|
||||
: (
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) - (scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)) *
|
||||
((scope.row.quantity ? Number(scope.row.quantity) : 0) -
|
||||
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
|
||||
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
|
||||
Number(scope.row.unitPrice)
|
||||
).toFixed(2)
|
||||
}}
|
||||
|
@ -234,17 +234,17 @@
|
||||
<!-- 第十一行:注册人员数量(仅劳务类型显示) -->
|
||||
<el-row :gutter="20" class="mb-4" v-if="form.supplierType === '劳务'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一建建造师" prop="build1">
|
||||
<el-input v-model="form.build1" placeholder="请输入一建建造师数量" clearable />
|
||||
<el-form-item label="一建建造师" prop="firstBuildingNumber">
|
||||
<el-input v-model="form.firstBuildingNumber" placeholder="请输入一建建造师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="二建建造师" prop="build2">
|
||||
<el-input v-model="form.build2" placeholder="请输入二建建造师数量" clearable />
|
||||
<el-form-item label="二建建造师" prop="secondBuildingNumber">
|
||||
<el-input v-model="form.secondBuildingNumber" placeholder="请输入二建建造师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="注册造价工程师" prop="build3">
|
||||
<el-input v-model="form.build3" placeholder="请输入注册造价工程师数量" clearable />
|
||||
<el-form-item label="注册造价工程师" prop="registeredEngineerNumber">
|
||||
<el-input v-model="form.registeredEngineerNumber" placeholder="请输入注册造价工程师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="其他(分别写)" prop="build4">
|
||||
<el-input v-model="form.build4" placeholder="请输入其他人员数量" clearable />
|
||||
<el-form-item label="其他(分别写)" prop="otherBuildingNumber">
|
||||
<el-input v-model="form.otherBuildingNumber" placeholder="请输入其他人员数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -254,17 +254,17 @@
|
||||
<!-- 第十二行:职称人员数量(仅劳务类型显示) -->
|
||||
<el-row :gutter="20" class="mb-4" v-if="form.supplierType === '劳务'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="高级工程师人数" prop="personnelNumber1">
|
||||
<el-input v-model="form.personnelNumber1" placeholder="请输高级工程师数量" clearable />
|
||||
<el-form-item label="高级工程师人数" prop="seniorEngineerNumber">
|
||||
<el-input v-model="form.seniorEngineerNumber" placeholder="请输高级工程师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程师数量" prop="personnelNumber2">
|
||||
<el-input v-model="form.personnelNumber2" placeholder="请输入工程师数量" clearable />
|
||||
<el-form-item label="工程师数量" prop="engineerNumber">
|
||||
<el-input v-model="form.engineerNumber" placeholder="请输入工程师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="助理工程师数量" prop="personnelNumber3">
|
||||
<el-input v-model="form.personnelNumber3" placeholder="请输入助理工程师数量" clearable />
|
||||
<el-form-item label="助理工程师数量" prop="assistantEngineerNumber">
|
||||
<el-input v-model="form.assistantEngineerNumber" placeholder="请输入助理工程师数量" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="其他人员数量" prop="personnelNumber4">
|
||||
<el-input v-model="form.personnelNumber4" placeholder="请输入其他人员数量" clearable />
|
||||
<el-form-item label="其他人员数量" prop="otherPersonnelNumber">
|
||||
<el-input v-model="form.otherPersonnelNumber" placeholder="请输入其他人员数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -369,14 +369,14 @@ const initFormData: any = {
|
||||
inputFile: undefined,
|
||||
// state: '0', // 新增默认待审核
|
||||
// 新增:用于表单输入的单独字段
|
||||
build1: undefined, // 一建建造师
|
||||
build2: undefined, // 二建建造师
|
||||
build3: undefined, // 注册造价工程师
|
||||
build4: undefined, // 其他注册人员
|
||||
personnelNumber1: undefined, // 高级工程师
|
||||
personnelNumber2: undefined, // 工程师
|
||||
personnelNumber3: undefined, // 助理工程师
|
||||
personnelNumber4: undefined // 其他职称人员
|
||||
firstBuildingNumber: undefined, // 一建建造师
|
||||
secondBuildingNumber: undefined, // 二建建造师
|
||||
registeredEngineerNumber: undefined, // 注册造价工程师
|
||||
otherBuildingNumber: undefined, // 其他注册人员
|
||||
seniorEngineerNumber: undefined, // 高级工程师
|
||||
engineerNumber: undefined, // 工程师
|
||||
assistantEngineerNumber: undefined, // 助理工程师
|
||||
otherPersonnelNumber: undefined // 其他职称人员
|
||||
};
|
||||
// 核心数据(表单+查询参数)
|
||||
const data = reactive<PageData<SupplierInputForm, SupplierInputQuery>>({
|
||||
@ -411,14 +411,14 @@ const rules = computed(() => {
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号格式', trigger: 'blur' }
|
||||
],
|
||||
id: [{ required: true, message: 'ID不能为空', trigger: 'blur' }],
|
||||
build1: [{ required: true, message: '请输入一建建造师数量', trigger: 'change' }],
|
||||
build2: [{ required: true, message: '请输入二建建造师数量', trigger: 'change' }],
|
||||
build3: [{ required: true, message: '请输入注册造价工程师数量', trigger: 'change' }],
|
||||
build4: [{ required: true, message: '请输入其他数量', trigger: 'change' }],
|
||||
personnelNumber1: [{ required: true, message: '请输入高级工程师数量', trigger: 'change' }],
|
||||
personnelNumber2: [{ required: true, message: '请输入工程师数量', trigger: 'change' }],
|
||||
personnelNumber3: [{ required: true, message: '请输入助理工程师数量', trigger: 'change' }],
|
||||
personnelNumber4: [{ required: true, message: '请输入其他数量', trigger: 'change' }]
|
||||
firstBuildingNumber: [{ required: true, message: '请输入一建建造师数量', trigger: 'change' }],
|
||||
secondBuildingNumber: [{ required: true, message: '请输入二建建造师数量', trigger: 'change' }],
|
||||
registeredEngineerNumber: [{ required: true, message: '请输入注册造价工程师数量', trigger: 'change' }],
|
||||
otherBuildingNumber: [{ required: true, message: '请输入其他数量', trigger: 'change' }],
|
||||
seniorEngineerNumber: [{ required: true, message: '请输入高级工程师数量', trigger: 'change' }],
|
||||
engineerNumber: [{ required: true, message: '请输入工程师数量', trigger: 'change' }],
|
||||
assistantEngineerNumber: [{ required: true, message: '请输入助理工程师数量', trigger: 'change' }],
|
||||
otherPersonnelNumber: [{ required: true, message: '请输入其他数量', trigger: 'change' }]
|
||||
};
|
||||
|
||||
// 仅当类型为"劳务"时,添加安全生产许可证+人员数量校验
|
||||
@ -430,15 +430,15 @@ const rules = computed(() => {
|
||||
safeCodeData: [{ required: true, message: '请选择安全生产许可证发证日期', trigger: 'change' }],
|
||||
safeCertificateValidity: [{ required: true, message: '请选择安全生产许可证有效期', trigger: 'change' }],
|
||||
// 注册人员数量校验
|
||||
build1: [{ required: true, message: '请输入一建建造师数量', trigger: 'blur' }],
|
||||
build2: [{ required: true, message: '请输入二建建造师数量', trigger: 'blur' }],
|
||||
build3: [{ required: true, message: '请输入注册造价工程师数量', trigger: 'blur' }],
|
||||
build4: [{ required: true, message: '请输入其他注册人员数量', trigger: 'blur' }],
|
||||
firstBuildingNumber: [{ required: true, message: '请输入一建建造师数量', trigger: 'blur' }],
|
||||
secondBuildingNumber: [{ required: true, message: '请输入二建建造师数量', trigger: 'blur' }],
|
||||
registeredEngineerNumber: [{ required: true, message: '请输入注册造价工程师数量', trigger: 'blur' }],
|
||||
otherBuildingNumber: [{ required: true, message: '请输入其他注册人员数量', trigger: 'blur' }],
|
||||
// 职称人员数量校验
|
||||
personnelNumber1: [{ required: true, message: '请输入高级工程师数量', trigger: 'blur' }],
|
||||
personnelNumber2: [{ required: true, message: '请输入工程师数量', trigger: 'blur' }],
|
||||
personnelNumber3: [{ required: true, message: '请输入助理工程师数量', trigger: 'blur' }],
|
||||
personnelNumber4: [{ required: true, message: '请输入其他职称人员数量', trigger: 'blur' }]
|
||||
seniorEngineerNumber: [{ required: true, message: '请输入高级工程师数量', trigger: 'blur' }],
|
||||
engineerNumber: [{ required: true, message: '请输入工程师数量', trigger: 'blur' }],
|
||||
assistantEngineerNumber: [{ required: true, message: '请输入助理工程师数量', trigger: 'blur' }],
|
||||
otherPersonnelNumber: [{ required: true, message: '请输入其他职称人员数量', trigger: 'blur' }]
|
||||
};
|
||||
}
|
||||
|
||||
@ -455,22 +455,26 @@ const handleTypeChange = () => {
|
||||
form.value.registeredNumber = undefined;
|
||||
form.value.personnelNumber = undefined;
|
||||
// 清空表单单独字段
|
||||
form.value.build1 = form.value.build2 = form.value.build3 = form.value.build4 = undefined;
|
||||
form.value.personnelNumber1 = form.value.personnelNumber2 = form.value.personnelNumber3 = form.value.personnelNumber4 = undefined;
|
||||
form.value.firstBuildingNumber =
|
||||
form.value.secondBuildingNumber =
|
||||
form.value.registeredEngineerNumber =
|
||||
form.value.otherBuildingNumber =
|
||||
undefined;
|
||||
form.value.seniorEngineerNumber = form.value.engineerNumber = form.value.assistantEngineerNumber = form.value.otherPersonnelNumber = undefined;
|
||||
}
|
||||
// 重置隐藏字段的校验状态,避免错误提示残留
|
||||
supplierInputFormRef.value?.clearValidate([
|
||||
'safeCode',
|
||||
'safeCodeData',
|
||||
'safeCertificateValidity',
|
||||
'build1',
|
||||
'build2',
|
||||
'build3',
|
||||
'build4',
|
||||
'personnelNumber1',
|
||||
'personnelNumber2',
|
||||
'personnelNumber3',
|
||||
'personnelNumber4'
|
||||
'firstBuildingNumber',
|
||||
'secondBuildingNumber',
|
||||
'registeredEngineerNumber',
|
||||
'otherBuildingNumber',
|
||||
'seniorEngineerNumber',
|
||||
'engineerNumber',
|
||||
'assistantEngineerNumber',
|
||||
'otherPersonnelNumber'
|
||||
]);
|
||||
};
|
||||
|
||||
@ -517,18 +521,18 @@ const resetQuery = () => {
|
||||
const splitBackEndStrToForm = (resData: any) => {
|
||||
if (resData.registeredNumber) {
|
||||
const registeredArr = resData.registeredNumber.split(',');
|
||||
form.value.build1 = registeredArr[0] || undefined; // 一建建造师
|
||||
form.value.build2 = registeredArr[1] || undefined; // 二建建造师
|
||||
form.value.build3 = registeredArr[2] || undefined; // 注册造价工程师
|
||||
form.value.build4 = registeredArr[3] || undefined; // 其他注册人员
|
||||
form.value.firstBuildingNumber = registeredArr[0] || undefined; // 一建建造师
|
||||
form.value.secondBuildingNumber = registeredArr[1] || undefined; // 二建建造师
|
||||
form.value.registeredEngineerNumber = registeredArr[2] || undefined; // 注册造价工程师
|
||||
form.value.otherBuildingNumber = registeredArr[3] || undefined; // 其他注册人员
|
||||
}
|
||||
|
||||
if (resData.personnelNumber) {
|
||||
const personnelArr = resData.personnelNumber.split(',');
|
||||
form.value.personnelNumber1 = personnelArr[0] || undefined; // 高级工程师
|
||||
form.value.personnelNumber2 = personnelArr[1] || undefined; // 工程师
|
||||
form.value.personnelNumber3 = personnelArr[2] || undefined; // 助理工程师
|
||||
form.value.personnelNumber4 = personnelArr[3] || undefined; // 其他职称人员
|
||||
form.value.seniorEngineerNumber = personnelArr[0] || undefined; // 高级工程师
|
||||
form.value.engineerNumber = personnelArr[1] || undefined; // 工程师
|
||||
form.value.assistantEngineerNumber = personnelArr[2] || undefined; // 助理工程师
|
||||
form.value.otherPersonnelNumber = personnelArr[3] || undefined; // 其他职称人员
|
||||
}
|
||||
};
|
||||
/** 审核过程按钮操作 */
|
||||
@ -599,19 +603,23 @@ const submitForm = () => {
|
||||
supplierInputFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (!valid) return;
|
||||
if (form.value.supplierType === '劳务') {
|
||||
form.value.registeredNumber = [form.value.build1, form.value.build2, form.value.build3, form.value.build4].join(',');
|
||||
form.value.registeredNumber = [
|
||||
form.value.firstBuildingNumber,
|
||||
form.value.secondBuildingNumber,
|
||||
form.value.registeredEngineerNumber,
|
||||
form.value.otherBuildingNumber
|
||||
].join(',');
|
||||
form.value.personnelNumber = [
|
||||
form.value.personnelNumber1,
|
||||
form.value.personnelNumber2,
|
||||
form.value.personnelNumber3,
|
||||
form.value.personnelNumber4
|
||||
form.value.seniorEngineerNumber,
|
||||
form.value.engineerNumber,
|
||||
form.value.assistantEngineerNumber,
|
||||
form.value.otherPersonnelNumber
|
||||
].join(',');
|
||||
}
|
||||
buttonLoading.value = true;
|
||||
try {
|
||||
if (fileUploadRef.value) {
|
||||
await fileUploadRef.value.submitUpload().then((res) => {
|
||||
console.log(res);
|
||||
if (res == 'noFile') {
|
||||
proxy?.$modal.msgError('请上传文件');
|
||||
return;
|
||||
|
@ -122,41 +122,41 @@
|
||||
</el-row>
|
||||
<el-row class="mb-4" v-if="form.supplierType === '劳务'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一建建造师" prop="build1">
|
||||
<el-input v-model="form.build1" placeholder="请输入一建建造师数量" clearable />
|
||||
<el-form-item label="一建建造师" prop="firstBuildingNumber">
|
||||
<el-input v-model="form.firstBuildingNumber" placeholder="请输入一建建造师数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="二建建造师" prop="build2">
|
||||
<el-input v-model="form.build2" placeholder="请输入二建建造师数量" clearable />
|
||||
<el-form-item label="二建建造师" prop="secondBuildingNumber">
|
||||
<el-input v-model="form.secondBuildingNumber" placeholder="请输入二建建造师数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="其他(分别写)" prop="build4">
|
||||
<el-input v-model="form.build3" placeholder="请输入其他人员数量" clearable />
|
||||
<el-form-item label="其他(分别写)" prop="otherBuildingNumber">
|
||||
<el-input v-model="form.otherBuildingNumber" placeholder="请输入其他人员数量" clearable />
|
||||
</el-form-item> </el-col
|
||||
><el-col :span="12">
|
||||
<el-form-item label="注册造价工程师" prop="build3">
|
||||
<el-input v-model="form.build4" placeholder="请输入注册造价工程师数量" clearable />
|
||||
<el-form-item label="注册造价工程师" prop="registeredEngineerNumber">
|
||||
<el-input v-model="form.registeredEngineerNumber" placeholder="请输入注册造价工程师数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb-4" v-if="form.supplierType === '劳务'">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="高级工程师人数" prop="personnelNumber1">
|
||||
<el-input v-model="form.personnelNumber1" placeholder="请输高级工程师数量" clearable />
|
||||
<el-form-item label="高级工程师人数" prop="seniorEngineerNumber">
|
||||
<el-input v-model="form.seniorEngineerNumber" placeholder="请输高级工程师数量" clearable />
|
||||
</el-form-item> </el-col
|
||||
><el-col :span="12">
|
||||
<el-form-item label="工程师数量" prop="personnelNumber2">
|
||||
<el-input v-model="form.personnelNumber2" placeholder="请输入工程师数量" clearable />
|
||||
<el-form-item label="工程师数量" prop="engineerNumber">
|
||||
<el-input v-model="form.engineerNumber" placeholder="请输入工程师数量" clearable />
|
||||
</el-form-item> </el-col
|
||||
><el-col :span="12">
|
||||
<el-form-item label="助理工程师数量" prop="personnelNumber3">
|
||||
<el-input v-model="form.personnelNumber3" placeholder="请输入助理工程师数量" clearable />
|
||||
<el-form-item label="助理工程师数量" prop="assistantEngineerNumber">
|
||||
<el-input v-model="form.assistantEngineerNumber" placeholder="请输入助理工程师数量" clearable />
|
||||
</el-form-item> </el-col
|
||||
><el-col :span="12">
|
||||
<el-form-item label="其他人员数量" prop="personnelNumber4">
|
||||
<el-input v-model="form.personnelNumber4" placeholder="请输入其他人员数量" clearable />
|
||||
<el-form-item label="其他人员数量" prop="otherPersonnelNumber">
|
||||
<el-input v-model="form.otherPersonnelNumber" placeholder="请输入其他人员数量" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -270,14 +270,14 @@ const initFormData = {
|
||||
inputFile: undefined,
|
||||
state: '0', // 新增默认待审核
|
||||
// 新增:用于表单输入的单独字段
|
||||
build1: undefined, // 一建建造师
|
||||
build2: undefined, // 二建建造师
|
||||
build3: undefined, // 注册造价工程师
|
||||
build4: undefined, // 其他注册人员
|
||||
personnelNumber1: undefined, // 高级工程师
|
||||
personnelNumber2: undefined, // 工程师
|
||||
personnelNumber3: undefined, // 助理工程师
|
||||
personnelNumber4: undefined // 其他职称人员
|
||||
firstBuildingNumber: undefined, // 一建建造师
|
||||
secondBuildingNumber: undefined, // 二建建造师
|
||||
registeredEngineerNumber: undefined, // 注册造价工程师
|
||||
otherBuildingNumber: undefined, // 其他注册人员
|
||||
seniorEngineerNumber: undefined, // 高级工程师
|
||||
engineerNumber: undefined, // 工程师
|
||||
assistantEngineerNumber: undefined, // 助理工程师
|
||||
otherPersonnelNumber: undefined
|
||||
};
|
||||
const data = reactive<PageData<LeaveForm, LeaveQuery>>({
|
||||
form: { ...initFormData },
|
||||
@ -332,17 +332,27 @@ const getInfo = () => {
|
||||
buttonLoading.value = false;
|
||||
nextTick(async () => {
|
||||
const res = await getSupplierInput(routeParams.value.id);
|
||||
console.log(res, '------------------res');
|
||||
|
||||
Object.assign(form.value, res.data);
|
||||
form.value.registeredNumber = form.value.registeredNumber?.split(',');
|
||||
form.value.build1 = form.value.registeredNumber[0] || '';
|
||||
form.value.build2 = form.value.registeredNumber[1] || '';
|
||||
form.value.build3 = form.value.registeredNumber[2] || '';
|
||||
form.value.build4 = form.value.registeredNumber[3] || '';
|
||||
form.value.personnelNumber = form.value.personnelNumber?.split(',');
|
||||
form.value.personnelNumber1 = form.value.personnelNumber[0] || '';
|
||||
form.value.personnelNumber2 = form.value.personnelNumber[1] || '';
|
||||
form.value.personnelNumber3 = form.value.personnelNumber[2] || '';
|
||||
form.value.personnelNumber4 = form.value.personnelNumber[3] || '';
|
||||
// form.value.firstBuildingNumber=res.data.firstBuildingNumber, // 一建建造师
|
||||
// secondBuildingNumber: undefined, // 二建建造师
|
||||
// registeredEngineerNumber: undefined, // 注册造价工程师
|
||||
// otherBuildingNumber: undefined, // 其他注册人员
|
||||
// seniorEngineerNumber: undefined, // 高级工程师
|
||||
// engineerNumber: undefined, // 工程师
|
||||
// assistantEngineerNumber: undefined, // 助理工程师
|
||||
// otherPersonnelNumber: undefined
|
||||
// form.value.registeredNumber = form.value.registeredNumber?.split(',');
|
||||
// form.value.build1 = form.value.registeredNumber[0] || '';
|
||||
// form.value.build2 = form.value.registeredNumber[1] || '';
|
||||
// form.value.build3 = form.value.registeredNumber[2] || '';
|
||||
// form.value.build4 = form.value.registeredNumber[3] || '';
|
||||
// form.value.personnelNumber = form.value.personnelNumber?.split(',');
|
||||
// form.value.personnelNumber1 = form.value.personnelNumber[0] || '';
|
||||
// form.value.personnelNumber2 = form.value.personnelNumber[1] || '';
|
||||
// form.value.personnelNumber3 = form.value.personnelNumber[2] || '';
|
||||
// form.value.personnelNumber4 = form.value.personnelNumber[3] || '';
|
||||
|
||||
loading.value = false;
|
||||
buttonLoading.value = false;
|
||||
|
Reference in New Issue
Block a user