This commit is contained in:
吴红兵
2026-03-05 00:15:04 +08:00
parent 48b31285c8
commit c3daa41f10
3 changed files with 62 additions and 31 deletions

View File

@@ -3,6 +3,16 @@
:close-on-click-modal="false" draggable> :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading"> <el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12" class="mb20">
<el-form-item label="采购人员" prop="purchaserName">
<el-input v-model="form.purchaserName" placeholder="请输入采购人员" disabled/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="资产管理员" prop="assetAdminName">
<el-input v-model="form.assetAdminName" placeholder="请输入资产管理员" disabled/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20"> <el-col :span="12" class="mb20">
<el-form-item label="remark" prop="remark"> <el-form-item label="remark" prop="remark">
<el-input v-model="form.remark" placeholder="请输入remark"/> <el-input v-model="form.remark" placeholder="请输入remark"/>
@@ -49,7 +59,7 @@
import { useDict } from '/@/hooks/dict'; import { useDict } from '/@/hooks/dict';
import { rule } from '/@/utils/validate'; import { rule } from '/@/utils/validate';
import { useMessage } from "/@/hooks/message"; import { useMessage } from "/@/hooks/message";
import { getObj, addObj, putObj, validateExist } from '/@/api/purchase/purchasingAccept'; import { getObj, addObj, putObj, validateExist, getCommonConfigWithBatches } from '/@/api/purchase/purchasingAccept';
// ========== 2. 组件定义 ========== // ========== 2. 组件定义 ==========
// 定义组件事件 // 定义组件事件
@@ -70,6 +80,10 @@ const form = reactive({
acceptAddress: '', // 验收地点 acceptAddress: '', // 验收地点
batch: '', // 验收批次 batch: '', // 验收批次
question: '', // 问题意见 question: '', // 问题意见
purchaserId: '', // 采购人员ID
purchaserName: '', // 采购人员姓名
assetAdminId: '', // 资产管理员ID
assetAdminName: '', // 资产管理员姓名
}); });
// ========== 4. 字典数据处理 ========== // ========== 4. 字典数据处理 ==========
@@ -86,6 +100,17 @@ const getPurchasingAcceptData = async (id: string) => {
const { data } = await getObj({ id: id }); const { data } = await getObj({ id: id });
// 直接将第一条数据赋值给表单 // 直接将第一条数据赋值给表单
Object.assign(form, data[0]); Object.assign(form, data[0]);
// 获取采购人员和资产管理员信息
if (form.purchaseId) {
const { data: commonData } = await getCommonConfigWithBatches(form.purchaseId);
if (commonData && commonData.common) {
form.purchaserId = commonData.common.purchaserId || '';
form.purchaserName = commonData.common.purchaserName || '';
form.assetAdminId = commonData.common.assetAdminId || '';
form.assetAdminName = commonData.common.assetAdminName || '';
}
}
} catch (error) { } catch (error) {
useMessage().error('获取数据失败'); useMessage().error('获取数据失败');
} finally { } finally {

View File

@@ -208,6 +208,12 @@ const loadContractOptions = async () => {
} }
} }
const onContractSelectVisibleChange = (visible: boolean) => {
if (visible && form.hasContract === '1' && contractOptions.value.length === 0) {
loadContractOptions()
}
}
const searchPurchaser = async (query: string) => { const searchPurchaser = async (query: string) => {
if (!query) { if (!query) {
purchaserOptions.value = [] purchaserOptions.value = []
@@ -240,9 +246,29 @@ const searchAssetAdmin = async (query: string) => {
} }
} }
const onContractSelectVisibleChange = (visible: boolean) => { const onPurchaserChange = (teacherNo: string) => {
if (visible && form.hasContract === '1' && contractOptions.value.length === 0) { if (!teacherNo) {
loadContractOptions() form.purchaserId = ''
form.purchaserName = ''
return
}
const selected = purchaserOptions.value.find((item: any) => item.teacherNo === teacherNo)
if (selected) {
form.purchaserId = selected.teacherNo
form.purchaserName = selected.realName || selected.name
}
}
const onAssetAdminChange = (teacherNo: string) => {
if (!teacherNo) {
form.assetAdminId = ''
form.assetAdminName = ''
return
}
const selected = assetAdminOptions.value.find((item: any) => item.teacherNo === teacherNo)
if (selected) {
form.assetAdminId = selected.teacherNo
form.assetAdminName = selected.realName || selected.name
} }
} }
@@ -296,32 +322,6 @@ onMounted(() => {
} }
}) })
const onPurchaserChange = (teacherNo: string) => {
if (!teacherNo) {
form.purchaserId = ''
form.purchaserName = ''
return
}
const selected = purchaserOptions.value.find((item: any) => item.teacherNo === teacherNo)
if (selected) {
form.purchaserId = selected.teacherNo
form.purchaserName = selected.realName || selected.name
}
}
const onAssetAdminChange = (teacherNo: string) => {
if (!teacherNo) {
form.assetAdminId = ''
form.assetAdminName = ''
return
}
const selected = assetAdminOptions.value.find((item: any) => item.teacherNo === teacherNo)
if (selected) {
form.assetAdminId = selected.teacherNo
form.assetAdminName = selected.realName || selected.name
}
}
const rules: FormRules = { const rules: FormRules = {
isInstallment: [{ required: true, message: '请选择是否分期验收', trigger: 'change' }], isInstallment: [{ required: true, message: '请选择是否分期验收', trigger: 'change' }],
totalPhases: [{ required: true, message: '请输入分期次数', trigger: 'blur' }], totalPhases: [{ required: true, message: '请输入分期次数', trigger: 'blur' }],

View File

@@ -177,7 +177,13 @@ const loadData = async () => {
if (config?.common) { if (config?.common) {
applyInfo.value = config.common applyInfo.value = config.common
// 仅当存在已保存批次时,才用接口数据回填公共信息;否则保持 open() 中的默认清空值 // 采购人员和资产管理员始终回填
commonForm.value.purchaserId = config.common.purchaserId || ''
commonForm.value.purchaserName = config.common.purchaserName || ''
commonForm.value.assetAdminId = config.common.assetAdminId || ''
commonForm.value.assetAdminName = config.common.assetAdminName || ''
// 其他字段仅当存在已保存批次时回填
if (config?.batches?.length) { if (config?.batches?.length) {
Object.assign(commonForm.value, { Object.assign(commonForm.value, {
hasContract: config.common.hasContract || '0', hasContract: config.common.hasContract || '0',