feat(ctr): 添加选择招标计划功能
- 弹出对话框显示招标计划列表 - 列表包含序号、名称、合同额、分包内容、中标单位等信息 - 添加选择按钮,点击后将招标计划信息回填到合同表单中 - 优化合同表单,增加招标计划相关字段
This commit is contained in:
@ -129,7 +129,27 @@
|
||||
</el-form>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="dialogVisible" title="选择招标计划" width="45%">
|
||||
<el-table :data="planList">
|
||||
<el-table-column type="index" width="50" label="序号" />
|
||||
<el-table-column label="名称" align="center" prop="name" />
|
||||
<el-table-column label="合同额" align="center" prop="contractPrice" />
|
||||
<el-table-column label="分包内容" align="center" prop="content" />
|
||||
<el-table-column label="中标单位" align="center" prop="winningBidder" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" @click="handleChooseData(scope.row)">选择</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="dialogVisible = false">
|
||||
关闭
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
@ -153,6 +173,7 @@ const fileRef = ref(null);
|
||||
const incomeContractFormRef = ref(null);
|
||||
const expensesContractFormRef = ref(null);
|
||||
const payMentRef = ref(null);
|
||||
const dialogVisible = ref(false);
|
||||
const incomeContractFormRules = {
|
||||
contractCode: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
|
||||
contractType: [{ required: true, message: '请选择合同类型', trigger: 'change' }],
|
||||
@ -316,13 +337,27 @@ const handleChoose = async () => {
|
||||
}
|
||||
const formData = {
|
||||
projectId: userStore.selectedProject.id,
|
||||
dictName: form.value.contractType
|
||||
dictName: form.value.contractType,
|
||||
status: 1
|
||||
}
|
||||
const { data } = await getTenderPlan(formData)
|
||||
if (data.length === 0) {
|
||||
ElMessage.warning('当前没有招标计划,请先创建招标计划');
|
||||
return;
|
||||
}
|
||||
planList.value = data
|
||||
dialogVisible.value = true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
const handleChooseData = (row) => {
|
||||
form.value.tenderId = row.id;
|
||||
form.value.name = row.name;
|
||||
form.value.contractPrice = row.contractPrice;
|
||||
form.value.content = row.content;
|
||||
form.value.winningBidder = row.winningBidder;
|
||||
dialogVisible.value = false;
|
||||
};
|
||||
watch(form, (val) => {
|
||||
localStorage.setItem("tempContractForm", JSON.stringify({ ...val, fileList: fileList.value }));
|
||||
}, { deep: true });
|
||||
|
Reference in New Issue
Block a user