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